package at.gv.egovernment.moa.spss.server.iaik.xml; import java.util.Map; import iaik.server.modules.xml.XPathTransformation; /** * A Transformation containing an XPath expression. * * @author Patrick Peck * @version $Id$ */ public class XPathTransformationImpl extends TransformationImpl implements XPathTransformation { /** The XPath expression. */ private String xPathExpression; /** The namespace prefix to URI mapping to use for XPath evaluation. */ private Map namespaceDeclarations; /** * Create a new XPathTransformationImpl. * * The namespace declarations are initialized empty. * * @param xPathExpression The XPath expression this object will contain. * @param namespaceDeclarations The namespace declarations visible for this * XPath. */ public XPathTransformationImpl( String xPathExpression, Map namespaceDeclarations) { setAlgorithmURI(XPathTransformation.XPATH); setXPathExpression(xPathExpression); setNamespaceDeclarations(namespaceDeclarations); } /** * Set the XPath expression. * * @param xPathExpression The XPath expression. */ protected void setXPathExpression(String xPathExpression) { this.xPathExpression = xPathExpression; } /** * @see iaik.server.modules.xml.XPathTransformation#getXPathExpression() */ public String getXPathExpression() { return xPathExpression; } /** * @see iaik.server.modules.xml.XPathTransformation#getNamespaceDeclarations() */ public Map getNamespaceDeclarations() { return namespaceDeclarations; } /** * Set the namespace declarations. * * @param namespaceDeclarations The mapping between namespace prefixes and * their associated URI. */ protected void setNamespaceDeclarations(Map namespaceDeclarations) { this.namespaceDeclarations = namespaceDeclarations; } /** * Compare this XPathTransformation to another. * * @param other The object to compare this * XPathTransformation to. * @return true, if other is an * XPathTransformation and if this object contains the same XPath * expression as other. Otherwise false is returned. * @see java.lang.Object#equals(Object) */ public boolean equals(Object other) { if (other instanceof XPathTransformation) { XPathTransformation transform = (XPathTransformation) other; return getXPathExpression().equals(transform.getXPathExpression()); } return false; } /** * @see java.lang.Object#hashCode() */ public int hashCode() { return getXPathExpression().hashCode(); } }