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