List of usage examples for org.w3c.dom Element getNodeName
public String getNodeName();
From source file:com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.java
/** * Build a map of ResultConfig objects from below a given XML element. *//*from ww w. j av a 2 s .com*/ protected List<ExceptionMappingConfig> buildExceptionMappings(Element element, PackageConfig.Builder packageContext) { NodeList exceptionMappingEls = element.getElementsByTagName("exception-mapping"); List<ExceptionMappingConfig> exceptionMappings = new ArrayList<ExceptionMappingConfig>(); for (int i = 0; i < exceptionMappingEls.getLength(); i++) { Element ehElement = (Element) exceptionMappingEls.item(i); if (ehElement.getParentNode().equals(element) || ehElement.getParentNode().getNodeName().equals(element.getNodeName())) { String emName = ehElement.getAttribute("name"); String exceptionClassName = ehElement.getAttribute("exception"); String exceptionResult = ehElement.getAttribute("result"); Map<String, String> params = XmlHelper.getParams(ehElement); if (StringUtils.isEmpty(emName)) { emName = exceptionResult; } ExceptionMappingConfig ehConfig = new ExceptionMappingConfig.Builder(emName, exceptionClassName, exceptionResult).addParams(params).location(DomHelper.getLocationObject(ehElement)).build(); exceptionMappings.add(ehConfig); } } return exceptionMappings; }
From source file:com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.java
/** * Build a map of ResultConfig objects from below a given XML element. *//*from w w w . ja v a2 s . c o m*/ protected Map<String, ResultConfig> buildResults(Element element, PackageConfig.Builder packageContext) { NodeList resultEls = element.getElementsByTagName("result"); Map<String, ResultConfig> results = new LinkedHashMap<String, ResultConfig>(); for (int i = 0; i < resultEls.getLength(); i++) { Element resultElement = (Element) resultEls.item(i); if (resultElement.getParentNode().equals(element) || resultElement.getParentNode().getNodeName().equals(element.getNodeName())) { String resultName = resultElement.getAttribute("name"); String resultType = resultElement.getAttribute("type"); // if you don't specify a name on <result/>, it defaults to "success" if (StringUtils.isEmpty(resultName)) { resultName = Action.SUCCESS; } // there is no result type, so let's inherit from the parent package if (StringUtils.isEmpty(resultType)) { resultType = packageContext.getFullDefaultResultType(); // now check if there is a result type now if (StringUtils.isEmpty(resultType)) { // uh-oh, we have a problem throw new ConfigurationException( "No result type specified for result named '" + resultName + "', perhaps the parent package does not specify the result type?", resultElement); } } ResultTypeConfig config = packageContext.getResultType(resultType); if (config == null) { throw new ConfigurationException( "There is no result type defined for type '" + resultType + "' mapped with name '" + resultName + "'." + " Did you mean '" + guessResultType(resultType) + "'?", resultElement); } String resultClass = config.getClazz(); // invalid result type specified in result definition if (resultClass == null) { throw new ConfigurationException("Result type '" + resultType + "' is invalid"); } Map<String, String> resultParams = XmlHelper.getParams(resultElement); if (resultParams.size() == 0) // maybe we just have a body - therefore a default parameter { // if <result ...>something</result> then we add a parameter of 'something' as this is the most used result param if (resultElement.getChildNodes().getLength() >= 1) { resultParams = new LinkedHashMap<String, String>(); String paramName = config.getDefaultResultParam(); if (paramName != null) { StringBuilder paramValue = new StringBuilder(); for (int j = 0; j < resultElement.getChildNodes().getLength(); j++) { if (resultElement.getChildNodes().item(j).getNodeType() == Node.TEXT_NODE) { String val = resultElement.getChildNodes().item(j).getNodeValue(); if (val != null) { paramValue.append(val); } } } String val = paramValue.toString().trim(); if (val.length() > 0) { resultParams.put(paramName, val); } } else { if (LOG.isWarnEnabled()) { LOG.warn("no default parameter defined for result of type " + config.getName()); } } } } // create new param map, so that the result param can override the config param Map<String, String> params = new LinkedHashMap<String, String>(); Map<String, String> configParams = config.getParams(); if (configParams != null) { params.putAll(configParams); } params.putAll(resultParams); ResultConfig resultConfig = new ResultConfig.Builder(resultName, resultClass).addParams(params) .location(DomHelper.getLocationObject(element)).build(); results.put(resultConfig.getName(), resultConfig); } } return results; }
From source file:com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.java
protected List<InterceptorMapping> buildInterceptorList(Element element, PackageConfig.Builder context) throws ConfigurationException { List<InterceptorMapping> interceptorList = new ArrayList<InterceptorMapping>(); NodeList interceptorRefList = element.getElementsByTagName("interceptor-ref"); for (int i = 0; i < interceptorRefList.getLength(); i++) { Element interceptorRefElement = (Element) interceptorRefList.item(i); if (interceptorRefElement.getParentNode().equals(element) || interceptorRefElement.getParentNode().getNodeName().equals(element.getNodeName())) { List<InterceptorMapping> interceptors = lookupInterceptorReference(context, interceptorRefElement); interceptorList.addAll(interceptors); }/* w ww. j a v a 2s . co m*/ } return interceptorList; }
From source file:org.gvnix.web.menu.roo.addon.MenuEntryOperationsImpl.java
/** * Returns the Root element of the menu.xml file * /*from w w w. j ava2 s . c o m*/ * @return */ private Element getMenuRootElement() { Document document = getMenuDocument(); // make the root element of the menu the one with the menu identifier // allowing for different decorations of menu Element rootElement = XmlUtils.findFirstElement(ID_MENU_EXP, (Element) document.getFirstChild()); if (!rootElement.getNodeName().equals(GVNIX_MENU)) { throw new IllegalArgumentException(INVALID_XML); } return rootElement; }
From source file:org.gvnix.web.menu.roo.addon.MenuEntryOperationsImpl.java
/** {@inheritDoc} */ public void moveInto(JavaSymbolName pageId, JavaSymbolName intoId) { Document document = getMenuDocument(); // make the root element of the menu the one with the menu identifier // allowing for different decorations of menu Element rootElement = XmlUtils.findFirstElement(ID_MENU_EXP, (Element) document.getFirstChild()); if (!rootElement.getNodeName().equals(GVNIX_MENU)) { throw new IllegalArgumentException(INVALID_XML); }//from w ww. j ava 2 s. c om // check for existence of menu category by looking for the identifier // provided Element pageElement = XmlUtils.findFirstElement(ID_EXP.concat(pageId.getSymbolName()).concat("']"), rootElement); // exit if menu entry doesn't exist Validate.notNull(pageElement, PAGE.concat(pageId.getSymbolName()).concat(NOT_FOUND)); Element intoElement = XmlUtils.findFirstElement(ID_EXP.concat(intoId.getSymbolName()).concat("']"), rootElement); // exit if menu entry doesn't exist Validate.notNull(intoElement, PAGE.concat(intoId.getSymbolName()).concat(NOT_FOUND)); // parent element where remove menu entry element Element parent = (Element) pageElement.getParentNode(); parent.removeChild(pageElement); // insert intoElement.appendChild(pageElement); writeXMLConfigIfNeeded(document); }
From source file:org.gvnix.web.menu.roo.addon.MenuEntryOperationsImpl.java
/** {@inheritDoc} */ public void moveBefore(JavaSymbolName pageId, JavaSymbolName beforeId) { Document document = getMenuDocument(); // make the root element of the menu the one with the menu identifier // allowing for different decorations of menu Element rootElement = XmlUtils.findFirstElement(ID_MENU_EXP, (Element) document.getFirstChild()); if (!rootElement.getNodeName().equals(GVNIX_MENU)) { throw new IllegalArgumentException(INVALID_XML); }/*from ww w . j a v a2 s. c om*/ // check for existence of menu category by looking for the identifier // provided Element pageElement = XmlUtils.findFirstElement(ID_EXP.concat(pageId.getSymbolName()).concat("']"), rootElement); // exit if menu entry doesn't exist Validate.notNull(pageElement, PAGE.concat(pageId.getSymbolName()).concat(NOT_FOUND)); Element beforeElement = XmlUtils.findFirstElement(ID_EXP.concat(beforeId.getSymbolName()).concat("']"), rootElement); // exit if menu entry doesn't exist Validate.notNull(beforeElement, PAGE.concat(beforeId.getSymbolName()).concat(NOT_FOUND)); // page parent element where remove menu entry element Element pageParentEl = (Element) pageElement.getParentNode(); pageParentEl.removeChild(pageElement); // before parent element where execute insert before Element beforeParentEl = (Element) beforeElement.getParentNode(); beforeParentEl.insertBefore(pageElement, beforeElement); writeXMLConfigIfNeeded(document); }
From source file:com.bluexml.xforms.controller.mapping.MappingToolAlfrescoToForms.java
/** * Adds a DOM node for the implicit file content upload field, in case the form is content * enabled. If the instance refers to a live repository object, the content info is fetched. * /*from w ww .j a v a 2 s .c o m*/ * @param formType * @param formInstance * @param formElement * @param alfrescoId * the full node id */ private void appendFieldForContent(AlfrescoTransaction transaction, FormType formType, Document formInstance, Element formElement, String alfrescoId) { if (isContentEnabled(formType)) { Element nodeContentElt = formInstance.createElement(MsgId.INT_INSTANCE_SIDE_NODE_CONTENT.getText()); nodeContentElt.setAttribute("file", ""); nodeContentElt.setAttribute("type", ""); if (alfrescoId != null) { String contentInfo = controller.getNodeContentInfo(transaction, alfrescoId); nodeContentElt.setTextContent(contentInfo); } formElement.appendChild(nodeContentElt); if (loggertrace.isTraceEnabled()) { logger.debug(" appended content field '" + nodeContentElt.getNodeName() + "'"); } } }
From source file:org.gvnix.web.menu.roo.addon.MenuEntryOperationsImpl.java
/** * {@inheritDoc}/*from ww w . j a v a 2 s .c o m*/ * <p> * Update the entry ID could change entry type because category entry starts * with 'c_' prefix, item entry starts with 'i_' prefix, so to change a * category entry to item entry you have to set a new ID that starts with * 'i_'. */ public void updateEntry(JavaSymbolName pageId, JavaSymbolName nid, String label, String messageCode, String destination, String roles, Boolean hidden, boolean writeProps) { Document document = getMenuDocument(); // Properties to be writen Map<String, String> properties = new HashMap<String, String>(); // make the root element of the menu the one with the menu identifier // allowing for different decorations of menu Element rootElement = XmlUtils.findFirstElement(ID_MENU_EXP, (Element) document.getFirstChild()); if (!rootElement.getNodeName().equals(GVNIX_MENU)) { throw new IllegalArgumentException(INVALID_XML); } // check for existence of menu category by looking for the identifier // provided Element pageElement = XmlUtils.findFirstElement(ID_EXP.concat(pageId.getSymbolName()).concat("']"), rootElement); // exit if menu entry doesn't exist Validate.notNull(pageElement, "Menu entry '".concat(pageId.getSymbolName()).concat(NOT_FOUND)); if (nid != null) { pageElement.setAttribute("id", nid.getSymbolName()); // TODO: if Element has children, children IDs should be // recalculated too // TODO: label code should change too (as addMenuItem does) } if (StringUtils.isNotBlank(label)) { String itemLabelCode = pageElement.getAttribute(LABEL_CODE); properties.put(itemLabelCode, label); } if (writeProps) { propFileOperations.addProperties(LogicalPath.getInstance(Path.SRC_MAIN_WEBAPP, ""), "/WEB-INF/i18n/application.properties", properties, true, true); } if (StringUtils.isNotBlank(messageCode)) { pageElement.setAttribute(MESSAGE_CODE, messageCode); } if (StringUtils.isNotBlank(destination)) { pageElement.setAttribute(URL, destination); } if (StringUtils.isNotBlank(roles)) { pageElement.setAttribute("roles", roles); } if (hidden != null) { pageElement.setAttribute(HIDDEN, hidden.toString()); } writeXMLConfigIfNeeded(document); }
From source file:com.twinsoft.convertigo.engine.translators.WebServiceTranslator.java
private void addElement(SOAPMessage responseMessage, SOAPEnvelope soapEnvelope, Context context, Element elementToAdd, SOAPElement soapElement) throws SOAPException { SOAPElement soapMethodResponseElement = (SOAPElement) soapEnvelope.getBody().getFirstChild(); String targetNamespace = soapMethodResponseElement.getNamespaceURI(); String prefix = soapMethodResponseElement.getPrefix(); String nodeType = elementToAdd.getAttribute("type"); SOAPElement childSoapElement = soapElement; boolean elementAdded = true; boolean bTable = false; if (nodeType.equals("table")) { bTable = true;// w w w . ja v a 2 s . c om /*childSoapElement = soapElement.addChildElement("ArrayOf" + context.transactionName + "_" + tableName + "_Row", ""); if (!context.httpServletRequest.getServletPath().endsWith(".wsl")) { childSoapElement.addAttribute(soapEnvelope.createName("xsi:type"), "soapenc:Array"); }*/ childSoapElement = soapElement.addChildElement(elementToAdd.getNodeName()); } else if (nodeType.equals("row")) { /*String elementType = context.transactionName + "_" + tableName + "_Row"; childSoapElement = soapElement.addChildElement(elementType, "");*/ childSoapElement = soapElement.addChildElement(elementToAdd.getNodeName()); } else if (nodeType.equals("attachment")) { childSoapElement = soapElement.addChildElement(elementToAdd.getNodeName()); if (context.requestedObject instanceof AbstractHttpTransaction) { AttachmentDetails attachment = AttachmentManager.getAttachment(elementToAdd); if (attachment != null) { byte[] raw = attachment.getData(); if (raw != null) childSoapElement.addTextNode(Base64.encodeBase64String(raw)); } /* DON'T WORK YET *\ AttachmentPart ap = responseMessage.createAttachmentPart(new ByteArrayInputStream(raw), elementToAdd.getAttribute("content-type")); ap.setContentId(key); ap.setContentLocation(elementToAdd.getAttribute("url")); responseMessage.addAttachmentPart(ap); \* DON'T WORK YET */ } } else { String elementNodeName = elementToAdd.getNodeName(); String elementNodeNsUri = elementToAdd.getNamespaceURI(); String elementNodePrefix = getPrefix(context.projectName, elementNodeNsUri); XmlSchemaElement xmlSchemaElement = getXmlSchemaElementByName(context.projectName, elementNodeName); boolean isGlobal = xmlSchemaElement != null; if (isGlobal) { elementNodeNsUri = xmlSchemaElement.getQName().getNamespaceURI(); elementNodePrefix = getPrefix(context.projectName, elementNodeNsUri); } // ignore original SOAP message response elements // if ((elementNodeName.toUpperCase().indexOf("SOAP-ENV:") != -1) || ((elementToAdd.getParentNode().getNodeName().toUpperCase().indexOf("SOAP-ENV:") != -1)) || // (elementNodeName.toUpperCase().indexOf("SOAPENV:") != -1) || ((elementToAdd.getParentNode().getNodeName().toUpperCase().indexOf("SOAPENV:") != -1)) || // (elementNodeName.toUpperCase().indexOf("NS0:") != -1) || ((elementToAdd.getParentNode().getNodeName().toUpperCase().indexOf("NS0:") != -1))) { // elementAdded = false; // } if ("http://schemas.xmlsoap.org/soap/envelope/".equals(elementToAdd.getNamespaceURI()) || "http://schemas.xmlsoap.org/soap/envelope/" .equals(elementToAdd.getParentNode().getNamespaceURI()) || elementToAdd.getParentNode().getNodeName().toUpperCase().indexOf("NS0:") != -1 || elementNodeName.toUpperCase().indexOf("NS0:") != -1) { elementAdded = false; } else { if (XsdForm.qualified == context.project.getSchemaElementForm() || isGlobal) { if (elementNodePrefix == null) { childSoapElement = soapElement .addChildElement(soapEnvelope.createName(elementNodeName, prefix, targetNamespace)); } else { childSoapElement = soapElement.addChildElement( soapEnvelope.createName(elementNodeName, elementNodePrefix, elementNodeNsUri)); } } else { childSoapElement = soapElement.addChildElement(elementNodeName); } } } if (elementAdded && elementToAdd.hasAttributes()) { addAttributes(responseMessage, soapEnvelope, context, elementToAdd.getAttributes(), childSoapElement); } if (elementToAdd.hasChildNodes()) { NodeList childNodes = elementToAdd.getChildNodes(); int len = childNodes.getLength(); if (bTable) { /*if (!context.httpServletRequest.getServletPath().endsWith(".wsl")) { childSoapElement.addAttribute(soapEnvelope.createName("soapenc:arrayType"), context.projectName+"_ns:" + context.transactionName + "_" + tableName + "_Row[" + (len - 1) + "]"); }*/ } org.w3c.dom.Node node; Element childElement; for (int i = 0; i < len; i++) { node = childNodes.item(i); switch (node.getNodeType()) { case org.w3c.dom.Node.ELEMENT_NODE: childElement = (Element) node; addElement(responseMessage, soapEnvelope, context, childElement, childSoapElement); break; case org.w3c.dom.Node.CDATA_SECTION_NODE: case org.w3c.dom.Node.TEXT_NODE: String text = node.getNodeValue(); text = (text == null) ? "" : text; childSoapElement.addTextNode(text); break; default: break; } } /*org.w3c.dom.Node node; Element childElement; for (int i = 0 ; i < len ; i++) { node = childNodes.item(i); if (node instanceof Element) { childElement = (Element) node; addElement(responseMessage, soapEnvelope, context, childElement, childSoapElement); } else if (node instanceof CDATASection) { Node textNode = XMLUtils.findChildNode(elementToAdd, org.w3c.dom.Node.CDATA_SECTION_NODE); String text = textNode.getNodeValue(); if (text == null) { text = ""; } childSoapElement.addTextNode(text); } else { Node textNode = XMLUtils.findChildNode(elementToAdd, org.w3c.dom.Node.TEXT_NODE); if (textNode != null) { String text = textNode.getNodeValue(); if (text == null) { text = ""; } childSoapElement.addTextNode(text); } } }*/ } }
From source file:edu.uams.clara.webapp.xml.processor.impl.DefaultXmlProcessorImpl.java
private synchronized Element createElementStructureByPath(final Element docRoot, String path) { Document doc = docRoot.getOwnerDocument(); List<String> nodeList = getNodeList(path); logger.trace("nodeList: " + nodeList + " =? "); Assert.isTrue(nodeList.size() > 0); // remove first one, should be docRoot.getNodeName()... nodeList.remove(0);//www . ja v a2 s. c o m // remove last one nodeList.remove(nodeList.size() - 1); Element currentNode = docRoot; int c = 0; for (String n : nodeList) { NodeList cur = currentNode.getElementsByTagName(n); String curName = currentNode.getNodeName(); c = cur.getLength(); if (c > 1) { throw new RuntimeException("illeagl xml structure; find " + c + " elements with name " + n); } if (c == 0) { logger.debug("empty node...; " + n + " doesn't exist under " + curName); Element newN = doc.createElement(n); currentNode.appendChild(newN); currentNode = newN; continue; } currentNode = (Element) cur.item(0); } return currentNode; }