package org.activityinfo.model.expr.eval; import org.activityinfo.model.form.FormField; import org.activityinfo.model.resource.Resource; import org.activityinfo.model.type.FieldType; import org.activityinfo.model.type.FieldValue; import org.activityinfo.model.type.FieldValues; import org.activityinfo.model.type.NullFieldValue; public class StaticField implements FieldValueSource { private FormField field; public StaticField(FormField field) { this.field = field; } @Override public FieldValue getValue(Resource instance, EvalContext context) { FieldValue fieldValue = FieldValues.readFieldValueIfType( instance, field.getId().asString(), field.getType().getTypeClass()); if (fieldValue != null) { return fieldValue; // } else if(field.getDefaultValue() != null) { // return field.getDefaultValue(); } else { // we don't want to get NPE in ComparisonOperator return NullFieldValue.INSTANCE; } } @Override public FieldType resolveType(EvalContext context) { return field.getType(); } public FormField getField() { return field; } }