package org.jvnet.jaxb2_commons.xjc.outline.concrete; import org.apache.commons.lang3.Validate; import org.jvnet.jaxb2_commons.util.FieldAccessorFactory; import org.jvnet.jaxb2_commons.xjc.outline.FieldAccessorEx; import org.jvnet.jaxb2_commons.xjc.outline.MPropertyAccessor; import org.jvnet.jaxb2_commons.xjc.outline.MPropertyAccessorFactory; import com.sun.codemodel.JExpression; import com.sun.tools.xjc.outline.FieldOutline; public class CMPropertyAccessorFactory implements MPropertyAccessorFactory { private final FieldAccessorFactory fieldAccessorFactory; private final FieldOutline fieldOutline; public CMPropertyAccessorFactory(FieldAccessorFactory fieldAccessorFactory, FieldOutline fieldOutline) { Validate.notNull(fieldAccessorFactory); Validate.notNull(fieldOutline); this.fieldAccessorFactory = fieldAccessorFactory; this.fieldOutline = fieldOutline; } public MPropertyAccessor createPropertyAccessor(JExpression target) { FieldAccessorEx fieldAccessor = fieldAccessorFactory .createFieldAccessor(fieldOutline, target); return new CMPropertyAccessor(fieldAccessor); } }