Search in sources :

Example 21 with Unit

use of org.openforis.idm.metamodel.Unit in project collect by openforis.

the class ComparisonCheckTest method testLteWithNormalizedValuesFailOnLt.

@Test
public void testLteWithNormalizedValuesFailOnLt() {
    RealAttribute plotDistance = EntityBuilder.addValue(cluster, "plot_distance", 25000d);
    Unit unit = survey.getUnit("m");
    plotDistance.setUnit(unit);
    ValidationResults results = validate(plotDistance);
    assertTrue(containsComparisonCheck(results.getErrors()));
}
Also used : RealAttribute(org.openforis.idm.model.RealAttribute) Unit(org.openforis.idm.metamodel.Unit) Test(org.junit.Test)

Example 22 with Unit

use of org.openforis.idm.metamodel.Unit in project collect by openforis.

the class AttributeValueUtils method extractNormalizedValue.

private static Object extractNormalizedValue(NumericRangeAttribute<?, ?> attr) {
    NumericRange<?> value = attr.getValue();
    RangeAttributeDefinition defn = attr.getDefinition();
    List<Unit> units = defn.getUnits();
    if (units != null && units.size() > 1) {
        Unit unit = attr.getUnit();
        Unit defaultUnit = defn.getDefaultUnit();
        if (unit != null && defaultUnit != null && unit != defaultUnit) {
            Number from = value.getFrom();
            Number to = value.getTo();
            NumericRange<?> normalizedValue;
            if (attr instanceof IntegerRangeAttribute) {
                int normalizedFrom = getNormalizedValue(from, unit, defaultUnit).intValue();
                int normalizedTo = getNormalizedValue(to, unit, defaultUnit).intValue();
                normalizedValue = new IntegerRange(normalizedFrom, normalizedTo, defaultUnit);
            } else {
                double normalizedFrom = getNormalizedValue(from, unit, defaultUnit).doubleValue();
                double normalizedTo = getNormalizedValue(to, unit, defaultUnit).doubleValue();
                normalizedValue = new RealRange(normalizedFrom, normalizedTo, defaultUnit);
            }
            return normalizedValue;
        } else {
            return value;
        }
    } else {
        return value;
    }
}
Also used : IntegerRange(org.openforis.idm.model.IntegerRange) RealRange(org.openforis.idm.model.RealRange) Unit(org.openforis.idm.metamodel.Unit) IntegerRangeAttribute(org.openforis.idm.model.IntegerRangeAttribute) RangeAttributeDefinition(org.openforis.idm.metamodel.RangeAttributeDefinition)

Example 23 with Unit

use of org.openforis.idm.metamodel.Unit in project collect by openforis.

the class UnitsVM method getItemsInternal.

@Override
protected List<Unit> getItemsInternal() {
    CollectSurvey survey = getSurvey();
    List<Unit> units = survey.getUnits();
    return units;
}
Also used : CollectSurvey(org.openforis.collect.model.CollectSurvey) Unit(org.openforis.idm.metamodel.Unit)

Aggregations

Unit (org.openforis.idm.metamodel.Unit)23 CollectSurvey (org.openforis.collect.model.CollectSurvey)3 RangeAttributeDefinition (org.openforis.idm.metamodel.RangeAttributeDefinition)3 Test (org.junit.Test)2 NumberAttributeDefinition (org.openforis.idm.metamodel.NumberAttributeDefinition)2 IntegerRange (org.openforis.idm.model.IntegerRange)2 NumberAttribute (org.openforis.idm.model.NumberAttribute)2 RealAttribute (org.openforis.idm.model.RealAttribute)2 RealRange (org.openforis.idm.model.RealRange)2 ParsingError (org.openforis.collect.io.metadata.parsing.ParsingError)1 NodeChangeSet (org.openforis.collect.model.NodeChangeSet)1 AttributeDefinition (org.openforis.idm.metamodel.AttributeDefinition)1 CodeAttributeDefinition (org.openforis.idm.metamodel.CodeAttributeDefinition)1 EntityDefinition (org.openforis.idm.metamodel.EntityDefinition)1 NumericAttributeDefinition (org.openforis.idm.metamodel.NumericAttributeDefinition)1 Survey (org.openforis.idm.metamodel.Survey)1 IntegerRangeAttribute (org.openforis.idm.model.IntegerRangeAttribute)1 IntegerValue (org.openforis.idm.model.IntegerValue)1 NumericRange (org.openforis.idm.model.NumericRange)1 RealValue (org.openforis.idm.model.RealValue)1