Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/*
 * Copyright 2007-2012 AjaxTags-Team
 *
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

import javax.xml.namespace.QName;

import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;

import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Main {
    /** XPathFactory. */
    private static final ThreadLocal<XPathFactory> XPATH_FACTORY = new ThreadLocal<XPathFactory>() {
        @Override
        protected XPathFactory initialValue() {
            return XPathFactory.newInstance();
        }
    };

    /**
     * Evaluate XPath expression and return list of nodes.
     *
     * @param expression
     *            XPath expression
     * @param node
     *            DOM node
     * @return list of DOM nodes
     * @throws XPathExpressionException
     *             if expression cannot be evaluated
     */
    public static NodeList evaluateXPathExpression(final String expression, final Node node)
            throws XPathExpressionException {
        return (NodeList) evaluateXPathExpression(expression, node, XPathConstants.NODESET);
    }

    /**
     * Evaluate XPath expression.
     *
     * @param expression
     *            XPath expression
     * @param node
     *            DOM node
     * @param returnValue
     *            the desired return type
     * @return result of evaluating an XPath expression as an Object of returnType
     * @throws XPathExpressionException
     *             if expression cannot be evaluated
     */
    public static Object evaluateXPathExpression(final String expression, final Node node, final QName returnValue)
            throws XPathExpressionException {
        return getNewXPath().evaluate(expression, node, returnValue == null ? XPathConstants.NODE : returnValue);
    }

    /**
     * Create and return a new {@link XPath} object from {@link ThreadLocal}.
     *
     * @return a new {@link XPath} object.
     */
    public static XPath getNewXPath() {
        return XPATH_FACTORY.get().newXPath();
    }
}