// 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/ItemReaderBuilder.java
// public abstract class ItemReaderBuilder<T, R> {
// 
// 	protected Function<ParseContext, Boolean> shouldHandle;
// 
// 	protected Function<T, R> function;
// 
// 	public ItemReaderBuilder<T, R> shouldHandle(Function<ParseContext, Boolean> shouldHandle) {
// 		this.shouldHandle = shouldHandle;
// 		return this;
// 	}
// 
// 	public ItemReaderBuilder<T, R> shouldHandle(String path) {
// 		return this.shouldHandle((p) -> p.getPath().equals(path));
// 	}
// 
// 	public ItemReaderBuilder<T, R> handle(Function<T, R> function) {
// 		this.function = function;
// 		return this;
// 	}
// 
// 	public ItemReader<T, R> build() {
// 		return new ItemReader<T, R>() {
// 
// 			@Override
// 			public R read(T element) {
// 				return function.apply(element);
// 			}
// 
// 			@Override
// 			public boolean shouldHandle(ParseContext context) {
// 				return shouldHandle.apply(context);
// 			}
// 		};
// 	}
// }


import java.util.function.Function;
import javax.xml.bind.JAXBElement;
import com.giffing.easyxml.context.ParseContext;
import com.giffing.easyxml.reader.item.ItemReaderBuilder;
package com.giffing.easyxml.jaxb;




public class JaxbItemReaderBuilder<R> extends ItemReaderBuilder<JAXBElement<R>, R> {

	private Class<?> jaxbClass;

	public JaxbItemReaderBuilder() {
		super.handle((e) -> e.getValue());
	}

	@Override
	public JaxbItemReaderBuilder<R> shouldHandle(
// 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/ItemReaderBuilder.java
// public abstract class ItemReaderBuilder<T, R> {
// 
// 	protected Function<ParseContext, Boolean> shouldHandle;
// 
// 	protected Function<T, R> function;
// 
// 	public ItemReaderBuilder<T, R> shouldHandle(Function<ParseContext, Boolean> shouldHandle) {
// 		this.shouldHandle = shouldHandle;
// 		return this;
// 	}
// 
// 	public ItemReaderBuilder<T, R> shouldHandle(String path) {
// 		return this.shouldHandle((p) -> p.getPath().equals(path));
// 	}
// 
// 	public ItemReaderBuilder<T, R> handle(Function<T, R> function) {
// 		this.function = function;
// 		return this;
// 	}
// 
// 	public ItemReader<T, R> build() {
// 		return new ItemReader<T, R>() {
// 
// 			@Override
// 			public R read(T element) {
// 				return function.apply(element);
// 			}
// 
// 			@Override
// 			public boolean shouldHandle(ParseContext context) {
// 				return shouldHandle.apply(context);
// 			}
// 		};
// 	}
// }


// Path: easyxml-jaxb/src/main/java/com/giffing/easyxml/jaxb/JaxbItemReaderBuilder.java
import java.util.function.Function;
import javax.xml.bind.JAXBElement;
import com.giffing.easyxml.context.ParseContext;
import com.giffing.easyxml.reader.item.ItemReaderBuilder;

package com.giffing.easyxml.jaxb;




public class JaxbItemReaderBuilder<R> extends ItemReaderBuilder<JAXBElement<R>, R> {

	private Class<?> jaxbClass;

	public JaxbItemReaderBuilder() {
		super.handle((e) -> e.getValue());
	}

	@Override
	public JaxbItemReaderBuilder<R> shouldHandle(
		Function<ParseContext, Boolean> shouldHandle) {