package org.tigris.juxy; import org.tigris.juxy.util.ArgumentAssert; import org.tigris.juxy.xpath.XPathExpr; import org.w3c.dom.Document; /** * <p/> * * @author Pavel Sher */ public class VariableBase { private final String qname; private final VariableValueContainer value; VariableBase(String qname, String value) { ArgumentAssert.notEmpty(qname, "Name must not be empty"); this.qname = qname.trim(); this.value = new VariableValueContainer(value); } VariableBase(String qname, XPathExpr xpath) { ArgumentAssert.notEmpty(qname, "Name must not be empty"); this.qname = qname.trim(); this.value = new VariableValueContainer(xpath); } VariableBase(String qname, Document content) { ArgumentAssert.notEmpty(qname, "Name must not be empty"); this.qname = qname.trim(); this.value = new VariableValueContainer(content); } public boolean isVariableWithContent() { return value.isNotEmptyContent(); } public boolean isXPathValue() { return value.isXPathValue(); } public Document getContent() { if (isVariableWithContent()) return value.getContent(); return null; } public String getXPathValue() { return value.getXPathValue(); } public String getStringValue() { return value.getStringValue(); } public String getQname() { return qname; } public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof VariableBase)) return false; final VariableBase variableBase = (VariableBase) o; if (!qname.equals(variableBase.qname)) return false; if (!value.equals(variableBase.value)) return false; return true; } public int hashCode() { int result; result = qname.hashCode(); result = 29 * result + value.hashCode(); return result; } }