Search in sources :

Example 6 with Time

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

the class DataMarshallerTest method createTestRecord.

private CollectRecord createTestRecord(CollectSurvey survey) throws RecordPersistenceException {
    RecordBuilder recordBuilder = record(attribute("id", "123_456"), attribute("gps_realtime", "true"), attribute("region", "001"), attribute("district", "XXX"), attribute("crew_no", 10), attribute("map_sheet", "value 1"), attribute("map_sheet", "value 2"), attribute("vehicle_location", new Coordinate(432423423d, 4324324d, "srs")), attribute("gps_model", "TomTom 1.232"), attribute("remarks", "Remarks with UTF-8 character: Í"), entity("time_study", attribute("date", new Date(2011, 2, 14)), attribute("start_time", new Time(8, 15)), attribute("end_time", new Time(15, 29))), entity("time_study", attribute("date", new Date(2011, 2, 15)), attribute("start_time", new Time(8, 32)), attribute("end_time", new Time(11, 20))), entity("plot", attribute("no", new Code("1")), entity("tree", attribute("tree_no", 1), attribute("dbh", 54.2), attribute("total_height", 2.0), attribute("bole_height", (Double) null)), entity("tree", attribute("tree_no", 2), attribute("dbh", 82.8), attribute("total_height", 3.0))), entity("plot", attribute("no", new Code("2")), entity("tree", attribute("tree_no", 1), attribute("dbh", 34.2), attribute("total_height", 2.0)), entity("tree", attribute("tree_no", 2), attribute("dbh", 85.8), attribute("total_height", 4.0))));
    CollectRecord record = recordBuilder.build(survey, "cluster", "2.0");
    record.setCreationDate(new GregorianCalendar(2011, 11, 31, 23, 59).getTime());
    record.setStep(Step.ENTRY);
    record.updateSummaryFields();
    RecordUpdater recordUpdater = new RecordUpdater();
    recordUpdater.initializeRecord(record);
    Entity cluster = record.getRootEntity();
    recordUpdater.confirmError((Attribute<?, ?>) record.findNodeByPath("/cluster/district"));
    recordUpdater.approveMissingValue(cluster, "accessibility");
    NumberAttribute<?, ?> boleHeight = (NumberAttribute<?, ?>) record.findNodeByPath("/cluster/plot[1]/tree[1]/bole_height");
    recordUpdater.updateAttribute(boleHeight, FieldSymbol.BLANK_ON_FORM);
    recordUpdater.updateRemarks(boleHeight.getNumberField(), "No value specified");
    return record;
}
Also used : CollectRecord(org.openforis.collect.model.CollectRecord) Entity(org.openforis.idm.model.Entity) Coordinate(org.openforis.idm.model.Coordinate) RecordBuilder(org.openforis.idm.testfixture.RecordBuilder) GregorianCalendar(java.util.GregorianCalendar) NumberAttribute(org.openforis.idm.model.NumberAttribute) Time(org.openforis.idm.model.Time) Code(org.openforis.idm.model.Code) RecordUpdater(org.openforis.collect.model.RecordUpdater) Date(org.openforis.idm.model.Date)

Example 7 with Time

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

the class ComparisonCheckTest method testTimeGtFailOnEq.

@Test
public void testTimeGtFailOnEq() {
    Entity timeStudy = EntityBuilder.addEntity(cluster, "time_study");
    EntityBuilder.addValue(timeStudy, "start_time", new Time(10, 00));
    TimeAttribute endTime = EntityBuilder.addValue(timeStudy, "end_time", new Time(10, 00));
    ValidationResults results = validate(endTime);
    assertTrue(containsComparisonCheck(results.getErrors()));
}
Also used : Entity(org.openforis.idm.model.Entity) TimeAttribute(org.openforis.idm.model.TimeAttribute) Time(org.openforis.idm.model.Time) Test(org.junit.Test)

Example 8 with Time

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

the class ComparisonCheckTest method testTimeGtPassOnGt.

@Test
public void testTimeGtPassOnGt() {
    Entity timeStudy = EntityBuilder.addEntity(cluster, "time_study");
    EntityBuilder.addValue(timeStudy, "start_time", new Time(10, 00));
    TimeAttribute endTime = EntityBuilder.addValue(timeStudy, "end_time", new Time(10, 01));
    ValidationResults results = validate(endTime);
    assertFalse(containsComparisonCheck(results.getErrors()));
}
Also used : Entity(org.openforis.idm.model.Entity) TimeAttribute(org.openforis.idm.model.TimeAttribute) Time(org.openforis.idm.model.Time) Test(org.junit.Test)

Example 9 with Time

use of org.openforis.idm.model.Time 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 10 with Time

use of org.openforis.idm.model.Time 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)

Aggregations

Time (org.openforis.idm.model.Time)16 Entity (org.openforis.idm.model.Entity)12 Code (org.openforis.idm.model.Code)10 Date (org.openforis.idm.model.Date)10 Coordinate (org.openforis.idm.model.Coordinate)8 GregorianCalendar (java.util.GregorianCalendar)6 CollectRecord (org.openforis.collect.model.CollectRecord)6 RealAttribute (org.openforis.idm.model.RealAttribute)4 TimeAttribute (org.openforis.idm.model.TimeAttribute)4 Test (org.junit.Test)3 NumberAttribute (org.openforis.idm.model.NumberAttribute)3 RecordBuilder (org.openforis.idm.testfixture.RecordBuilder)3 RecordUpdater (org.openforis.collect.model.RecordUpdater)2 NumberFormat (java.text.NumberFormat)1 User (org.openforis.collect.model.User)1 CodeAttributeDefinition (org.openforis.idm.metamodel.CodeAttributeDefinition)1 CodeList (org.openforis.idm.metamodel.CodeList)1 CodeListService (org.openforis.idm.metamodel.CodeListService)1 BooleanValue (org.openforis.idm.model.BooleanValue)1 File (org.openforis.idm.model.File)1