Search in sources :

Example 31 with Code

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

the class CodeListItemProxy method setSelectedItems.

public static void setSelectedItems(List<CodeListItemProxy> proxies, List<Node<? extends NodeDefinition>> codes) {
    for (CodeListItemProxy proxy : proxies) {
        // if code in attributes, set selected and qualifier in proxy
        for (Node<? extends NodeDefinition> node : codes) {
            CodeAttribute code = (CodeAttribute) node;
            Code codeVal = code.getValue();
            if (codeVal != null && codeVal.getCode() != null && codeVal.getCode().equals(proxy.getCode())) {
                proxy.setSelected(Boolean.TRUE);
                proxy.setQualifier(codeVal.getQualifier());
            }
        }
    }
}
Also used : CodeAttribute(org.openforis.idm.model.CodeAttribute) Code(org.openforis.idm.model.Code)

Example 32 with Code

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

the class CSVValueFormatter method format.

public String format(AttributeDefinition defn, Value value) {
    if (value == null) {
        return "";
    } else if (value instanceof BooleanValue) {
        return ((BooleanValue) value).getValue().toString();
    } else if (value instanceof Code) {
        CodeListService codeListService = defn.getSurvey().getContext().getCodeListService();
        CodeList list = ((CodeAttributeDefinition) defn).getList();
        if (codeListService.hasQualifiableItems(list)) {
            return String.format("%s: %s", ((Code) value).getCode(), ((Code) value).getQualifier());
        } else {
            return ((Code) value).getCode();
        }
    } else if (value instanceof Coordinate) {
        return value.toString();
    } else if (value instanceof Date) {
        Date date = (Date) value;
        return String.format("%d/%d/%d", ((Date) value).getDay(), ((Date) value).getMonth(), date.getYear());
    } else if (value instanceof File) {
        return ((File) value).getFilename();
    } else if (value instanceof NumberValue) {
        Number val = ((NumberValue<?>) value).getValue();
        NumberFormat numberFormat = NumberFormat.getInstance(Locale.ENGLISH);
        String formattedVal = numberFormat.format(val);
        return formattedVal;
    } else if (value instanceof NumericRange) {
        Number from = ((NumericRange<?>) value).getFrom();
        Number to = ((NumericRange<?>) value).getFrom();
        String format;
        if (value instanceof IntegerRange) {
            format = "%d-%d";
        } else {
            format = "%f-%f";
        }
        String formattedValue = String.format(Locale.ENGLISH, format, from, to);
        return formattedValue;
    } else if (value instanceof TextValue) {
        return ((TextValue) value).getValue();
    } else if (value instanceof Time) {
        Time time = (Time) value;
        return String.format("%d:%d", time.getHour(), time.getMinute());
    } else
        throw new IllegalArgumentException("Unsupported attribute value type: " + value.getClass().getName());
}
Also used : IntegerRange(org.openforis.idm.model.IntegerRange) CodeListService(org.openforis.idm.metamodel.CodeListService) Time(org.openforis.idm.model.Time) Code(org.openforis.idm.model.Code) Date(org.openforis.idm.model.Date) NumericRange(org.openforis.idm.model.NumericRange) CodeList(org.openforis.idm.metamodel.CodeList) CodeAttributeDefinition(org.openforis.idm.metamodel.CodeAttributeDefinition) Coordinate(org.openforis.idm.model.Coordinate) NumberValue(org.openforis.idm.model.NumberValue) TextValue(org.openforis.idm.model.TextValue) BooleanValue(org.openforis.idm.model.BooleanValue) File(org.openforis.idm.model.File) NumberFormat(java.text.NumberFormat)

Example 33 with Code

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

the class CSVDataImportProcessIntegrationTest method createTestRecord.

