Search in sources :

Example 26 with Value

use of org.openforis.idm.model.Value in project collect by openforis.

the class RecordUpdater method recalculateValue.

private Value recalculateValue(Attribute<?, ?> attribute) {
    try {
        AttributeDefinition defn = attribute.getDefinition();
        List<AttributeDefault> attributeDefaults = defn.getAttributeDefaults();
        for (AttributeDefault attributeDefault : attributeDefaults) {
            if (attributeDefault.evaluateCondition(attribute)) {
                Value value = attributeDefault.evaluate(attribute);
                return value;
            }
        }
        return null;
    } catch (InvalidExpressionException e) {
        throw new IllegalStateException(String.format("Invalid expression for calculated attribute %s", attribute.getPath()));
    }
}
Also used : InvalidExpressionException(org.openforis.idm.model.expression.InvalidExpressionException) AttributeDefault(org.openforis.idm.metamodel.AttributeDefault) Value(org.openforis.idm.model.Value) BooleanValue(org.openforis.idm.model.BooleanValue) BooleanAttributeDefinition(org.openforis.idm.metamodel.BooleanAttributeDefinition) AttributeDefinition(org.openforis.idm.metamodel.AttributeDefinition) CodeAttributeDefinition(org.openforis.idm.metamodel.CodeAttributeDefinition)

Aggregations

Value (org.openforis.idm.model.Value)26 AttributeDefinition (org.openforis.idm.metamodel.AttributeDefinition)9 EntityDefinition (org.openforis.idm.metamodel.EntityDefinition)8 AbstractValue (org.openforis.idm.model.AbstractValue)6 Attribute (org.openforis.idm.model.Attribute)6 BooleanValue (org.openforis.idm.model.BooleanValue)6 ArrayList (java.util.ArrayList)5 Entity (org.openforis.idm.model.Entity)5 NodeChangeSet (org.openforis.collect.model.NodeChangeSet)4 CodeAttributeDefinition (org.openforis.idm.metamodel.CodeAttributeDefinition)4 BooleanAttribute (org.openforis.idm.model.BooleanAttribute)4 EventProducer (org.openforis.collect.event.EventProducer)3 RecordEvent (org.openforis.collect.event.RecordEvent)3 CollectRecord (org.openforis.collect.model.CollectRecord)3 CollectSurvey (org.openforis.collect.model.CollectSurvey)3 CodeAttribute (org.openforis.idm.model.CodeAttribute)3 EntityKeysIdentifier (org.openforis.collect.io.data.DataLine.EntityKeysIdentifier)2 EntityPositionIdentifier (org.openforis.collect.io.data.DataLine.EntityPositionIdentifier)2 CollectRecordSummary (org.openforis.collect.model.CollectRecordSummary)2 BooleanAttributeDefinition (org.openforis.idm.metamodel.BooleanAttributeDefinition)2