/** Returns a list of bindings from the extension elements with the given name. */ @Override public <T> List<Binding<T>> readBindings(String localPart) { if (currentXml==null) { return null; } List<Binding<T>> bindings = new ArrayList<>(); for (XmlElement element: currentXml.removeElements(EFFEKTIF_URI, localPart)) { Binding binding = new Binding(); String value = element.getAttribute(EFFEKTIF_URI, "value"); String typeName = element.getAttribute(EFFEKTIF_URI, "type"); startElement(element); XmlElement metadataElement = readElementEffektif("metadata"); Map<String, Object> metadata = null; if (metadataElement != null) { startElement(metadataElement); metadata = readSimpleProperties(); endElement(); } endElement(); DataType type = convertType(typeName); binding.setValue(parseText(value, (Class<Object>) type.getValueType())); binding.setExpression(element.getAttribute(EFFEKTIF_URI, "expression")); binding.setMetadata(metadata); bindings.add(binding); } return bindings; }
private <T> Binding<T> readBindingFromCurrentElement() { if (currentXml != null) { Binding binding = new Binding(); String value = currentXml.getAttribute(EFFEKTIF_URI, "value"); String typeName = currentXml.getAttribute(EFFEKTIF_URI, "type"); XmlElement metadataElement = readElementEffektif("metadata"); Map<String, Object> metadata = null; if (metadataElement != null) { startElement(metadataElement); metadata = readSimpleProperties(); endElement(); } DataType type = convertType(typeName); binding.setValue(parseText(value, (Class<Object>) type.getValueType())); binding.setExpression(currentXml.getAttribute(EFFEKTIF_URI, "expression")); binding.setMetadata(metadata); return binding; } return null; }