protected static ElementNode addElement(ElementNode parent, String localName, String ns) { final ElementNode eNode = new ElementNode(parent, localName, ns); if(parent != null) { parent.addChild(eNode); } return eNode; }
private ElementNode createNodeWithAttributesAndNs(XMLStreamReader reader, ElementNode parent) { String namespace = reader.getNamespaceURI() != null && reader.getNamespaceURI().length() > 0 ? reader.getNamespaceURI() : namespaceURI; ElementNode childNode = new ElementNode(parent, reader.getLocalName(), namespace); int count = reader.getAttributeCount(); for (int i = 0 ; i < count ; i++) { String name = reader.getAttributeLocalName(i); String value = reader.getAttributeValue(i); childNode.addAttribute(name, createAttributeValue(value)); } return childNode; }
public String getAttributeValue(String name, String defaultValue) { String s = getAttributeValue(name); if (s == null) { return defaultValue; } return s; }
public ElementNode(final ElementNode parent, final String name) { this(parent, name, parent.getNamespace()); }
switch (type) { case END_ELEMENT: currentNode = currentNode.getParent(); String name = reader.getLocalName(); case START_ELEMENT: ElementNode childNode = createNodeWithAttributesAndNs(reader, currentNode); currentNode.addChild(childNode); currentNode = childNode; break; case COMMENT: String comment = reader.getText(); currentNode.addChild(new CommentNode(comment)); break; case CDATA: currentNode.addChild(new CDataNode(reader.getText())); break; case CHARACTERS: if (!reader.isWhiteSpace()) { currentNode.addChild(new TextNode(reader.getText())); ProcessingInstructionNode node = parseProcessingInstruction(reader, currentNode); if (node != null) { currentNode.addChild(node);
static void writeFeaturePackConfig(ElementNode fp, FeaturePackLocation location, FeaturePackConfig featurePack, String origin) { final String ns = fp.getNamespace(); addAttribute(fp, Attribute.LOCATION, location.toString()); if(origin != null) { addElement(fp, Element.ORIGIN.getLocalName(), ns).addChild(new TextNode(origin));
@Override protected ElementNode toElement(FeaturePackSet<?> provisionedState) throws XMLStreamException { final ElementNode pkg = addElement(null, Element.INSTALLATION); if (provisionedState.hasFeaturePacks()) { for(FeaturePack<?> fp : provisionedState.getFeaturePacks()) { final ElementNode fpElement = addElement(pkg, Element.FEATURE_PACK); writeFeaturePack(fpElement, fp); } } if(provisionedState.hasConfigs()) { for(ProvisionedConfig config : provisionedState.getConfigs()) { pkg.addChild(ProvisionedConfigXmlWriter.getInstance().toElement(config, Element.CONFIG.getNamespace())); } } return pkg; }
protected static void addAttribute(ElementNode e, String name, String value) { e.addAttribute(name, new AttributeValue(value)); }
public void write(T t, Writer stream) throws XMLStreamException, IOException { final ElementNode root = toElement(t); try (FormattingXmlStreamWriter writer = new FormattingXmlStreamWriter(XMLOutputFactory.newInstance() .createXMLStreamWriter(stream))) { writer.writeStartDocument(); root.marshall(writer); writer.writeEndDocument(); } }
@Override public void marshall(XMLStreamWriter writer) throws XMLStreamException { boolean empty = isEmpty();
static void writePackageDeps(PackageDepsSpec pkgDeps, ElementNode deps) { if(pkgDeps.hasLocalPackageDeps()) { for(PackageDependencySpec depSpec : pkgDeps.getLocalPackageDeps()) { writePackageDependency(deps, depSpec, deps.getNamespace()); } } if(pkgDeps.hasExternalPackageDeps()) { for(String origin : pkgDeps.getPackageOrigins()) { writeOrigin(deps, origin, pkgDeps.getExternalPackageDeps(origin), deps.getNamespace()); } } }
parent.addChild(ConfigXmlWriter.getInstance().toElement(config, ns));
@Override public void nextFeaturePack(FPID fpid) { fpElement = addElement(parent, Element.FEATURE_PACK.getLocalName(), parent.getNamespace()); addAttribute(fpElement, Attribute.LOCATION, fpid.toString()); }
static void writeUniverseSpecs(FeaturePackDepsConfig fpDeps, final ElementNode parent) { ElementNode universesEl = null; UniverseSpec universeSpec = fpDeps.getDefaultUniverse(); if(universeSpec != null) { universesEl = addElement(parent, Element.UNIVERSES.getLocalName(), parent.getNamespace()); writeUniverseConfig(universesEl, null, universeSpec.getFactory(), universeSpec.getLocation()); } if(fpDeps.hasUniverseNamedSpecs()) { if(universesEl == null) { universesEl = addElement(parent, Element.UNIVERSES.getLocalName(), parent.getNamespace()); } for(Map.Entry<String, UniverseSpec> universe : fpDeps.getUniverseNamedSpecs().entrySet()) { writeUniverseConfig(universesEl, universe.getKey(), universe.getValue().getFactory(), universe.getValue().getLocation()); } } }
private static void writeUniverseConfig(ElementNode universesEl, String name, String factory, String location) { final ElementNode universeEl = addElement(universesEl, Element.UNIVERSE.getLocalName(), universesEl.getNamespace()); if(name != null) { addAttribute(universeEl, Attribute.NAME, name); } addAttribute(universeEl, Attribute.FACTORY, factory); if(location != null) { addAttribute(universeEl, Attribute.LOCATION, location); } }
@Override public void nextSpec(ResolvedFeatureSpec spec) { specElement = addElement(fpElement, Element.SPEC.getLocalName(), parent.getNamespace()); addAttribute(specElement, Attribute.NAME, spec.getId().getName()); }
@Override public void nextFeature(ProvisionedFeature feature) throws ProvisioningException { final ElementNode featureE = addElement(specElement, Element.FEATURE.getLocalName(), parent.getNamespace()); if(feature.hasId()) { addAttribute(featureE, Attribute.ID, feature.getId().toString()); } if(feature.hasParams()) { for(String param : feature.getParamNames()) { final ElementNode paramE = addElement(featureE, Element.PARAM.getLocalName(), parent.getNamespace()); addAttribute(paramE, Attribute.NAME, param); addAttribute(paramE, Attribute.VALUE, feature.getConfigParam(param)); } } } }