package nl.ipo.cds.etl.attributemapping; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; import java.util.Locale; import nl.ipo.cds.attributemapping.MapperContext; import nl.ipo.cds.attributemapping.MappingDestination; import nl.ipo.cds.attributemapping.MappingSource; import nl.ipo.cds.attributemapping.executer.OperationExecuter; import nl.ipo.cds.attributemapping.executer.OperationExecutionException; import nl.ipo.cds.attributemapping.operations.OperationInputType; import nl.ipo.cds.attributemapping.operations.OperationType; import nl.ipo.cds.domain.FeatureTypeAttribute; public class FeatureTypeAttributeOperationType implements OperationType { private final FeatureTypeAttribute featureTypeAttribute; public FeatureTypeAttributeOperationType (final FeatureTypeAttribute featureTypeAttribute) { this.featureTypeAttribute = featureTypeAttribute; } @Override public String getName () { return featureTypeAttribute == null ? null : featureTypeAttribute.getName ().getLocalPart (); } @Override public String getDescription (final Locale locale) { return getName (); } @Override public String getLabel (final Locale locale) { return getName (); } @Override public String getFormatLabel (final Locale locale) { return getName (); } @Override public Type getReturnType () { return (featureTypeAttribute == null || featureTypeAttribute.getType () == null) ? null : featureTypeAttribute.getType ().getJavaType (); } @Override public Class<?> getPropertyBeanClass () { return null; } @Override public List<OperationInputType> getInputs () { return new ArrayList<OperationInputType> (); } @Override public OperationExecuter createExecuter (final Object operationProperties, final MapperContext context) { final String name = getName (); return new OperationExecuter() { @Override public Object execute (final MappingSource source, final MappingDestination destination, final List<Object> inputs) throws OperationExecutionException { return source.getAttributeValue (name); } @Override public void before () throws OperationExecutionException { } @Override public void after () throws OperationExecutionException { } }; } }