UriRequestFactory.java
/*
* Decompiled with CFR 0_132.
*
* Could not load the following classes:
* android.text.TextUtils
*/
package org.xutils.http.request;
import android.text.TextUtils;
import java.lang.reflect.Constructor;
import java.lang.reflect.Type;
import java.util.HashMap;
import org.xutils.common.util.LogUtil;
import org.xutils.http.RequestParams;
import org.xutils.http.app.RequestTracker;
import org.xutils.http.request.AssetsRequest;
import org.xutils.http.request.HttpRequest;
import org.xutils.http.request.LocalFileRequest;
import org.xutils.http.request.UriRequest;
public final class UriRequestFactory {
private static Class<? extends RequestTracker> defaultTrackerCls;
private static final HashMap<String, Class<? extends UriRequest>> SCHEME_CLS_MAP;
private UriRequestFactory() {
}
public static UriRequest getUriRequest(RequestParams params, Type loadType) throws Throwable {
String scheme = null;
String uri = params.getUri();
int index = uri.indexOf(":");
if (index > 0) {
scheme = uri.substring(0, index);
} else if (uri.startsWith("/")) {
scheme = "file";
}
if (!TextUtils.isEmpty((CharSequence)scheme)) {
Class<? extends UriRequest> cls = SCHEME_CLS_MAP.get(scheme);
if (cls != null) {
Constructor<? extends UriRequest> constructor = cls.getConstructor(RequestParams.class, Class.class);
return constructor.newInstance(params, loadType);
}
if (scheme.startsWith("http")) {
return new HttpRequest(params, loadType);
}
if (scheme.equals("assets")) {
return new AssetsRequest(params, loadType);
}
if (scheme.equals("file")) {
return new LocalFileRequest(params, loadType);
}
throw new IllegalArgumentException("The url not be support: " + uri);
}
throw new IllegalArgumentException("The url not be support: " + uri);
}
public static void registerDefaultTrackerClass(Class<? extends RequestTracker> trackerCls) {
defaultTrackerCls = trackerCls;
}
public static RequestTracker getDefaultTracker() {
try {
return defaultTrackerCls == null ? null : defaultTrackerCls.newInstance();
}
catch (Throwable ex) {
LogUtil.e(ex.getMessage(), ex);
return null;
}
}
public static void registerRequestClass(String scheme, Class<? extends UriRequest> uriRequestCls) {
SCHEME_CLS_MAP.put(scheme, uriRequestCls);
}
static {
SCHEME_CLS_MAP = new HashMap();
}
}