private CollectRecord createTestRecord(CollectSurvey survey, String id) {
    CollectRecord record = new CollectRecord(survey, "2.0", "cluster");
    Entity cluster = record.getRootEntity();
    record.setCreationDate(new GregorianCalendar(2011, 11, 31, 23, 59).getTime());
    EntityBuilder.addValue(cluster, "id", new Code(id));
    EntityBuilder.addValue(cluster, "region", new Code("001"));
    EntityBuilder.addValue(cluster, "district", new Code("002"));
    EntityBuilder.addValue(cluster, "plot_distance", 100d, meterUnit);
    EntityBuilder.addValue(cluster, "map_sheet", "map sheet 1");
    EntityBuilder.addValue(cluster, "map_sheet", "map sheet 2");
    EntityBuilder.addValue(cluster, "map_sheet", "map sheet 3");
    {
        Entity timeStudy = EntityBuilder.addEntity(cluster, "time_study");
        EntityBuilder.addValue(timeStudy, "date", new Date(2012, 1, 1));
        EntityBuilder.addValue(timeStudy, "start_time", new Time(9, 10));
        EntityBuilder.addValue(timeStudy, "end_time", new Time(12, 20));
    }
    {
        Entity timeStudy = EntityBuilder.addEntity(cluster, "time_study");
        EntityBuilder.addValue(timeStudy, "date", new Date(2012, 2, 20));
        EntityBuilder.addValue(timeStudy, "start_time", new Time(8, 15));
        EntityBuilder.addValue(timeStudy, "end_time", new Time(11, 10));
    }
    {
        Entity plot = EntityBuilder.addEntity(cluster, "plot");
        EntityBuilder.addValue(plot, "no", new Code("1"));
        EntityBuilder.addValue(plot, "subplot", "A");
        EntityBuilder.addValue(plot, "land_use", new Code("1"));
        {
            Entity tree = EntityBuilder.addEntity(plot, "tree");
            EntityBuilder.addValue(tree, "tree_no", 1);
            EntityBuilder.addValue(tree, "stem_no", 1);
            EntityBuilder.addValue(tree, "dbh", 10.5d);
        }
        {
            Entity tree = EntityBuilder.addEntity(plot, "tree");
            EntityBuilder.addValue(tree, "tree_no", 2);
            EntityBuilder.addValue(tree, "stem_no", 1);
            EntityBuilder.addValue(tree, "dbh", 20.5d);
        }
    }
    {
        Entity plot = EntityBuilder.addEntity(cluster, "plot");
        EntityBuilder.addValue(plot, "no", new Code("2"));
        EntityBuilder.addValue(plot, "subplot", "A");
        EntityBuilder.addValue(plot, "land_use", new Code("2"));
        {
            Entity tree = EntityBuilder.addEntity(plot, "tree");
            EntityBuilder.addValue(tree, "tree_no", 1);
            EntityBuilder.addValue(tree, "stem_no", 1);
            EntityBuilder.addValue(tree, "dbh", 10.5d);
        }
        {
            Entity tree = EntityBuilder.addEntity(plot, "tree");
            EntityBuilder.addValue(tree, "tree_no", 2);
            EntityBuilder.addValue(tree, "stem_no", 1);
            EntityBuilder.addValue(tree, "dbh", 20.5d);
        }
    }
    {
        Entity plot = EntityBuilder.addEntity(cluster, "plot");
        EntityBuilder.addValue(plot, "no", new Code("2"));
        EntityBuilder.addValue(plot, "subplot", "B");
        EntityBuilder.addValue(plot, "land_use", new Code("3"));
        {
            Entity tree = EntityBuilder.addEntity(plot, "tree");
            EntityBuilder.addValue(tree, "tree_no", 1);
            EntityBuilder.addValue(tree, "stem_no", 1);
            EntityBuilder.addValue(tree, "dbh", 10.5d);
        }
        {
            Entity tree = EntityBuilder.addEntity(plot, "tree");
            EntityBuilder.addValue(tree, "tree_no", 2);
            EntityBuilder.addValue(tree, "stem_no", 1);
            EntityBuilder.addValue(tree, "dbh", 20.5d);
        }
    }
    record.updateSummaryFields();
    recordManager.validate(record);
    return record;
}
Also used : CollectRecord(org.openforis.collect.model.CollectRecord) Entity(org.openforis.idm.model.Entity) GregorianCalendar(java.util.GregorianCalendar) Time(org.openforis.idm.model.Time) Code(org.openforis.idm.model.Code) Date(org.openforis.idm.model.Date)

