blob: 99297fd3f37c99d2f3b8f838f97b11a3372a781e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0, which accompanies this distribution
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Oracle - initial API and implementation
*******************************************************************************/
package org.eclipse.jpt.jaxb.eclipselink.core.internal.context.xpath.java;
import java.util.Map;
import java.util.WeakHashMap;
public class XPathFactory {
private static XPathFactory INSTANCE;
private Map<String, XPath> xpaths;
private XPathFactory() {
this.xpaths = new WeakHashMap<String, XPath>();
}
public static XPathFactory instance() {
if (INSTANCE == null) {
INSTANCE = new XPathFactory();
}
return INSTANCE;
}
public XPath getXpath(String xpathString) {
XPath xpath = this.xpaths.get(xpathString);
if (xpath == null) {
xpath = buildXpath(xpathString);
this.xpaths.put(xpathString, xpath);
}
return xpath;
}
private XPath buildXpath(String xpathString) {
return new XPath(xpathString);
}
}