Example usage for org.w3c.dom Element getLocalName

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

Introduction

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

Prototype

public String getLocalName();

Source Link

Document

Returns the local part of the qualified name of this node.

Usage

From source file:Main.java

/**
 * Returns the XPath to retrieve targetElement from rootElement. rootElement may be null, in this case the XPath starts with and includes
 * the farthest non-null ancestor of targetElement. If rootElement == targetElement, an empty string
 * is returned. //from   ww w.jav  a2 s.  c  om
 * @param includeElementIndex Indicates if the element indices in the form elementName[n] should
 * be included in the XPath. 
 * @param namespacesMap Maps namespace ids to namespace URIs.
 */
public static String getXPath(Element rootElement, Element targetElement, boolean includeElementIndex,
        Map<String, String> namespacesMap) {
    Stack<Element> elementPath = new Stack<Element>();

    // since we need the mapping the other way round, we invert the map
    Map<String, String> namespaceUriToIdMap = new HashMap<String, String>();
    for (Entry<String, String> entry : namespacesMap.entrySet()) {
        namespaceUriToIdMap.put(entry.getValue(), entry.getKey());
    }

    // recursively find all ancestors of targetElement (up to, not including, rootElement) 
    {
        Element currentElement = targetElement;
        while (currentElement != null && currentElement != rootElement) {
            elementPath.push(currentElement);
            Node parent = currentElement.getParentNode();
            if (parent instanceof Element) {
                currentElement = (Element) currentElement.getParentNode();
            } else {
                currentElement = null;
            }
        }
    }

    // construct XPath
    StringBuilder builder = new StringBuilder();
    while (!elementPath.isEmpty()) {
        Element currentElement = elementPath.pop();
        if (builder.length() > 0) {
            // don't include "/" at the beginning
            builder.append("/");
        }

        if (namespacesMap != null) {
            String namespace = currentElement.getNamespaceURI();
            if (namespace != null) {
                namespace = namespaceUriToIdMap.get(namespace);
                builder.append(namespace);
                builder.append(":");
            }
        }
        builder.append(currentElement.getLocalName());
        if (includeElementIndex) {
            int index = getElementIndex(currentElement);
            builder.append("[");
            builder.append(index);
            builder.append("]");
        }
    }
    return builder.toString();
}

From source file:org.apache.ftpserver.config.spring.ServerBeanDefinitionParser.java

/**
 * Parse listeners elements//ww w.  jav  a  2s .com
 */
@SuppressWarnings("unchecked")
private Map<?, ?> parseListeners(final Element listenersElm, final ParserContext parserContext,
        final BeanDefinitionBuilder builder) {
    ManagedMap listeners = new ManagedMap();

    List<Element> childs = SpringUtil.getChildElements(listenersElm);

    for (Element listenerElm : childs) {
        Object listener = null;
        String ln = listenerElm.getLocalName();
        if ("nio-listener".equals(ln)) {
            listener = parserContext.getDelegate().parseCustomElement(listenerElm, builder.getBeanDefinition());
        } else if ("listener".equals(ln)) {
            listener = SpringUtil.parseSpringChildElement(listenerElm, parserContext, builder);
        } else {
            throw new FtpServerConfigurationException("Unknown listener element " + ln);
        }

        String name = listenerElm.getAttribute("name");

        listeners.put(name, listener);
    }

    return listeners;
}

From source file:bpelg.packaging.ode.util.BgSchemaCollection.java

protected void handleImports(BgSchema schema) throws Exception {
    NodeList children = schema.getRoot().getChildNodes();
    List<Element> imports = new ArrayList<>();
    for (int i = 0; i < children.getLength(); i++) {
        Node child = children.item(i);
        if (child instanceof Element) {
            Element ce = (Element) child;
            if ("http://www.w3.org/2001/XMLSchema".equals(ce.getNamespaceURI())
                    && "import".equals(ce.getLocalName())) {
                imports.add(ce);//from   w  w  w. ja v a2 s. co  m
            }
        }
    }
    for (Element ce : imports) {
        String namespace = ce.getAttribute("namespace");
        if (schemas.get(namespace) == null) {
            String location = ce.getAttribute("schemaLocation");
            if (location != null && !"".equals(location)) {
                read(location, schema.getSourceUri());
            }
        }
        schema.addImport(namespace);
        schema.getRoot().removeChild(ce);
    }
}

From source file:org.apache.ftpserver.config.spring.UserManagerBeanDefinitionParser.java

