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;
}
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()));
}
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()));
}
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());
}
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;
}
Aggregations