package org.jvnet.jaxb2_commons.xjc.generator.concrete; import org.apache.commons.lang3.Validate; import org.jvnet.jaxb2_commons.xjc.generator.MPackageOutlineGenerator; import org.jvnet.jaxb2_commons.xjc.outline.MModelOutline; import org.jvnet.jaxb2_commons.xjc.outline.MPackageOutline; import org.jvnet.jaxb2_commons.xjc.outline.concrete.CMPackageOutline; import org.jvnet.jaxb2_commons.xml.bind.model.MModelInfo; import org.jvnet.jaxb2_commons.xml.bind.model.MPackageInfo; import com.sun.codemodel.JPackage; import com.sun.tools.xjc.model.nav.NClass; import com.sun.tools.xjc.model.nav.NType; import com.sun.tools.xjc.outline.Outline; import com.sun.tools.xjc.outline.PackageOutline; public class CMPackageOutlineGenerator implements MPackageOutlineGenerator { private final Outline outline; private final JPackage packageInfo; public CMPackageOutlineGenerator(Outline outline, JPackage packageInfo) { Validate.notNull(outline); Validate.notNull(packageInfo); this.outline = outline; this.packageInfo = packageInfo; } public MPackageOutline generate(MModelOutline parent, MModelInfo<NType, NClass> modelInfo, MPackageInfo packageInfo) { final PackageOutline packageOutline = outline .getPackageContext(this.packageInfo); Validate.notNull(packageOutline); return new CMPackageOutline(parent, packageInfo, packageOutline); } }