org.xmlpull.v1.wrapper.XmlPullWrapperFactory Maven / Gradle / Ivy
Show all versions of xpp3 Show documentation
/* -*- c-basic-offset: 4; indent-tabs-mode: nil; -*- //------100-columns-wide------>|*/
// for license please see accompanying LICENSE.txt file (available also at http://www.xmlpull.org/)
package org.xmlpull.v1.wrapper;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import org.xmlpull.v1.XmlSerializer;
import org.xmlpull.v1.wrapper.classic.StaticXmlPullParserWrapper;
import org.xmlpull.v1.wrapper.classic.StaticXmlSerializerWrapper;
/**
* Handy functions that combines XmlPull API into higher level functionality.
* NOTE: returned wrapper object is not multi-thread safe
*
* @author Aleksander Slominski
*/
public class XmlPullWrapperFactory {
private final static boolean DEBUG = false;
//protected ClassLoader classLoader;
protected XmlPullParserFactory f;
//protected boolean useDynamic;
public static XmlPullWrapperFactory newInstance() throws XmlPullParserException
{
//TODO: make into real pluggable factory service (later ...)?
return new XmlPullWrapperFactory(null);
}
public static XmlPullWrapperFactory newInstance(XmlPullParserFactory factory)
throws XmlPullParserException
{
return new XmlPullWrapperFactory(factory);
}
public static XmlPullWrapperFactory newInstance (String classNames, Class context)
throws XmlPullParserException
{
XmlPullParserFactory factory = XmlPullParserFactory.newInstance(classNames, context);
return new XmlPullWrapperFactory(factory);
}
// ------------ IMPLEMENTATION
protected XmlPullWrapperFactory(XmlPullParserFactory factory) throws XmlPullParserException {
if(factory != null) {
this.f = factory;
} else {
this.f = XmlPullParserFactory.newInstance();
}
}
public XmlPullParserFactory getFactory() throws XmlPullParserException {
return f;
}
public void setFeature(String name,
boolean state) throws XmlPullParserException
{
f.setFeature(name, state);
}
public boolean getFeature (String name) {
return f.getFeature(name);
}
public void setNamespaceAware(boolean awareness) {
f.setNamespaceAware(awareness);
}
public boolean isNamespaceAware() {
return f.isNamespaceAware();
}
public void setValidating(boolean validating) {
f.setValidating(validating);
}
public boolean isValidating() {
return f.isValidating();
}
//public void setUseDynamic(boolean enable) { useDynamic = enable; };
//public boolean getUseDynamic() { return useDynamic; };
public XmlPullParserWrapper newPullParserWrapper() throws XmlPullParserException {
XmlPullParser pp = f.newPullParser();
// if(useDynamic) {
// return (XmlPullParserWrapper) DynamicXmlPullParserWrapper.newProxy(pp, classLoader);
// } else {
return new StaticXmlPullParserWrapper(pp);
}
public XmlPullParserWrapper newPullParserWrapper(XmlPullParser pp) throws XmlPullParserException {
return new StaticXmlPullParserWrapper(pp);
}
public XmlSerializerWrapper newSerializerWrapper() throws XmlPullParserException {
XmlSerializer xs = f.newSerializer();
return new StaticXmlSerializerWrapper(xs, this);
}
public XmlSerializerWrapper newSerializerWrapper(XmlSerializer xs) throws XmlPullParserException {
return new StaticXmlSerializerWrapper(xs, this);
}
}