blob: 911271b46ad3ff3cbed2422cd73bbd08acf884cb [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.weex;
import android.support.annotation.NonNull;
import org.apache.weex.adapter.ClassLoaderAdapter;
import org.apache.weex.adapter.IDrawableLoader;
import org.apache.weex.adapter.IWXHttpAdapter;
import org.apache.weex.adapter.IWXImgLoaderAdapter;
import org.apache.weex.adapter.IWXJSExceptionAdapter;
import org.apache.weex.adapter.IWXJsFileLoaderAdapter;
import org.apache.weex.adapter.IWXJscProcessManager;
import org.apache.weex.adapter.IWXSoLoaderAdapter;
import org.apache.weex.adapter.IWXUserTrackAdapter;
import org.apache.weex.adapter.URIAdapter;
import org.apache.weex.appfram.storage.IWXStorageAdapter;
import org.apache.weex.appfram.websocket.IWebSocketAdapterFactory;
import org.apache.weex.performance.IApmGenerator;
import java.util.LinkedList;
import java.util.List;
/**
* Created by sospartan on 5/31/16.
*/
public class InitConfig {
private IWXHttpAdapter httpAdapter;
private IDrawableLoader drawableLoader;
private IWXImgLoaderAdapter imgAdapter;
private IWXUserTrackAdapter utAdapter;
private IWXStorageAdapter storageAdapter;
private IWXSoLoaderAdapter soLoader;
private URIAdapter mURIAdapter;
private IWebSocketAdapterFactory webSocketAdapterFactory;
private IWXJSExceptionAdapter mJSExceptionAdapter;
private String framework;
private ClassLoaderAdapter classLoaderAdapter;
private IApmGenerator apmGenerater;
private IWXJsFileLoaderAdapter jsFileLoaderAdapter;
private IWXJscProcessManager jscProcessManager;
private List<String> nativeLibraryList;
public IWXHttpAdapter getHttpAdapter() {
return httpAdapter;
}
public IWXImgLoaderAdapter getImgAdapter() {
return imgAdapter;
}
public IDrawableLoader getDrawableLoader() {
return drawableLoader;
}
public IWXUserTrackAdapter getUtAdapter() {
return utAdapter;
}
public IWXSoLoaderAdapter getIWXSoLoaderAdapter() {
return soLoader;
}
public String getFramework() {
return framework;
}
public IWXStorageAdapter getStorageAdapter() {
return storageAdapter;
}
public URIAdapter getURIAdapter() {
return mURIAdapter;
}
public IWebSocketAdapterFactory getWebSocketAdapterFactory() {
return webSocketAdapterFactory;
}
public ClassLoaderAdapter getClassLoaderAdapter() {
return classLoaderAdapter;
}
public IApmGenerator getApmGenerater() {
return apmGenerater;
}
public IWXJsFileLoaderAdapter getJsFileLoaderAdapter() {
return jsFileLoaderAdapter;
}
public InitConfig setClassLoaderAdapter(ClassLoaderAdapter classLoaderAdapter) {
this.classLoaderAdapter = classLoaderAdapter;
return this;
}
public IWXJSExceptionAdapter getJSExceptionAdapter() {
return mJSExceptionAdapter;
}
public IWXJscProcessManager getJscProcessManager() {
return jscProcessManager;
}
@NonNull Iterable<String> getNativeLibraryList() {
if(nativeLibraryList == null){
nativeLibraryList = new LinkedList<>();
}
return nativeLibraryList;
}
private InitConfig() {
}
public static class Builder{
IWXHttpAdapter httpAdapter;
IWXImgLoaderAdapter imgAdapter;
IDrawableLoader drawableLoader;
IWXUserTrackAdapter utAdapter;
IWXStorageAdapter storageAdapter;
IWXSoLoaderAdapter soLoader;
URIAdapter mURIAdapter;
IWXJSExceptionAdapter mJSExceptionAdapter;
String framework;
IWebSocketAdapterFactory webSocketAdapterFactory;
ClassLoaderAdapter classLoaderAdapter;
IApmGenerator apmGenerater;
private IWXJsFileLoaderAdapter jsFileLoaderAdapter;
private List<String> nativeLibraryList = new LinkedList<>();
public IWXJscProcessManager getJscProcessManager() {
return jscProcessManager;
}
public Builder setJscProcessManager(IWXJscProcessManager jscProcessManager) {
this.jscProcessManager = jscProcessManager;
return this;
}
IWXJscProcessManager jscProcessManager;
public Builder(){
}
public Builder setHttpAdapter(IWXHttpAdapter httpAdapter) {
this.httpAdapter = httpAdapter;
return this;
}
public Builder setImgAdapter(IWXImgLoaderAdapter imgAdapter) {
this.imgAdapter = imgAdapter;
return this;
}
public Builder setDrawableLoader(IDrawableLoader drawableLoader){
this.drawableLoader=drawableLoader;
return this;
}
public Builder setUtAdapter(IWXUserTrackAdapter utAdapter) {
this.utAdapter = utAdapter;
return this;
}
public Builder setStorageAdapter(IWXStorageAdapter storageAdapter) {
this.storageAdapter = storageAdapter;
return this;
}
public Builder setURIAdapter(URIAdapter URIAdapter) {
mURIAdapter = URIAdapter;
return this;
}
public Builder setJSExceptionAdapter(IWXJSExceptionAdapter JSExceptionAdapter) {
mJSExceptionAdapter = JSExceptionAdapter;
return this;
}
public Builder setSoLoader(IWXSoLoaderAdapter loader) {
this.soLoader = loader;
return this;
}
public Builder setFramework(String framework){
this.framework=framework;
return this;
}
public Builder setWebSocketAdapterFactory(IWebSocketAdapterFactory factory) {
this.webSocketAdapterFactory = factory;
return this;
}
public Builder setClassLoaderAdapter(ClassLoaderAdapter classLoaderAdapter) {
this.classLoaderAdapter = classLoaderAdapter;
return this;
}
public Builder setApmGenerater(IApmGenerator apmGenerater){
this.apmGenerater =apmGenerater;
return this;
}
public Builder setJsFileLoaderAdapter(IWXJsFileLoaderAdapter jsFileLoaderAdapter) {
this.jsFileLoaderAdapter = jsFileLoaderAdapter;
return this;
}
public Builder addNativeLibrary(String name){
nativeLibraryList.add(name);
return this;
}
public InitConfig build(){
InitConfig config = new InitConfig();
config.httpAdapter = this.httpAdapter;
config.imgAdapter = this.imgAdapter;
config.drawableLoader = this.drawableLoader;
config.utAdapter = this.utAdapter;
config.storageAdapter = this.storageAdapter;
config.soLoader=this.soLoader;
config.framework=this.framework;
config.mURIAdapter = this.mURIAdapter;
config.webSocketAdapterFactory = this.webSocketAdapterFactory;
config.mJSExceptionAdapter=this.mJSExceptionAdapter;
config.classLoaderAdapter = this.classLoaderAdapter;
config.apmGenerater = this.apmGenerater;
config.jsFileLoaderAdapter = this.jsFileLoaderAdapter;
config.jscProcessManager = this.jscProcessManager;
config.nativeLibraryList = this.nativeLibraryList;
return config;
}
}
}