@Override
protected void doParse(final Element element, final ParserContext parserContext,
        final BeanDefinitionBuilder builder) {

    Class<?> factoryClass;//from   ww  w . j  a  va2  s .c  o  m
    if (element.getLocalName().equals("file-user-manager")) {
        factoryClass = PropertiesUserManagerFactory.class;
    } else {
        factoryClass = DbUserManagerFactory.class;
    }
    BeanDefinitionBuilder factoryBuilder = BeanDefinitionBuilder.genericBeanDefinition(factoryClass);

    // common for both user managers
    if (StringUtils.hasText(element.getAttribute("encrypt-passwords"))) {
        String encryptionStrategy = element.getAttribute("encrypt-passwords");

        if (encryptionStrategy.equals("true") || encryptionStrategy.equals("md5")) {
            factoryBuilder.addPropertyValue("passwordEncryptor", new Md5PasswordEncryptor());
        } else if (encryptionStrategy.equals("salted")) {
            factoryBuilder.addPropertyValue("passwordEncryptor", new SaltedPasswordEncryptor());
        } else {
            factoryBuilder.addPropertyValue("passwordEncryptor", new ClearTextPasswordEncryptor());
        }
    }

    if (factoryClass == PropertiesUserManagerFactory.class) {
        if (StringUtils.hasText(element.getAttribute("file"))) {
            factoryBuilder.addPropertyValue("file", element.getAttribute("file"));
        }
        if (StringUtils.hasText(element.getAttribute("url"))) {
            factoryBuilder.addPropertyValue("url", element.getAttribute("url"));
        }
    } else {
        Element dsElm = SpringUtil.getChildElement(element, FtpServerNamespaceHandler.FTPSERVER_NS,
                "data-source");

        // schema ensure we get the right type of element
        Element springElm = SpringUtil.getChildElement(dsElm, null, null);
        Object o;
        if ("bean".equals(springElm.getLocalName())) {
            o = parserContext.getDelegate().parseBeanDefinitionElement(springElm, builder.getBeanDefinition());
        } else {
            // ref
            o = parserContext.getDelegate().parsePropertySubElement(springElm, builder.getBeanDefinition());

        }
        factoryBuilder.addPropertyValue("dataSource", o);

        factoryBuilder.addPropertyValue("sqlUserInsert", getSql(element, "insert-user"));
        factoryBuilder.addPropertyValue("sqlUserUpdate", getSql(element, "update-user"));
        factoryBuilder.addPropertyValue("sqlUserDelete", getSql(element, "delete-user"));
        factoryBuilder.addPropertyValue("sqlUserSelect", getSql(element, "select-user"));
        factoryBuilder.addPropertyValue("sqlUserSelectAll", getSql(element, "select-all-users"));
        factoryBuilder.addPropertyValue("sqlUserAdmin", getSql(element, "is-admin"));
        factoryBuilder.addPropertyValue("sqlUserAuthenticate", getSql(element, "authenticate"));
    }

    BeanDefinition factoryDefinition = factoryBuilder.getBeanDefinition();
    String factoryId = parserContext.getReaderContext().generateBeanName(factoryDefinition);

    BeanDefinitionHolder factoryHolder = new BeanDefinitionHolder(factoryDefinition, factoryId);
    registerBeanDefinition(factoryHolder, parserContext.getRegistry());

    // set the factory on the listener bean
    builder.getRawBeanDefinition().setFactoryBeanName(factoryId);
    builder.getRawBeanDefinition().setFactoryMethodName("createUserManager");

}

From source file:com.seovic.validation.config.ValidationBeanDefinitionParser.java

