use of org.javarosa.core.model.FormDef in project javarosa by opendatakit.
the class CompactInstanceWrapper method loadTemplateInstance.
/**
* load a template instance fresh from the original FormDef, retrieved from RMS
* @param formID
* @return
*/
public static FormInstance loadTemplateInstance(int formID) {
IStorageUtility forms = StorageManager.getStorage(FormDef.STORAGE_KEY);
FormDef f = (FormDef) forms.read(formID);
return (f != null ? f.getMainInstance() : null);
}
use of org.javarosa.core.model.FormDef in project javarosa by opendatakit.
the class GeoShapeAreaTest method testGeoShapeSupportForEnclosedArea.
public void testGeoShapeSupportForEnclosedArea() throws Exception {
// Read the form definition
String FORM_NAME = (new File(PathConst.getTestResourcePath(), "area.xml")).getAbsolutePath();
InputStream is = null;
FormDef formDef = null;
is = new FileInputStream(new File(FORM_NAME));
formDef = XFormUtils.getFormFromInputStream(is);
// trigger all calculations
formDef.initialize(true, new InstanceInitializationFactory());
// get the calculated area
IAnswerData areaResult = formDef.getMainInstance().getRoot().getChildAt(1).getValue();
assertTrue((int) Math.rint((Double) areaResult.getValue()) == 151452);
}
use of org.javarosa.core.model.FormDef in project javarosa by opendatakit.
the class XFormParserTest method serializeAndRestoreMetaNamespaceFormInstance.
@Test
public void serializeAndRestoreMetaNamespaceFormInstance() throws IOException {
// Given
ParseResult parseResult = parse(r("meta-namespace-form.xml"));
assertEquals(parseResult.formDef.getTitle(), "Namespace for Metadata");
assertNoParseErrors(parseResult);
FormDef formDef = parseResult.formDef;
TreeElement audit = findDepthFirst(formDef.getInstance().getRoot(), AUDIT_NODE);
TreeElement audit2 = findDepthFirst(formDef.getInstance().getRoot(), AUDIT_2_NODE);
TreeElement audit3 = findDepthFirst(formDef.getInstance().getRoot(), AUDIT_3_NODE);
assertNotNull(audit);
assertEquals(ORX_2_NAMESPACE_PREFIX, audit.getNamespacePrefix());
assertEquals(ORX_2_NAMESPACE_URI, audit.getNamespace());
assertNotNull(audit2);
assertEquals(ORX_2_NAMESPACE_PREFIX, audit2.getNamespacePrefix());
assertEquals(ORX_2_NAMESPACE_URI, audit2.getNamespace());
assertNotNull(audit3);
assertEquals(null, audit3.getNamespacePrefix());
assertEquals(null, audit3.getNamespace());
audit.setAnswer(new StringData(AUDIT_ANSWER));
audit2.setAnswer(new StringData(AUDIT_2_ANSWER));
audit3.setAnswer(new StringData(AUDIT_3_ANSWER));
// When
// serialize the form instance
XFormSerializingVisitor serializer = new XFormSerializingVisitor();
ByteArrayPayload xml = (ByteArrayPayload) serializer.createSerializedPayload(formDef.getInstance());
copy(xml.getPayloadStream(), FORM_INSTANCE_XML_FILE_NAME, REPLACE_EXISTING);
// restore (deserialize) the form instance
byte[] formInstanceBytes = readAllBytes(FORM_INSTANCE_XML_FILE_NAME);
FormInstance formInstance = XFormParser.restoreDataModel(formInstanceBytes, null);
// Then
audit = findDepthFirst(formInstance.getRoot(), AUDIT_NODE);
audit2 = findDepthFirst(formInstance.getRoot(), AUDIT_2_NODE);
audit3 = findDepthFirst(formInstance.getRoot(), AUDIT_3_NODE);
assertNotNull(audit);
assertEquals(ORX_2_NAMESPACE_PREFIX, audit.getNamespacePrefix());
assertEquals(ORX_2_NAMESPACE_URI, audit.getNamespace());
assertEquals(AUDIT_ANSWER, audit.getValue().getValue());
assertNotNull(audit2);
assertEquals(ORX_2_NAMESPACE_PREFIX, audit2.getNamespacePrefix());
assertEquals(ORX_2_NAMESPACE_URI, audit2.getNamespace());
assertEquals(AUDIT_2_ANSWER, audit2.getValue().getValue());
assertNotNull(audit3);
assertEquals(null, audit3.getNamespacePrefix());
assertEquals(null, audit3.getNamespace());
assertEquals(AUDIT_3_ANSWER, audit3.getValue().getValue());
}
use of org.javarosa.core.model.FormDef in project javarosa by opendatakit.
the class XFormParserTest method parsesSecondaryInstanceForm.
@Test
public void parsesSecondaryInstanceForm() throws IOException, XPathSyntaxException {
FormDef formDef = parse(SECONDARY_INSTANCE_XML).formDef;
assertEquals("Form with secondary instance", formDef.getTitle());
}
use of org.javarosa.core.model.FormDef in project javarosa by opendatakit.
the class XFormParserTest method parsesExternalSecondaryInstanceForm.
@Test
public void parsesExternalSecondaryInstanceForm() throws IOException, XPathSyntaxException {
FormDef formDef = parse(EXTERNAL_SECONDARY_INSTANCE_XML).formDef;
assertEquals("Form with external secondary instance", formDef.getTitle());
TreeReference treeReference = ((XPathPathExpr) parseXPath("instance('towns')/data_set")).getReference();
EvaluationContext evaluationContext = formDef.getEvaluationContext();
List<TreeReference> treeReferences = evaluationContext.expandReference(treeReference);
assertEquals(1, treeReferences.size());
DataInstance townInstance = formDef.getNonMainInstance("towns");
AbstractTreeElement tiRoot = townInstance.getRoot();
assertEquals("towndata", tiRoot.getName());
assertEquals(1, tiRoot.getNumChildren());
AbstractTreeElement dataSetChild = tiRoot.getChild("data_set", 0);
assertEquals("us_east", dataSetChild.getValue().getDisplayText());
}
Aggregations