package org.exist.client.xacml; import org.exist.security.xacml.XACMLUtil; import com.sun.xacml.cond.Apply; public class ConditionNode extends AbstractTreeNode { private Apply condition; private Apply originalCondition; public ConditionNode(NodeContainer parent) { this(parent, null); } public ConditionNode(NodeContainer parent, Apply condition) { super(parent); this.condition = condition; originalCondition = condition; } public Apply getCondition() { return condition; } public void setCondition(Apply condition) { this.condition = condition; fireChanged(); } public boolean isModified(boolean deep) { return super.isModified(deep) || isConditionModified(); } public boolean isConditionModified() { //simple check, ?replace with something more exact? return condition != originalCondition; } public void revert(boolean deep) { condition = originalCondition; super.revert(deep); } public void commit(boolean deep) { originalCondition = condition; super.commit(deep); } public String serialize(boolean indent) { return XACMLUtil.serialize(condition, indent); } public String toString() { return "Condition"; } }