package eu.geclipse.jsdl.parametric.internal;
import java.util.List;
import org.w3c.dom.Document;
import eu.geclipse.core.reporting.ProblemException;
import eu.geclipse.jsdl.parametric.IParametricJsdlHandler;
import eu.geclipse.jsdl.parametric.ParametricJsdlException;
/**
* Interface for objects, containing JSDL {@link Document}, which nodes are
* changed by values defined in sweep extension.
*/
interface IGenerationContext {
/**
* Substitute text of nodes described by paramName with new value
* @param xpathQuery query selecting XML nodes, to which new value should be set
* @param value new value for parameter
* @param subMonitor
* @param paramXPath XPath expression, which selects XML nodes, which
* text Value should be substituted
* @throws ParametricJsdlException
* @throws ProblemException
*/
public abstract void setValue( final String xpathQuery,
final String value )
throws ParametricJsdlException;
/**
* Called, when all parameters were substituted for current iteration, and new jsdl can be stored
* @param iterationsStack
* @param subMonitor
* @throws ParametricJsdlException
* @throws ProblemException
*/
public abstract void storeGeneratedJsdl( final List<Integer> iterationsStack )
throws ParametricJsdlException;
public abstract IGenerationContext clone();
public IParametricJsdlHandler getHandler();
}