@SuppressWarnings("unchecked")
private BeanDefinition parseValidator(Element element, ParserContext parserContext) {
    String parent = element.getAttribute("parent");
    if ("".equals(parent)) {
        parent = null;//from w  w  w . j a v  a  2s.c  o m
    }
    String test = element.getAttribute("test");
    String when = element.getAttribute("when");
    String validateAll = element.getAttribute("validate-all");
    String context = element.getAttribute("context");
    String includeElementsErrors = element.getAttribute("include-element-errors");

    MutablePropertyValues properties = new MutablePropertyValues();
    if (StringUtils.hasText(test)) {
        properties.addPropertyValue("test", test);
    }
    if (StringUtils.hasText(when)) {
        properties.addPropertyValue("when", when);
    }
    if (StringUtils.hasText(validateAll)) {
        properties.addPropertyValue("validateAll", validateAll);
    }
    if (StringUtils.hasText(context)) {
        properties.addPropertyValue("context", context);
    }
    if (StringUtils.hasText(includeElementsErrors)) {
        properties.addPropertyValue("includeElementsErrors", includeElementsErrors);
    }
    ManagedList nestedValidators = new ManagedList();
    ManagedList actions = new ManagedList();
    for (int i = 0; i < element.getChildNodes().getLength(); i++) {
        Node child = element.getChildNodes().item(i);
        if (child != null && child instanceof Element) {
            Element childElement = (Element) child;
            if ("message".equals(childElement.getLocalName())) {
                actions.add(parseErrorMessageAction(childElement, parserContext));
            } else {
                nestedValidators.add(parseAndRegisterValidator2(childElement, parserContext));
            }
        }
    }
    if (nestedValidators.size() > 0) {
        properties.addPropertyValue("validators", nestedValidators);
    }
    if (actions.size() > 0) {
        properties.addPropertyValue("actions", actions);
    }
    String className;
    if ("required".equals(element.getLocalName())) {
        className = RequiredValidator.class.getName();
    } else if ("condition".equals(element.getLocalName())) {
        className = ConditionValidator.class.getName();
    } else if ("validator".equals(element.getLocalName())) {
        className = element.getAttribute("type");
    } else {
        className = ValidatorGroup.class.getName();
    }
    AbstractBeanDefinition validatorDefinition;
    try {
        validatorDefinition = BeanDefinitionReaderUtils.createBeanDefinition(parent, className,
                parserContext.getReaderContext().getBeanClassLoader());
    } catch (ClassNotFoundException e) {
        throw new BeanCreationException("Error occured during creation of bean definition", e);
    }
    validatorDefinition.setResource(parserContext.getReaderContext().getResource());
    validatorDefinition.setSource(parserContext.extractSource(element));
    validatorDefinition.setPropertyValues(properties);
    validatorDefinition.setLazyInit(true);
    validatorDefinition.setScope("singleton");
    return validatorDefinition;
}

From source file:org.apache.smscserver.config.spring.UserManagerBeanDefinitionParser.java

@Override
protected void doParse(final Element element, final ParserContext parserContext,
        final BeanDefinitionBuilder builder) {

    Class<?> factoryClass;//from   w w  w  . j  a v a  2 s.  c  o  m
    if (element.getLocalName().equals("file-user-manager")) {
        factoryClass = PropertiesUserManagerFactory.class;
    } else {
        factoryClass = DbUserManagerFactory.class;
    }

    BeanDefinitionBuilder factoryBuilder = BeanDefinitionBuilder.genericBeanDefinition(factoryClass);

    // common for both user managers
    if (StringUtils.hasText(element.getAttribute("encrypt-passwords"))) {
        String encryptionStrategy = element.getAttribute("encrypt-passwords");

        if (encryptionStrategy.equals("true") || encryptionStrategy.equals("md5")) {
            factoryBuilder.addPropertyValue("passwordEncryptor", new Md5PasswordEncryptor());
        } else if (encryptionStrategy.equals("salted")) {
            factoryBuilder.addPropertyValue("passwordEncryptor", new SaltedPasswordEncryptor());
        } else {
            factoryBuilder.addPropertyValue("passwordEncryptor", new ClearTextPasswordEncryptor());
        }
    }

    if (factoryClass == PropertiesUserManagerFactory.class) {
        if (StringUtils.hasText(element.getAttribute("file"))) {
            factoryBuilder.addPropertyValue("file", element.getAttribute("file"));
        }
        if (StringUtils.hasText(element.getAttribute("url"))) {
            factoryBuilder.addPropertyValue("url", element.getAttribute("url"));
        }
    } else {
        Element dsElm = SpringUtil.getChildElement(element, SmscServerNamespaceHandler.SMSCSERVER_NS,
                "data-source");

        // schema ensure we get the right type of element
        Element springElm = SpringUtil.getChildElement(dsElm, null, null);
        Object o;
        if ("bean".equals(springElm.getLocalName())) {
            o = parserContext.getDelegate().parseBeanDefinitionElement(springElm, builder.getBeanDefinition());
        } else {
            // ref
            o = parserContext.getDelegate().parsePropertySubElement(springElm, builder.getBeanDefinition());

        }
        factoryBuilder.addPropertyValue("dataSource", o);

        factoryBuilder.addPropertyValue("sqlUserInsert", this.getSql(element, "insert-user"));
        factoryBuilder.addPropertyValue("sqlUserUpdate", this.getSql(element, "update-user"));
        factoryBuilder.addPropertyValue("sqlUserDelete", this.getSql(element, "delete-user"));
        factoryBuilder.addPropertyValue("sqlUserSelect", this.getSql(element, "select-user"));
        factoryBuilder.addPropertyValue("sqlUserSelectAll", this.getSql(element, "select-all-users"));
        factoryBuilder.addPropertyValue("sqlUserAdmin", this.getSql(element, "is-admin"));
        factoryBuilder.addPropertyValue("sqlUserAuthenticate", this.getSql(element, "authenticate"));
    }

    BeanDefinition factoryDefinition = factoryBuilder.getBeanDefinition();
    String factoryId = parserContext.getReaderContext().generateBeanName(factoryDefinition);

    BeanDefinitionHolder factoryHolder = new BeanDefinitionHolder(factoryDefinition, factoryId);
    this.registerBeanDefinition(factoryHolder, parserContext.getRegistry());

    // set the factory on the listener bean
    builder.getRawBeanDefinition().setFactoryBeanName(factoryId);
    builder.getRawBeanDefinition().setFactoryMethodName("createUserManager");

}

