// 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/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);
// 
// }


import java.io.InputStream;
import java.io.OutputStream;
import javax.xml.stream.XMLStreamReader;
import org.jdom2.output.Format;
import com.giffing.easyxml.context.ParseContext;
import com.giffing.easyxml.reader.item.ItemReader;

	public Writer build() {
		return writer;
	}

	public Jdom2WriterBuilder<C> setFormat(Format format) {
		this.writer.setFormat(format);
		return this;
	}
	
	public Jdom2WriterBuilder<C> setInputStream(InputStream inputStream) {
		this.writer.setInputStream(inputStream);
		return this;
	}

	public Jdom2WriterBuilder<C> setOutputStream(OutputStream outputStream) {
		this.writer.setOutputStream(outputStream);
		return this;
	}

	public Jdom2WriterBuilder<C> setNamespace(String namespace) {
		this.writer.setNamespace(namespace);
		return this;
	}

	public Jdom2WriterBuilder<C> addItemWriter(Jdom2ItemWriter<C> itemWriter) {
		this.writer.getItemWriter().add(itemWriter);
		return this;
	}

// 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/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-jdom2/src/main/java/com/giffing/easyxml/jdom2/writer/Jdom2WriterBuilder.java
import java.io.InputStream;
import java.io.OutputStream;
import javax.xml.stream.XMLStreamReader;
import org.jdom2.output.Format;
import com.giffing.easyxml.context.ParseContext;
import com.giffing.easyxml.reader.item.ItemReader;


	public Writer build() {
		return writer;
	}

	public Jdom2WriterBuilder<C> setFormat(Format format) {
		this.writer.setFormat(format);
		return this;
	}
	
	public Jdom2WriterBuilder<C> setInputStream(InputStream inputStream) {
		this.writer.setInputStream(inputStream);
		return this;
	}

	public Jdom2WriterBuilder<C> setOutputStream(OutputStream outputStream) {
		this.writer.setOutputStream(outputStream);
		return this;
	}

	public Jdom2WriterBuilder<C> setNamespace(String namespace) {
		this.writer.setNamespace(namespace);
		return this;
	}

	public Jdom2WriterBuilder<C> addItemWriter(Jdom2ItemWriter<C> itemWriter) {
		this.writer.getItemWriter().add(itemWriter);
		return this;
	}

	public Jdom2WriterBuilder<C> addStaxItemReader(ItemReader<XMLStreamReader, Void> itemReader) {