package org.jvnet.jaxb2_commons.strategy.impl; import java.util.HashMap; import java.util.Map; import org.jvnet.jaxb2_commons.strategy.ClassOutlineProcessor; import org.jvnet.jaxb2_commons.strategy.OutlineProcessor; import com.sun.tools.xjc.Options; import com.sun.tools.xjc.outline.ClassOutline; import com.sun.tools.xjc.outline.Outline; public class DefaultOutlineProcessor<T, C> implements OutlineProcessor<Map<ClassOutline, T>, C> { private final ClassOutlineProcessor<T, C> classOutlineProcessor; public DefaultOutlineProcessor( final ClassOutlineProcessor<T, C> classOutlineProcessor) { this.classOutlineProcessor = classOutlineProcessor; } public ClassOutlineProcessor<T, C> getClassOutlineProcessor() { return classOutlineProcessor; } public Map<ClassOutline, T> process(C context, Outline outline, Options options) throws Exception { final Map<ClassOutline, T> classMappingsMap = new HashMap<ClassOutline, T>(); for (final ClassOutline classOutline : outline.getClasses()) { final T result = getClassOutlineProcessor().process(context, classOutline, options); if (result != null) { classMappingsMap.put(classOutline, result); } } return classMappingsMap; } }