From source file:pl.chilldev.web.spring.config.AbstractMetaBeanDefinitionParser.java

/**
 * {@inheritDoc}/*from w  ww.j a v  a 2s.  c  om*/
 * @since 0.0.1
 */
@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
    String key = element.getAttribute(AbstractMetaBeanDefinitionParser.ATTRIBUTE_KEY);
    String value = DomUtils.getTextValue(element);

    this.logger.info("Adding \"{}\" with value \"{}\" as meta \"{}\".", key, value, element.getLocalName());
    this.meta.put(key, value);

    return null;
}

From source file:org.apache.ftpserver.config.spring.ServerBeanDefinitionParser.java

/**
 * {@inheritDoc}/*from www  .jav a  2  s.c  om*/
 */
@Override
protected void doParse(final Element element, final ParserContext parserContext,
        final BeanDefinitionBuilder builder) {

    BeanDefinitionBuilder factoryBuilder = BeanDefinitionBuilder.genericBeanDefinition(FtpServerFactory.class);

    List<Element> childs = SpringUtil.getChildElements(element);
    for (Element childElm : childs) {
        String childName = childElm.getLocalName();

        if ("listeners".equals(childName)) {
            Map<?, ?> listeners = parseListeners(childElm, parserContext, builder);

            if (listeners.size() > 0) {
                factoryBuilder.addPropertyValue("listeners", listeners);
            }
        } else if ("ftplets".equals(childName)) {
            Map<?, ?> ftplets = parseFtplets(childElm, parserContext, builder);
            factoryBuilder.addPropertyValue("ftplets", ftplets);
        } else if ("file-user-manager".equals(childName) || "db-user-manager".equals(childName)) {
            Object userManager = parserContext.getDelegate().parseCustomElement(childElm,
                    builder.getBeanDefinition());
            factoryBuilder.addPropertyValue("userManager", userManager);
        } else if ("user-manager".equals(childName)) {
            factoryBuilder.addPropertyValue("userManager",
                    SpringUtil.parseSpringChildElement(childElm, parserContext, builder));
        } else if ("native-filesystem".equals(childName)) {
            Object fileSystem = parserContext.getDelegate().parseCustomElement(childElm,
                    builder.getBeanDefinition());
            factoryBuilder.addPropertyValue("fileSystem", fileSystem);
        } else if ("filesystem".equals(childName)) {
            factoryBuilder.addPropertyValue("fileSystem",
                    SpringUtil.parseSpringChildElement(childElm, parserContext, builder));
        } else if ("commands".equals(childName)) {
            Object commandFactory = parserContext.getDelegate().parseCustomElement(childElm,
                    builder.getBeanDefinition());
            factoryBuilder.addPropertyValue("commandFactory", commandFactory);
        } else if ("messages".equals(childName)) {
            MessageResource mr = parseMessageResource(childElm, parserContext, builder);
            factoryBuilder.addPropertyValue("messageResource", mr);

        } else {
            throw new FtpServerConfigurationException("Unknown configuration name: " + childName);
        }
    }

    // Configure login limits
    ConnectionConfigFactory connectionConfig = new ConnectionConfigFactory();
    if (StringUtils.hasText(element.getAttribute("max-logins"))) {
        connectionConfig.setMaxLogins(SpringUtil.parseInt(element, "max-logins"));
    }
    if (StringUtils.hasText(element.getAttribute("max-threads"))) {
        connectionConfig.setMaxThreads(SpringUtil.parseInt(element, "max-threads"));
    }
    if (StringUtils.hasText(element.getAttribute("max-anon-logins"))) {
        connectionConfig.setMaxAnonymousLogins(SpringUtil.parseInt(element, "max-anon-logins"));
    }
    if (StringUtils.hasText(element.getAttribute("anon-enabled"))) {
        connectionConfig.setAnonymousLoginEnabled(SpringUtil.parseBoolean(element, "anon-enabled", true));
    }
    if (StringUtils.hasText(element.getAttribute("max-login-failures"))) {
        connectionConfig.setMaxLoginFailures(SpringUtil.parseInt(element, "max-login-failures"));
    }
    if (StringUtils.hasText(element.getAttribute("login-failure-delay"))) {
        connectionConfig.setLoginFailureDelay(SpringUtil.parseInt(element, "login-failure-delay"));
    }

    factoryBuilder.addPropertyValue("connectionConfig", connectionConfig.createConnectionConfig());

    BeanDefinition factoryDefinition = factoryBuilder.getBeanDefinition();

    String factoryName = parserContext.getReaderContext().generateBeanName(factoryDefinition);

    BeanDefinitionHolder factoryHolder = new BeanDefinitionHolder(factoryDefinition, factoryName);
    registerBeanDefinition(factoryHolder, parserContext.getRegistry());

    // set the factory on the listener bean
    builder.getRawBeanDefinition().setFactoryBeanName(factoryName);
    builder.getRawBeanDefinition().setFactoryMethodName("createServer");

}

