package org.tigris.juxy;
import org.tigris.juxy.xpath.XPathExpr;
import org.w3c.dom.Document;
/**
* <p/>
*
* @author Pavel Sher
*/
class VariableValueContainer {
private String stringValue = null;
private XPathExpr selectXpathExpr = null;
private Document variableContent = null;
VariableValueContainer(String stringValue) {
this.stringValue = stringValue;
}
VariableValueContainer(Document variableContent) {
this.variableContent = variableContent;
}
VariableValueContainer(XPathExpr xpath) {
this.selectXpathExpr = xpath;
}
public String getStringValue() {
if (stringValue != null)
return stringValue;
return null;
}
public String getXPathValue() {
if (selectXpathExpr != null)
return selectXpathExpr.getExpression();
return null;
}
public Document getContent() {
return variableContent;
}
public boolean isNotEmptyContent() {
return variableContent != null && variableContent.getDocumentElement() != null;
}
public boolean isXPathValue() {
return selectXpathExpr != null;
}
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof VariableValueContainer)) return false;
final VariableValueContainer variableValueContainer = (VariableValueContainer) o;
if (selectXpathExpr != null ? !selectXpathExpr.equals(variableValueContainer.selectXpathExpr) : variableValueContainer.selectXpathExpr != null)
return false;
if (stringValue != null ? !stringValue.equals(variableValueContainer.stringValue) : variableValueContainer.stringValue != null)
return false;
if (variableContent != null ? !variableContent.equals(variableValueContainer.variableContent) : variableValueContainer.variableContent != null)
return false;
return true;
}
public int hashCode() {
int result;
result = (stringValue != null ? stringValue.hashCode() : 0);
result = 29 * result + (selectXpathExpr != null ? selectXpathExpr.hashCode() : 0);
result = 29 * result + (variableContent != null ? variableContent.hashCode() : 0);
return result;
}
}