/** * @param element - * @return DParameter * @throws ParameterException - */ public static DParameter decode(Element element) throws ParameterException { String type = element.getAttribute("xsi:type"); type = XMLUtils.getLocalPart(type); DParameter dParameter = null; if ("Float".equals(type)) { dParameter = DFloatCodec.decode(element); } else if ("Date".equals(type)) { dParameter = DDateCodec.decode(element); } else if ("String".equals(type)) { dParameter = DStringCodec.decode(element); } else if ("Integer".equals(type)) { dParameter = DIntegerCodec.decode(element); } else if ("Boolean".equals(type)) { dParameter = DBooleanCodec.decode(element); } else if ("FloatList".equals(type)) { dParameter = DFloatListCodec.decode(element); } else if ("DateList".equals(type)) { dParameter = DDateListCodec.decode(element); } else if ("StringList".equals(type)) { dParameter = DStringListCodec.decode(element); } else if ("IntegerList".equals(type)) { dParameter = DIntegerListCodec.decode(element); } else { throw new ParameterException("Unknown parameter type [" + type + "]"); } dParameter.setName(element.getAttribute("Name")); dParameter.setType(type); return dParameter; } // End Method def.
/** * Decode XML element into DFieldTemplate. * * @param element Element to decode. * @return Decoded element as DFieldTemplate. * @throws DFieldTemplatesException Unable to decode XML element. */ public static DFieldTemplate decode(final org.w3c.dom.Element element) throws DFieldTemplatesException { if (element == null) { throw new DFieldTemplatesException("parameter must not be null [element]"); } final DFieldTemplate dFieldTemplate = new DFieldTemplate(); // resolve custom attributes dFieldTemplate.setName(element.getAttribute("Name")); // resolve custom elements final org.w3c.dom.NodeList nl = element.getChildNodes(); for (int i = 0; i < nl.getLength(); i++) { if (!(nl.item(i) instanceof org.w3c.dom.Element)) { continue; } final org.w3c.dom.Element el = (org.w3c.dom.Element) nl.item(i); if ("Description".equals(el.getLocalName())) { dFieldTemplate.setDescription(el.getTextContent()); } else if ("Selector".equals(el.getLocalName())) { dFieldTemplate.setSelector(DSelectorCodec.decode(el)); } else if ("Term".equals(el.getLocalName())) { try { XMLUtils.removeWhitespaceTextNodes(el); final Plugin plugin = PluginFactory.getPlugin(); dFieldTemplate.setTerm(plugin.getAdvSearchAccess().decodeTerm(el)); } catch (Throwable e) { throw new DFieldTemplatesException(e.getMessage()); } } } return dFieldTemplate; }