public class TreeElement extends java.lang.Object implements Externalizable, AbstractTreeElement<TreeElement>
Modifier and Type | Field and Description |
---|---|
private java.util.List<TreeElement> |
attributes |
private java.util.List<TreeElement> |
bindAttributes |
private java.util.List<TreeElement> |
children |
private Constraint |
constraint |
protected int |
dataType |
private int |
flags |
private java.lang.String |
instanceName |
private static int |
MASK_ATTRIBUTE |
private static int |
MASK_ENABLED |
private static int |
MASK_ENABLED_INH |
private static int |
MASK_RELEVANT |
private static int |
MASK_RELEVANT_INH |
private static int |
MASK_REPEATABLE |
private static int |
MASK_REQUIRED |
protected int |
multiplicity |
private java.lang.String |
name |
private java.lang.String |
namespace |
private java.util.List<FormElementStateListener> |
observers |
private AbstractTreeElement |
parent |
private java.lang.String |
preloadHandler |
private java.lang.String |
preloadParams |
(package private) TreeReference[] |
refCache |
private IAnswerData |
value |
Constructor and Description |
---|
TreeElement()
TreeElement with null name and 0 multiplicity? (a "hidden root" node?)
|
TreeElement(java.lang.String name) |
TreeElement(java.lang.String name,
int multiplicity) |
Modifier and Type | Method and Description |
---|---|
void |
accept(ITreeVisitor visitor)
Visitor pattern acceptance method.
|
void |
addChild(TreeElement child) |
private void |
addChild(TreeElement child,
boolean checkDuplicate) |
void |
alertStateObservers(int changeFlags) |
static TreeReference |
BuildRef(AbstractTreeElement elem) |
static int |
CalculateDepth(AbstractTreeElement elem) |
void |
clearCaches() |
void |
clearChildrenCaches() |
static TreeElement |
constructAttributeElement(java.lang.String namespace,
java.lang.String name,
java.lang.String value)
Construct a TreeElement which represents an attribute with the provided
namespace and name.
|
TreeElement |
deepCopy(boolean includeTemplates) |
private void |
expireReferenceCache() |
static TreeElement |
getAttribute(java.util.List<TreeElement> attributes,
java.lang.String namespace,
java.lang.String name)
Retrieves the TreeElement representing the attribute for
the provided namespace and name, or null if none exists.
|
TreeElement |
getAttribute(java.lang.String namespace,
java.lang.String name)
Retrieves the TreeElement representing the attribute at
the provided namespace and name, or null if none exists.
|
int |
getAttributeCount()
Returns the number of attributes of this element.
|
java.lang.String |
getAttributeName(int index)
get name of attribute at 'index' in the list
|
java.lang.String |
getAttributeNamespace(int index)
get namespace of attribute at 'index' in the list
|
java.lang.String |
getAttributeValue() |
java.lang.String |
getAttributeValue(int index)
get value of attribute at 'index' in the list
|
java.lang.String |
getAttributeValue(java.lang.String namespace,
java.lang.String name)
get value of attribute with namespace:name' in the list
|
private java.lang.String |
getAttributeValue(TreeElement attribute)
Get the String value of the provided attribute
|
TreeElement |
getBindAttribute(java.lang.String namespace,
java.lang.String name)
Retrieves the TreeElement representing an arbitrary bind attribute
for this element at the provided namespace and name, or null if none exists.
|
java.util.List<TreeElement> |
getBindAttributes() |
java.lang.String |
getBindAttributeValue(java.lang.String namespace,
java.lang.String name)
get value of the bind attribute with namespace:name' in the list
|
TreeElement |
getChild(java.lang.String name,
int multiplicity) |
TreeElement |
getChildAt(int i) |
int |
getChildMultiplicity(java.lang.String name) |
java.util.List<TreeElement> |
getChildrenWithName(java.lang.String name)
Get all the child nodes of this element, with specific name
|
private java.util.List<TreeElement> |
getChildrenWithName(java.lang.String name,
boolean includeTemplate) |
Constraint |
getConstraint() |
int |
getDataType() |
int |
getDepth() |
java.lang.String |
getInstanceName() |
private boolean |
getMaskVar(int mask) |
int |
getMult() |
int |
getMultiplicity() |
java.lang.String |
getName() |
java.lang.String |
getNamespace() |
int |
getNumChildren() |
AbstractTreeElement |
getParent() |
java.lang.String |
getPreloadHandler() |
java.lang.String |
getPreloadParams() |
TreeReference |
getRef() |
IAnswerData |
getValue() |
boolean |
hasChildren() |
boolean |
isAttribute() |
boolean |
isChildable() |
boolean |
isEnabled() |
boolean |
isLeaf() |
boolean |
isRelevant() |
boolean |
isRepeatable() |
boolean |
isRequired() |
void |
populate(TreeElement incoming,
FormDef f) |
void |
populateTemplate(TreeElement incoming,
FormDef f) |
void |
readExternal(java.io.DataInputStream in,
PrototypeFactory pf) |
void |
registerStateObserver(FormElementStateListener qsl) |
void |
removeChild(java.lang.String name,
int multiplicity) |
void |
removeChild(TreeElement child) |
void |
removeChildAt(int i) |
void |
removeChildren(java.lang.String name) |
void |
removeChildren(java.lang.String name,
boolean includeTemplate) |
boolean |
setAnswer(IAnswerData answer) |
void |
setAttribute(java.lang.String namespace,
java.lang.String name,
java.lang.String value) |
static void |
setAttribute(TreeElement parent,
java.util.List<TreeElement> attrs,
java.lang.String namespace,
java.lang.String name,
java.lang.String value) |
void |
setBindAttribute(java.lang.String namespace,
java.lang.String name,
java.lang.String value) |
void |
setBindAttributes(java.util.List<TreeElement> bindAttributes) |
void |
setConstraint(Constraint constraint) |
void |
setDataType(int dataType) |
void |
setEnabled(boolean enabled) |
void |
setEnabled(boolean enabled,
boolean inherited) |
void |
setInstanceName(java.lang.String instanceName) |
private void |
setIsAttribute(boolean attribute) |
private void |
setMaskVar(int mask,
boolean value) |
void |
setMult(int multiplicity) |
void |
setName(java.lang.String name) |
void |
setNamespace(java.lang.String namespace) |
void |
setParent(AbstractTreeElement parent) |
void |
setPreloadHandler(java.lang.String preloadHandler) |
void |
setPreloadParams(java.lang.String preloadParams) |
void |
setRelevant(boolean relevant) |
private void |
setRelevant(boolean relevant,
boolean inherited) |
void |
setRepeatable(boolean repeatable) |
void |
setRequired(boolean required) |
void |
setValue(IAnswerData value) |
TreeElement |
shallowCopy() |
java.lang.String |
toString() |
java.util.List<TreeReference> |
tryBatchChildFetch(java.lang.String name,
int mult,
java.util.List<XPathExpression> predicates,
EvaluationContext evalContext)
TODO: Worst method name ever.
|
void |
unregisterAll() |
void |
unregisterStateObserver(FormElementStateListener qsl) |
void |
writeExternal(java.io.DataOutputStream out) |
private java.lang.String name
protected int multiplicity
private AbstractTreeElement parent
private IAnswerData value
private java.util.List<FormElementStateListener> observers
private java.util.List<TreeElement> attributes
private java.util.List<TreeElement> children
protected int dataType
private Constraint constraint
private java.lang.String preloadHandler
private java.lang.String preloadParams
private java.util.List<TreeElement> bindAttributes
private static final int MASK_REQUIRED
private static final int MASK_REPEATABLE
private static final int MASK_ATTRIBUTE
private static final int MASK_RELEVANT
private static final int MASK_ENABLED
private static final int MASK_RELEVANT_INH
private static final int MASK_ENABLED_INH
private int flags
private java.lang.String namespace
private java.lang.String instanceName
TreeReference[] refCache
public TreeElement()
public TreeElement(java.lang.String name)
public TreeElement(java.lang.String name, int multiplicity)
public static TreeElement constructAttributeElement(java.lang.String namespace, java.lang.String name, java.lang.String value)
namespace
- - if null will be converted to empty stringname
- value
- private void setIsAttribute(boolean attribute)
public static TreeElement getAttribute(java.util.List<TreeElement> attributes, java.lang.String namespace, java.lang.String name)
attributes
- - list of attributes to searchnamespace
- name
- public static void setAttribute(TreeElement parent, java.util.List<TreeElement> attrs, java.lang.String namespace, java.lang.String name, java.lang.String value)
public boolean isLeaf()
isLeaf
in interface AbstractTreeElement<TreeElement>
public boolean isChildable()
isChildable
in interface AbstractTreeElement<TreeElement>
public java.lang.String getInstanceName()
getInstanceName
in interface AbstractTreeElement<TreeElement>
public void setInstanceName(java.lang.String instanceName)
public void setValue(IAnswerData value)
public TreeElement getChild(java.lang.String name, int multiplicity)
getChild
in interface AbstractTreeElement<TreeElement>
public java.util.List<TreeElement> getChildrenWithName(java.lang.String name)
AbstractTreeElement
getChildrenWithName
in interface AbstractTreeElement<TreeElement>
private java.util.List<TreeElement> getChildrenWithName(java.lang.String name, boolean includeTemplate)
public int getNumChildren()
getNumChildren
in interface AbstractTreeElement<TreeElement>
public boolean hasChildren()
hasChildren
in interface AbstractTreeElement<TreeElement>
public TreeElement getChildAt(int i)
getChildAt
in interface AbstractTreeElement<TreeElement>
public boolean isRepeatable()
isRepeatable
in interface AbstractTreeElement<TreeElement>
public boolean isAttribute()
isAttribute
in interface AbstractTreeElement<TreeElement>
public void setDataType(int dataType)
public void addChild(TreeElement child)
private void addChild(TreeElement child, boolean checkDuplicate)
public void removeChild(TreeElement child)
public void removeChild(java.lang.String name, int multiplicity)
public void removeChildren(java.lang.String name)
public void removeChildren(java.lang.String name, boolean includeTemplate)
public void removeChildAt(int i)
public int getChildMultiplicity(java.lang.String name)
getChildMultiplicity
in interface AbstractTreeElement<TreeElement>
public TreeElement shallowCopy()
public TreeElement deepCopy(boolean includeTemplates)
public boolean isRelevant()
isRelevant
in interface AbstractTreeElement<TreeElement>
public boolean isEnabled()
public boolean setAnswer(IAnswerData answer)
public void setRequired(boolean required)
private boolean getMaskVar(int mask)
private void setMaskVar(int mask, boolean value)
public void setRelevant(boolean relevant)
private void setRelevant(boolean relevant, boolean inherited)
public void setBindAttributes(java.util.List<TreeElement> bindAttributes)
public java.util.List<TreeElement> getBindAttributes()
public TreeElement getBindAttribute(java.lang.String namespace, java.lang.String name)
public java.lang.String getBindAttributeValue(java.lang.String namespace, java.lang.String name)
public void setBindAttribute(java.lang.String namespace, java.lang.String name, java.lang.String value)
public void setEnabled(boolean enabled)
public void setEnabled(boolean enabled, boolean inherited)
public void registerStateObserver(FormElementStateListener qsl)
public void unregisterStateObserver(FormElementStateListener qsl)
public void unregisterAll()
public void alertStateObservers(int changeFlags)
public void accept(ITreeVisitor visitor)
AbstractTreeElement
accept
in interface AbstractTreeElement<TreeElement>
visitor
- The visitor traveling this treepublic int getAttributeCount()
AbstractTreeElement
getAttributeCount
in interface AbstractTreeElement<TreeElement>
public java.lang.String getAttributeNamespace(int index)
AbstractTreeElement
getAttributeNamespace
in interface AbstractTreeElement<TreeElement>
public java.lang.String getAttributeName(int index)
AbstractTreeElement
getAttributeName
in interface AbstractTreeElement<TreeElement>
public java.lang.String getAttributeValue(int index)
AbstractTreeElement
getAttributeValue
in interface AbstractTreeElement<TreeElement>
private java.lang.String getAttributeValue(TreeElement attribute)
attribute
- public java.lang.String getAttributeValue()
public TreeElement getAttribute(java.lang.String namespace, java.lang.String name)
AbstractTreeElement
getAttribute
in interface AbstractTreeElement<TreeElement>
public java.lang.String getAttributeValue(java.lang.String namespace, java.lang.String name)
AbstractTreeElement
getAttributeValue
in interface AbstractTreeElement<TreeElement>
public void setAttribute(java.lang.String namespace, java.lang.String name, java.lang.String value)
public void readExternal(java.io.DataInputStream in, PrototypeFactory pf) throws java.io.IOException, DeserializationException
readExternal
in interface Externalizable
java.io.IOException
DeserializationException
public void writeExternal(java.io.DataOutputStream out) throws java.io.IOException
writeExternal
in interface Externalizable
java.io.IOException
public void populate(TreeElement incoming, FormDef f)
public void populateTemplate(TreeElement incoming, FormDef f)
private void expireReferenceCache()
public TreeReference getRef()
getRef
in interface AbstractTreeElement<TreeElement>
public static TreeReference BuildRef(AbstractTreeElement elem)
public int getDepth()
getDepth
in interface AbstractTreeElement<TreeElement>
public static int CalculateDepth(AbstractTreeElement elem)
public java.lang.String getPreloadHandler()
public Constraint getConstraint()
public void setPreloadHandler(java.lang.String preloadHandler)
public void setConstraint(Constraint constraint)
public java.lang.String getPreloadParams()
public void setPreloadParams(java.lang.String preloadParams)
public java.lang.String getName()
getName
in interface AbstractTreeElement<TreeElement>
public void setName(java.lang.String name)
public int getMult()
getMult
in interface AbstractTreeElement<TreeElement>
public void setMult(int multiplicity)
public void setParent(AbstractTreeElement parent)
public AbstractTreeElement getParent()
getParent
in interface AbstractTreeElement<TreeElement>
public IAnswerData getValue()
getValue
in interface AbstractTreeElement<TreeElement>
public java.lang.String toString()
toString
in class java.lang.Object
public int getDataType()
getDataType
in interface AbstractTreeElement<TreeElement>
public boolean isRequired()
public void setRepeatable(boolean repeatable)
public int getMultiplicity()
public void clearCaches()
clearCaches
in interface AbstractTreeElement<TreeElement>
public void clearChildrenCaches()
public java.lang.String getNamespace()
getNamespace
in interface AbstractTreeElement<TreeElement>
public void setNamespace(java.lang.String namespace)
public java.util.List<TreeReference> tryBatchChildFetch(java.lang.String name, int mult, java.util.List<XPathExpression> predicates, EvaluationContext evalContext)
AbstractTreeElement
tryBatchChildFetch
in interface AbstractTreeElement<TreeElement>
predicates
- possibly list of predicates to be evaluated. predicates will be removed from list if they are
able to be evaluated