Example 34 with Code

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

the class RecordIndexManagerIntegrationTest method createTestRecord.

private CollectRecord createTestRecord(CollectSurvey survey, int internalId, String id, String gpsModel) {
    CollectRecord record = new CollectRecord(survey, "2.0", "cluster");
    record.setId(internalId);
    Entity cluster = record.getRootEntity();
    record.setCreationDate(new GregorianCalendar(2011, 11, 31, 23, 59).getTime());
    record.setStep(Step.ENTRY);
    EntityBuilder.addValue(cluster, "id", new Code(id));
    EntityBuilder.addValue(cluster, "gps_model", gpsModel);
    return record;
}
Also used : CollectRecord(org.openforis.collect.model.CollectRecord) Entity(org.openforis.idm.model.Entity) GregorianCalendar(java.util.GregorianCalendar) Code(org.openforis.idm.model.Code)

Example 35 with Code

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

the class RecordManagerIntegrationTest method testUpdateCurrentStep.

@Test
public void testUpdateCurrentStep() throws MissingRecordKeyException, RecordPromoteException {
    CollectRecord record = (CollectRecord) record(attribute("id", "10_117"), attribute("region", "002"), attribute("district", "003")).build(survey, "cluster", "2.0");
    RecordUpdater recordUpdater = new RecordUpdater();
    recordUpdater.initializeNewRecord(record);
    User user = userManager.loadAdminUser();
    record.setCreatedBy(user);
    record.setModifiedBy(user);
    recordManager.save(record);
    recordManager.promote(record, user, true);
    CollectRecord cleansingRecord = recordManager.load(survey, record.getId());
    Attribute<?, Code> district = cleansingRecord.findNodeByPath("/cluster/district");
    Code newDistrictValue = new Code("001");
    recordUpdater.updateAttribute(district, newDistrictValue);
    recordManager.save(cleansingRecord);
    CollectRecord reloadedCleansingRecord = recordManager.load(survey, record.getId());
    Attribute<?, Code> reloadedDistrict = reloadedCleansingRecord.findNodeByPath("/cluster/district");
    assertEquals(newDistrictValue, reloadedDistrict.getValue());
}
Also used : CollectRecord(org.openforis.collect.model.CollectRecord) User(org.openforis.collect.model.User) RecordUpdater(org.openforis.collect.model.RecordUpdater) Code(org.openforis.idm.model.Code) CollectIntegrationTest(org.openforis.collect.CollectIntegrationTest) Test(org.junit.Test)

Aggregations

Code (org.openforis.idm.model.Code)68 Test (org.junit.Test)45 Entity (org.openforis.idm.model.Entity)35 CodeAttribute (org.openforis.idm.model.CodeAttribute)16 AbstractTest (org.openforis.idm.AbstractTest)14 Coordinate (org.openforis.idm.model.Coordinate)14 Date (org.openforis.idm.model.Date)10 Time (org.openforis.idm.model.Time)10 CollectRecord (org.openforis.collect.model.CollectRecord)9 RealAttribute (org.openforis.idm.model.RealAttribute)9 GregorianCalendar (java.util.GregorianCalendar)8 CodeAttributeDefinition (org.openforis.idm.metamodel.CodeAttributeDefinition)6 CodeList (org.openforis.idm.metamodel.CodeList)6 CollectIntegrationTest (org.openforis.collect.CollectIntegrationTest)5 CoordinateAttribute (org.openforis.idm.model.CoordinateAttribute)5 RecordUpdater (org.openforis.collect.model.RecordUpdater)4 ModelVersion (org.openforis.idm.metamodel.ModelVersion)4 ValidationResults (org.openforis.idm.metamodel.validation.ValidationResults)4 Node (org.openforis.idm.model.Node)4 User (org.openforis.collect.model.User)3