Example usage for org.w3c.dom Element getNodeName

List of usage examples for org.w3c.dom Element getNodeName

Introduction

In this page you can find the example usage for org.w3c.dom Element getNodeName.

Prototype

public String getNodeName();

Source Link

Document

The name of this node, depending on its type; see the table above.

Usage

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;

}