// Path: easyxml-core/src/main/java/com/giffing/easyxml/context/ParseContext.java
// public class ParseContext {
// 	
// 	/**
// 	 * The current xml element path divided by slash
// 	 */
// 	private String path;
// 
// 	public String getPath() {
// 		return path;
// 	}
// 
// 	public void setPath(String path) {
// 		this.path = path;
// 	}
// 
// }
// 
// Path: easyxml-core/src/main/java/com/giffing/easyxml/context/TransformContext.java
// public class TransformContext<T, R> {
// 
// 	private XMLStreamReader streamReader;
// 
// 	private ItemReader<T, R> itemReader;
// 
// 	public TransformContext(XMLStreamReader streamReader, ItemReader<T, R> itemReader) {
// 		this.streamReader = streamReader;
// 		this.itemReader = itemReader;
// 	}
// 
// 	public XMLStreamReader getStreamReader() {
// 		return streamReader;
// 	}
// 
// 	public void setStreamReader(XMLStreamReader streamReader) {
// 		this.streamReader = streamReader;
// 	}
// 
// 	public ItemReader<T, R> getItemReader() {
// 		return itemReader;
// 	}
// 
// 	public void setItemReader(ItemReader<T, R> itemReader) {
// 		this.itemReader = itemReader;
// 	}
// }
// 
// Path: easyxml-core/src/main/java/com/giffing/easyxml/reader/item/ItemReader.java
// public interface ItemReader<T, R> {
// 
// 	/**
// 	 * @param t transform result
// 	 */
// 	R read(T t);
// 
// 	/**
// 	 * Indicates if the reader is responsible for the current context
// 	 * 
// 	 * @param context
// 	 */
// 	boolean shouldHandle(ParseContext context);
// 
// }
// 
// Path: easyxml-core/src/main/java/com/giffing/easyxml/stax/reader/context/StaxTransformerResult.java
// public class StaxTransformerResult implements TransformResult<XMLStreamReader> {
// 
// 	private XMLStreamReader reader;
// 
// 	public StaxTransformerResult(XMLStreamReader reader){
// 		this.reader = reader;
// 	}
// 	
// 	@Override
// 	public XMLStreamReader getContent() {
// 		return reader;
// 	}
// 
// }


import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import org.apache.commons.lang3.StringUtils;
import com.giffing.easyxml.context.ParseContext;
import com.giffing.easyxml.context.TransformContext;
import com.giffing.easyxml.reader.item.ItemReader;
import com.giffing.easyxml.stax.reader.context.StaxTransformerResult;
		}
	}

	public void close() {
		if (streamReader != null) {
			try {
				streamReader.close();
			} catch (XMLStreamException e) {
			}
		}
		if (inputStream != null) {
			try {
				inputStream.close();
			} catch (IOException e) {
			}
		}
	}

	private void doOpen() {
		try {
			streamReader = xif.createXMLStreamReader(inputStream, "UTF-8");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public InputStream getInputStream() {
		return inputStream;
	}

// Path: easyxml-core/src/main/java/com/giffing/easyxml/context/ParseContext.java
// public class ParseContext {
// 	
// 	/**
// 	 * The current xml element path divided by slash
// 	 */
// 	private String path;
// 
// 	public String getPath() {
// 		return path;
// 	}
// 
// 	public void setPath(String path) {
// 		this.path = path;
// 	}
// 
// }
// 
// Path: easyxml-core/src/main/java/com/giffing/easyxml/context/TransformContext.java
// public class TransformContext<T, R> {
// 
// 	private XMLStreamReader streamReader;
// 
// 	private ItemReader<T, R> itemReader;
// 
// 	public TransformContext(XMLStreamReader streamReader, ItemReader<T, R> itemReader) {
// 		this.streamReader = streamReader;
// 		this.itemReader = itemReader;
// 	}
// 
// 	public XMLStreamReader getStreamReader() {
// 		return streamReader;
// 	}
// 
// 	public void setStreamReader(XMLStreamReader streamReader) {
// 		this.streamReader = streamReader;
// 	}
// 
// 	public ItemReader<T, R> getItemReader() {
// 		return itemReader;
// 	}
// 
// 	public void setItemReader(ItemReader<T, R> itemReader) {
// 		this.itemReader = itemReader;
// 	}
// }
// 
// Path: easyxml-core/src/main/java/com/giffing/easyxml/reader/item/ItemReader.java
// public interface ItemReader<T, R> {
// 
// 	/**
// 	 * @param t transform result
// 	 */
// 	R read(T t);
// 
// 	/**
// 	 * Indicates if the reader is responsible for the current context
// 	 * 
// 	 * @param context
// 	 */
// 	boolean shouldHandle(ParseContext context);
// 
// }
// 
// Path: easyxml-core/src/main/java/com/giffing/easyxml/stax/reader/context/StaxTransformerResult.java
// public class StaxTransformerResult implements TransformResult<XMLStreamReader> {
// 
// 	private XMLStreamReader reader;
// 
// 	public StaxTransformerResult(XMLStreamReader reader){
// 		this.reader = reader;
// 	}
// 	
// 	@Override
// 	public XMLStreamReader getContent() {
// 		return reader;
// 	}
// 
// }


// Path: easyxml-core/src/main/java/com/giffing/easyxml/reader/Parser.java
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import org.apache.commons.lang3.StringUtils;
import com.giffing.easyxml.context.ParseContext;
import com.giffing.easyxml.context.TransformContext;
import com.giffing.easyxml.reader.item.ItemReader;
import com.giffing.easyxml.stax.reader.context.StaxTransformerResult;

		}
	}

	public void close() {
		if (streamReader != null) {
			try {
				streamReader.close();
			} catch (XMLStreamException e) {
			}
		}
		if (inputStream != null) {
			try {
				inputStream.close();
			} catch (IOException e) {
			}
		}
	}

	private void doOpen() {
		try {
			streamReader = xif.createXMLStreamReader(inputStream, "UTF-8");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public InputStream getInputStream() {
		return inputStream;
	}

	public void setInputStream(InputStream inputStream) {