Search in sources :

Example 1 with CustomTypeContentConfiguration

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);
}
Also used : CustomTypeContentAssociation(eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentAssociation) CustomTypeContentConfiguration(eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentConfiguration) ValueList(eu.esdihumboldt.hale.common.core.io.ValueList) Value(eu.esdihumboldt.hale.common.core.io.Value) ArrayList(java.util.ArrayList)

Example 2 with CustomTypeContentConfiguration

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));
}
Also used : CustomTypeContentAssociation(eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentAssociation) CustomTypeContentConfiguration(eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentConfiguration) CustomTypeContent(eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContent) QName(javax.xml.namespace.QName) Element(org.w3c.dom.Element) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 3 with CustomTypeContentConfiguration

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));
}
Also used : CustomTypeContentConfiguration(eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentConfiguration) DocumentBuilderFactory(javax.xml.parsers.DocumentBuilderFactory) DocumentBuilder(javax.xml.parsers.DocumentBuilder) CustomTypeContent(eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContent) QName(javax.xml.namespace.QName) InputStream(java.io.InputStream) Element(org.w3c.dom.Element) Test(org.junit.Test)

Aggregations

CustomTypeContentConfiguration (eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentConfiguration)3 CustomTypeContent (eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContent)2 CustomTypeContentAssociation (eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentAssociation)2 ArrayList (java.util.ArrayList)2 QName (javax.xml.namespace.QName)2 Test (org.junit.Test)2 Element (org.w3c.dom.Element)2 Value (eu.esdihumboldt.hale.common.core.io.Value)1 ValueList (eu.esdihumboldt.hale.common.core.io.ValueList)1 InputStream (java.io.InputStream)1 DocumentBuilder (javax.xml.parsers.DocumentBuilder)1 DocumentBuilderFactory (javax.xml.parsers.DocumentBuilderFactory)1