/*******************************************************************************
* Copyright (c) 2010 BestSolution.at and others. 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: Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
******************************************************************************/
package org.eclipse.e4.emf.xpath;
import org.eclipse.e4.emf.internal.xpath.JXPathContextFactoryImpl;
/**
* Factory responsible to create an XPath-Context
*
* @param <Type>
* the object type the XPath is created for
*/
public abstract class XPathContextFactory<Type extends Object> {
/**
* Creates a new XPathContext with the specified object as the root node.
*
* @param contextBean
* Object
* @return XPathContext
*/
public abstract XPathContext newContext(Type contextBean);
/**
* Creates a new XPathContext with the specified bean as the root node and the specified parent context. Variables
* defined in a parent context can be referenced in XPaths passed to the child context.
*
* @param parentContext
* parent context
* @param contextBean
* Object
* @return XPathContext
*/
public abstract XPathContext newContext(XPathContext parentContext, Type contextBean);
/**
* @param <Type>
* the object type the xpath is created for
* @return Create a new XPath-Factory
*/
public static <Type> XPathContextFactory<Type> newInstance() {
return new JXPathContextFactoryImpl<Type>();
}
}