package org.jvnet.jaxb2_commons.xjc.outline.concrete; import org.apache.commons.lang3.Validate; import org.jvnet.jaxb2_commons.xjc.outline.FieldAccessorEx; import org.jvnet.jaxb2_commons.xjc.outline.MPropertyAccessor; import com.sun.codemodel.JBlock; import com.sun.codemodel.JExpression; import com.sun.codemodel.JType; import com.sun.codemodel.JVar; public class CMPropertyAccessor implements MPropertyAccessor { private final FieldAccessorEx fieldAccessor; public CMPropertyAccessor(FieldAccessorEx fieldAccessor) { Validate.notNull(fieldAccessor); this.fieldAccessor = fieldAccessor; } public void get(JBlock block, JVar variable) { fieldAccessor.toRawValue(block, variable); } public void set(JBlock block, String uniqueName, JExpression value) { fieldAccessor.fromRawValue(block, uniqueName, value); } public void unset(JBlock body) { fieldAccessor.unsetValues(body); } public JExpression isSet() { return fieldAccessor.hasSetValue(); } public JType getType() { return fieldAccessor.getType(); } public boolean isConstant() { return fieldAccessor.isConstant(); } public boolean isVirtual() { return fieldAccessor.isVirtual(); } }