From source file:org.solmix.runtime.support.spring.AbstractRootBeanDefinitionParser.java

protected void parseChildElements(Element element, ParserContext parserContext,
        RootBeanDefinition beanDefinition) {
    Element el = DOMUtils.getFirstElement(element);
    while (el != null) {
        String name = el.getLocalName();
        mapElement(parserContext, beanDefinition, el, name);
        el = DOMUtils.getNextElement(el);
    }//from   w  ww .  j a  va 2 s .c om

}

From source file:com.CodeSeance.JSeance.CodeGenXML.DependencyTracking.DependencyManager.java

public DependencyManager(File targetDir) {
    final String DEPENDENCY_FILENAME = ".jseance-dependencies.xml";

    // Output directory must exist already
    assert targetDir.exists();

    // Load the dependencies from disk
    dependencyFile = new File(targetDir, DEPENDENCY_FILENAME);
    if (dependencyFile.exists()) {
        boolean deleteFile = false;
        try {//w ww.  j  a  va2s .c  om
            // Load the dependencies file
            XMLLoader xmLoader = XMLLoader.build(false);
            Document document = xmLoader.loadXML(targetDir, DEPENDENCY_FILENAME);

            // Get the root node
            Element rootNode = document.getDocumentElement();
            NodeList templateChildren = rootNode.getChildNodes();

            // Iterate through the "Template" children
            for (int i = 0; i < templateChildren.getLength(); i++) {
                if (templateChildren.item(i) instanceof Element) {
                    Element templateChild = (Element) templateChildren.item(i);

                    // Load the template file entry and store it in this class hashtable
                    File templateFile = new File(templateChild.getAttribute("fileName"));
                    TemplateDependencies templateDependency = new TemplateDependencies(templateFile);
                    templateDependencies.put(templateFile.toString(), templateDependency);

                    // Iterate through the child nodes
                    NodeList dependencyNodes = templateChild.getChildNodes();
                    for (int j = 0; j < dependencyNodes.getLength(); j++) {
                        if (dependencyNodes.item(j) instanceof Element) {
                            Element dependencyChild = (Element) dependencyNodes.item(j);
                            String localName = dependencyChild.getLocalName();
                            File dependencyChildFile = new File(dependencyChild.getAttribute("fileName"));
                            if (localName.equals("Input")) {
                                templateDependency.addInputFile(dependencyChildFile);
                            } else if (localName.equals("Output")) {
                                templateDependency.addOutputFile(dependencyChildFile);
                            } else {
                                throw new RuntimeException(
                                        String.format("Unexpected dependency node:[%s] in file:[%s]", localName,
                                                dependencyFile));
                            }
                        }
                    }
                }
            }

        } catch (Exception ex) {
            log.warn(String.format("Cannot parse dependency file:[%s], deleting. Cause:[%s]", dependencyFile,
                    ex.getMessage()));
            deleteFile = true;
        }

        if (deleteFile) {
            if (!dependencyFile.delete()) {
                throw new RuntimeException(
                        String.format("Cannot delete corrupt dependency file:[%s]", dependencyFile));
            }
        }
    }
}