Java XPath Create getXPathExpression(String xPathString)

Here you can find the source of getXPathExpression(String xPathString)

Description

get X Path Expression

License

Open Source License

Declaration

public static XPathExpression getXPathExpression(String xPathString) throws XPathExpressionException 

Method Source Code


//package com.java2s;
/*/*from w ww .  j a v  a 2 s . c om*/
   Copyright (c) 2009-2011 Olivier Chafik, All Rights Reserved
       
   This file is part of JNAerator (http://jnaerator.googlecode.com/).
       
   JNAerator is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.
       
   JNAerator is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
       
   You should have received a copy of the GNU General Public License
   along with JNAerator.  If not, see <http://www.gnu.org/licenses/>.
*/

import java.lang.ref.SoftReference;
import java.util.LinkedHashMap;

import java.util.Map;
import javax.xml.xpath.XPath;

import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;

public class Main {
    public static Map<String, SoftReference<XPathExpression>> xPathExpressionsCache = new LinkedHashMap<String, SoftReference<XPathExpression>>();
    private static SoftReference<XPath> sharedXPath;

    public static XPathExpression getXPathExpression(String xPathString) throws XPathExpressionException {
        SoftReference<XPathExpression> ref = xPathExpressionsCache.get(xPathString);
        XPathExpression expression = ref == null ? null : ref.get();
        if (expression == null)
            xPathExpressionsCache.put(xPathString,
                    new SoftReference<XPathExpression>(expression = getSharedXPath().compile(xPathString)));

        return expression;
    }

    public static XPath getSharedXPath() {
        XPath xPath = null;
        if (sharedXPath != null)
            xPath = sharedXPath.get();
        if (xPath == null) {
            XPathFactory xPathFactory = XPathFactory.newInstance();
            sharedXPath = new SoftReference<XPath>(xPath = xPathFactory.newXPath());
        }
        return xPath;
    }
}

Related

  1. getXPathExpression(final Node node)
  2. getXPathExpression(String expression)
  3. getXPathExpression(String path)
  4. getXPathExpression(String xpath, NamespaceContext namespaceContext)
  5. getXPathExpression(String xpathStr)
  6. getXpathExpressionNode(Object xprContext, String xpExpression)
  7. getXpathExpressionValue(Object xprContext, String xpExpression)
  8. getXPathExprFromNode(Node node)
  9. getXPathExprFromNode(Node node)