// Decompiled by: Fernflower v0.6
// Date: 16.01.2011 23:09:03
// Copyright: 2008-2009, Stiver
// Home page: http://www.reversed-java.com
package org.xmlpull.v1;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlSerializer;
public class XmlPullParserFactory {
static final Class referenceContextClass;
public static final String PROPERTY_NAME = "org.xmlpull.v1.XmlPullParserFactory";
private static final String RESOURCE_NAME = "/META-INF/services/org.xmlpull.v1.XmlPullParserFactory";
protected ArrayList parserClasses;
protected String classNamesLocation;
protected ArrayList serializerClasses;
protected HashMap features = new HashMap();
public void setFeature(String var1, boolean var2) throws XmlPullParserException {
this.features.put(var1, new Boolean(var2));
}
public boolean getFeature(String var1) {
Boolean var2 = (Boolean)this.features.get(var1);
return var2 != null?var2.booleanValue():false;
}
public void setNamespaceAware(boolean var1) {
this.features.put("http://xmlpull.org/v1/doc/features.html#process-namespaces", new Boolean(var1));
}
public boolean isNamespaceAware() {
return this.getFeature("http://xmlpull.org/v1/doc/features.html#process-namespaces");
}
public void setValidating(boolean var1) {
this.features.put("http://xmlpull.org/v1/doc/features.html#validation", new Boolean(var1));
}
public boolean isValidating() {
return this.getFeature("http://xmlpull.org/v1/doc/features.html#validation");
}
public XmlPullParser newPullParser() throws XmlPullParserException {
if(this.parserClasses == null) {
throw new XmlPullParserException("Factory initialization was incomplete - has not tried " + this.classNamesLocation);
} else if(this.parserClasses.size() == 0) {
throw new XmlPullParserException("No valid parser classes found in " + this.classNamesLocation);
} else {
StringBuffer var1 = new StringBuffer();
int var2 = 0;
while(var2 < this.parserClasses.size()) {
Class var3 = (Class)this.parserClasses.get(var2);
try {
XmlPullParser var4 = (XmlPullParser)var3.newInstance();
Iterator var5 = this.features.keySet().iterator();
while(var5.hasNext()) {
String var6 = (String)var5.next();
Boolean var7 = (Boolean)this.features.get(var6);
if(var7 != null && var7.booleanValue()) {
var4.setFeature(var6, true);
}
}
return var4;
} catch (Exception var8) {
var1.append(var3.getName() + ": " + var8.toString() + "; ");
++var2;
}
}
throw new XmlPullParserException("could not create parser: " + var1);
}
}
public XmlSerializer newSerializer() throws XmlPullParserException {
if(this.serializerClasses == null) {
throw new XmlPullParserException("Factory initialization incomplete - has not tried " + this.classNamesLocation);
} else if(this.serializerClasses.size() == 0) {
throw new XmlPullParserException("No valid serializer classes found in " + this.classNamesLocation);
} else {
StringBuffer var1 = new StringBuffer();
int var2 = 0;
while(var2 < this.serializerClasses.size()) {
Class var3 = (Class)this.serializerClasses.get(var2);
try {
XmlSerializer var4 = (XmlSerializer)var3.newInstance();
return var4;
} catch (Exception var5) {
var1.append(var3.getName() + ": " + var5.toString() + "; ");
++var2;
}
}
throw new XmlPullParserException("could not create serializer: " + var1);
}
}
public static XmlPullParserFactory newInstance() throws XmlPullParserException {
return newInstance((String)null, (Class)null);
}
public static XmlPullParserFactory newInstance(String var0, Class var1) throws XmlPullParserException {
if(var1 == null) {
var1 = referenceContextClass;
}
var0 = "org.kxml2.io.KXmlParser,org.kxml2.io.KXmlSerializer";
XmlPullParserFactory var2 = null;
ArrayList var3 = new ArrayList();
ArrayList var4 = new ArrayList();
int var6;
for(int var5 = 0; var5 < var0.length(); var5 = var6 + 1) {
var6 = var0.indexOf(44, var5);
if(var6 == -1) {
var6 = var0.length();
}
String var7 = var0.substring(var5, var6);
Class var8 = null;
Object var9 = null;
try {
var8 = Class.forName(var7);
var9 = var8.newInstance();
} catch (Exception var11) {
;
}
if(var8 != null) {
boolean var10 = false;
if(var9 instanceof XmlPullParser) {
var3.add(var8);
var10 = true;
}
if(var9 instanceof XmlSerializer) {
var4.add(var8);
var10 = true;
}
if(var9 instanceof XmlPullParserFactory) {
if(var2 == null) {
var2 = (XmlPullParserFactory)var9;
}
var10 = true;
}
if(!var10) {
throw new XmlPullParserException("incompatible class: " + var7);
}
}
}
if(var2 == null) {
var2 = new XmlPullParserFactory();
}
var2.parserClasses = var3;
var2.serializerClasses = var4;
var2.classNamesLocation = "org.kxml2.io.kXmlParser,org.kxml2.io.KXmlSerializer";
return var2;
}
static {
XmlPullParserFactory var0 = new XmlPullParserFactory();
referenceContextClass = var0.getClass();
}
}