use of eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentConfiguration in project hale by halestudio.
the class CustomTypeContentConfigurationType method fromDOM.
@Override
public CustomTypeContentConfiguration fromDOM(Element fragment, Void context) {
Value val = DOMValueUtil.fromTag(fragment);
ValueList list = val.as(ValueList.class);
List<CustomTypeContentAssociation> resultList = new ArrayList<>();
if (list != null) {
for (Value value : list) {
CustomTypeContentAssociation assoc = value.as(CustomTypeContentAssociation.class);
if (assoc != null) {
resultList.add(assoc);
}
}
}
return new CustomTypeContentConfiguration(resultList);
}
use of eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentConfiguration in project hale by halestudio.
the class CustomTypeContentConfigurationTypeTest method testBothWays.
/**
* Test converting to DOM and back again.
*/
@Test
public void testBothWays() {
QName name1 = new QName("http://www.opengis.net/om/2.0", "OM_ObservationType");
QName name2 = new QName("http://www.opengis.net/om/2.0", "result");
List<QName> property = new ArrayList<>();
property.add(name1);
property.add(name2);
QName elem1 = new QName("http://www.opengis.net/swe/2.0", "Quantity");
List<QName> elements = new ArrayList<QName>();
elements.add(elem1);
CustomTypeContent content = new CustomTypeContent(CustomTypeContentMode.elements, elements);
CustomTypeContentAssociation assoc = new CustomTypeContentAssociation(property, content);
List<CustomTypeContentAssociation> associations = new ArrayList<>();
associations.add(assoc);
CustomTypeContentConfiguration config = new CustomTypeContentConfiguration(associations);
// convert to DOM
Element fragment = HaleIO.getComplexElement(config);
// System.out.println(XmlUtil.serialize(fragment));
// convert back
CustomTypeContentConfiguration conv = HaleIO.getComplexValue(fragment, CustomTypeContentConfiguration.class, null);
assertEquals(1, conv.getAssociations().size());
List<QName> cproperty = conv.getAssociations().get(0).getProperty();
assertNotNull(cproperty);
assertEquals(2, cproperty.size());
assertEquals(name1, cproperty.get(0));
assertEquals(name2, cproperty.get(1));
CustomTypeContent ccontent = conv.getAssociations().get(0).getConfig();
assertEquals("Mode does not match", CustomTypeContentMode.elements, ccontent.getMode());
assertEquals(1, ccontent.getElements().size());
assertEquals(elem1, ccontent.getElements().get(0));
}
use of eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentConfiguration in project hale by halestudio.
the class CustomTypeContentConfigurationTypeTest method testLoad.
/**
* Test loading from XML.
*
* @throws Exception if an error occurs
*/
@Test
public void testLoad() throws Exception {
QName name1 = new QName("http://www.opengis.net/om/2.0", "OM_ObservationType");
QName name2 = new QName("http://www.opengis.net/om/2.0", "result");
QName elem1 = new QName("http://www.opengis.net/swe/2.0", "Quantity");
// load as DOM
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
InputStream inputStream = getClass().getResourceAsStream("configSample.xml");
Element root;
try {
root = builder.parse(inputStream).getDocumentElement();
} finally {
inputStream.close();
}
// convert back
CustomTypeContentConfiguration conv = HaleIO.getComplexValue(root, CustomTypeContentConfiguration.class, null);
assertEquals(1, conv.getAssociations().size());
List<QName> cproperty = conv.getAssociations().get(0).getProperty();
assertNotNull(cproperty);
assertEquals(2, cproperty.size());
assertEquals(name1, cproperty.get(0));
assertEquals(name2, cproperty.get(1));
CustomTypeContent ccontent = conv.getAssociations().get(0).getConfig();
assertEquals("Mode does not match", CustomTypeContentMode.elements, ccontent.getMode());
assertEquals(1, ccontent.getElements().size());
assertEquals(elem1, ccontent.getElements().get(0));
}
Aggregations