return (T) caps;
}
if (DoNotUseProxyPac.class.equals(clazz)) {
JSONObject object = new JSONObject((String) text);
DoNotUseProxyPac pac = new DoNotUseProxyPac();
if (object.has("directUrls")) {
JSONArray allUrls = object.getJSONArray("directUrls");
for (int i = 0; i < allUrls.length(); i++) {
pac.map(allUrls.getString(i)).toNoProxy();
}
}
if (object.has("directHosts")) {
JSONArray allHosts = object.getJSONArray("directHosts");
for (int i = 0; i < allHosts.length(); i++) {
pac.mapHost(allHosts.getString(i)).toNoProxy();
}
}
if (object.has("proxiedHosts")) {
JSONObject proxied = object.getJSONObject("proxiedHosts");
Iterator allHosts = proxied.keys();
while (allHosts.hasNext()) {
String host = (String) allHosts.next();
pac.mapHost(host).toProxy(proxied.getString(host));
}
}
if (object.has("proxiedUrls")) {
JSONObject proxied = object.getJSONObject("proxiedUrls");
Iterator allUrls = proxied.keys();
while (allUrls.hasNext()) {
String host = (String) allUrls.next();
pac.map(host).toProxy(proxied.getString(host));
}
}
if (object.has("proxiedRegexUrls")) {
JSONObject proxied = object.getJSONObject("proxiedRegexUrls");
Iterator allUrls = proxied.keys();
while (allUrls.hasNext()) {
String host = (String) allUrls.next();
pac.map(host).toProxy(proxied.getString(host));
}
}
if (object.has("defaultProxy")) {
if ("'DIRECT'".equals(object.getString("defaultProxy"))) {
pac.defaults().toNoProxy();
} else {
pac.defaults().toProxy(object.getString("defaultProxy"));
}
}
if (object.has("deriveFrom")) {
pac.deriveFrom(new URI(object.getString("deriveFrom")));
}
return (T) pac;
}