public List<DataProperty> _parseXMLProperties(NodeList nodes, boolean update) throws Exception { List<DataProperty> result = new ArrayList<DataProperty>(); for (int x = 0; x < nodes.getLength(); x++) { Node node = nodes.item(x); if (node.getNodeName().equals("dataproperty")) { String idDataProperty = StringEscapeUtils.unescapeXml(node.getAttributes().getNamedItem("id").getNodeValue()); DataProperty property = getPropertyById(idDataProperty); if (property == null) { if (update) continue; // Be aware of deleted properties. else property = new DefaultDataProperty(idDataProperty); } result.add(property); NodeList dataProperties = node.getChildNodes(); for (int y = 0; y < dataProperties.getLength(); y++) { Node dataProperty = dataProperties.item(y); if (dataProperty.getNodeName().equals("domain")) { Domain domain = (Domain) Class.forName(StringEscapeUtils.unescapeXml(dataProperty.getFirstChild().getNodeValue())).newInstance(); if (dataProperty.getAttributes().getNamedItem("convertedFromNumeric") != null) ((LabelDomain) domain).setConvertedFromNumeric(true); property.setDomain(domain); } if (dataProperty.getNodeName().equals("name")) { String lang = dataProperty.getAttributes().getNamedItem("language").getNodeValue(); String desc = StringEscapeUtils.unescapeXml(dataProperty.getFirstChild().getNodeValue()); property.setName(desc, new Locale(lang)); } } } } return result; }
public DataProperty createProperty(int index) { DataProperty prop = new DefaultDataProperty(); prop.setPropertyId(columnIds[index]); prop.setDomain(createDomain(types[index])); prop.setName(columnIds[index], Locale.ENGLISH); return prop; }