Search in sources :

Example 1 with CustomTypeContentAssociation

use of eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentAssociation in project hale by halestudio.

the class CustomTypeContentAssociationTypeTest method testBothWays.

/**
 * Test converting to DOM and back again.
 */
@Test
public void testBothWays() {
    QName name1 = new QName("typespace", "some type");
    QName name2 = new QName("a1");
    QName name3 = new QName("b1");
    List<QName> property = new ArrayList<>();
    property.add(name1);
    property.add(name2);
    property.add(name3);
    QName elem1 = new QName("mimimi");
    QName elem2 = new QName("some namespace", "some name");
    List<QName> elements = new ArrayList<QName>();
    elements.add(elem1);
    elements.add(elem2);
    CustomTypeContent content = new CustomTypeContent(CustomTypeContentMode.elements, elements);
    CustomTypeContentAssociation assoc = new CustomTypeContentAssociation(property, content);
    // convert to DOM
    Element fragment = HaleIO.getComplexElement(assoc);
    // System.out.println(XmlUtil.serialize(fragment));
    // convert back
    CustomTypeContentAssociation conv = HaleIO.getComplexValue(fragment, CustomTypeContentAssociation.class, null);
    assertNotNull(conv.getProperty());
    assertEquals(3, conv.getProperty().size());
    assertEquals(name1, conv.getProperty().get(0));
    assertEquals(name2, conv.getProperty().get(1));
    assertEquals(name3, conv.getProperty().get(2));
    assertEquals("Mode does not match", CustomTypeContentMode.elements, conv.getConfig().getMode());
    assertEquals(2, conv.getConfig().getElements().size());
    assertEquals(elem1, conv.getConfig().getElements().get(0));
    assertEquals(elem2, conv.getConfig().getElements().get(1));
}
Also used : CustomTypeContentAssociation(eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentAssociation) 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 2 with CustomTypeContentAssociation

use of eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentAssociation 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 CustomTypeContentAssociation

use of eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentAssociation 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 4 with CustomTypeContentAssociation

use of eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentAssociation in project hale by halestudio.

the class CustomTypeContentConfigurationType method toDOM.

@Override
public Element toDOM(CustomTypeContentConfiguration value) {
    ValueList list = new ValueList();
    for (CustomTypeContentAssociation assoc : value.getAssociations()) {
        list.add(Value.complex(assoc));
    }
    Map<String, String> prefixes = new HashMap<>();
    prefixes.put("xsd", XMLSchemaIO.NS_HALE_XSD);
    NSDOMBuilder builder;
    try {
        builder = NSDOMBuilder.newBuilder(prefixes);
        Element element = DOMValueUtil.valueTag(builder, "xsd:typeContentConfig", Value.complex(list));
        return element;
    } catch (Exception e) {
        throw new IllegalStateException("Error creating validator DOM representation", e);
    }
}
Also used : CustomTypeContentAssociation(eu.esdihumboldt.hale.io.xsd.anytype.CustomTypeContentAssociation) NSDOMBuilder(eu.esdihumboldt.util.groovy.xml.NSDOMBuilder) ValueList(eu.esdihumboldt.hale.common.core.io.ValueList) HashMap(java.util.HashMap) Element(org.w3c.dom.Element)

Aggregations

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