public final class NodeImpl extends Node implements JSONSerializable
Node.VisitCallback<T>
Constructor and Description |
---|
NodeImpl(Tag tag,
Object key,
String facet,
String featureId,
java.util.Map<String,javax.el.ValueExpression> elVariableMap)
Constructs a node
|
Modifier and Type | Method and Description |
---|---|
void |
addFacet(Node child,
String facetName)
Add a facet child
|
void |
appendChild(Node child)
Appends a child node
|
boolean |
attributeHasValue(String name)
Check if the attribute has a value.
|
javax.el.MethodExpression |
createMethodExpression(oracle.adfmf.framework.model.MafElContext elContext,
String expression,
Class expectedReturnType,
Class[] expectedParamTypes)
Creates a method expression that has the correct environment for this node
|
javax.el.ValueExpression |
createValueExpression(oracle.adfmf.framework.model.MafElContext elContext,
String expression)
Creates a value expression that includes the contextual EL variable map for this node and its ancestor nodes.
|
Node |
findAncestor(String namespace,
String tagName)
Attempt to find an ancestor node with the given tag namespace and name.
|
Node |
findRelativeNode(String idSearchExpression)
Attempts to find a node relative to the current node by its tag ID.
|
Object |
getAttribute(String name)
Get the value of an attribute
|
javax.el.ValueExpression |
getAttributeExpression(String name)
Get the value expression for an attribute
|
Iterable<String> |
getAttributeNames()
Get the name of all the specified attributes.
|
java.util.stream.Stream<Node> |
getChildren(Object key)
Get the children.
|
java.util.stream.Stream<Node> |
getChildren(Object key,
String tagNamespace,
String tagName)
Get the children based on their namespace and tag
|
int |
getChildrenCount(Object key)
Get the number of children for the given stamp key.
|
Iterable<Object> |
getChildrenKeys()
Get an iterable of all children keys.
|
java.util.Map<String,javax.el.ValueExpression> |
getElVariableMap()
Gets the EL variable map to use for this node.
|
String |
getFacetName()
The name of the facet this node is in
|
Iterable<String> |
getFacetNames(Object key)
Get an iterable of all facet names that have children
|
java.util.stream.Stream<Node> |
getFacetNodes(String name,
Object key)
Get all the nodes for a given facet
|
String |
getFeatureId()
Gets the feature ID needed to get the feature context on the node.
|
String |
getId()
Gets a unique ID for this node.
|
Object |
getKey()
The key to use for stamping.
|
javax.el.MethodExpression |
getMethodExpression(String name)
Get the method expression for an attribute
|
Node |
getParent()
Get the parent node
|
java.util.stream.Stream<Node> |
getRenderedChildren(Object key)
Get a list of all the children that are currently rendered.
|
Node |
getRenderingParent()
Get the node that renders this node.
|
Tag |
getTag()
Get the tag for this node
|
void |
initializeAttribute(oracle.adfmf.framework.model.MafElContext elContext,
String attributeName)
Sets up an attribute on the node.
|
void |
initializeAttribute(oracle.adfmf.framework.model.MafElContext elContext,
String attributeName,
javax.el.ValueExpression expression)
Initializes an attribute using a given value expression.
|
void |
initializeAttributes(oracle.adfmf.framework.model.MafElContext elContext,
java.util.Set<String> attributes)
Sets a set of attributes on the node.
|
void |
insertChild(int index,
Node child)
Instert a child
|
boolean |
isRendered()
Get if this node is ready to render.
|
void |
markAttributeAsChanged(String name)
Forces an attribute to be sent to the WebView even if the value has not changed.
|
void |
remove()
Removes this node from its parent
|
void |
removeAllChildren()
Removes all facets and children for all stamps
|
void |
removeAllChildrenForKey(Object key)
Removes all facets and children with the given stamp key
|
void |
removeAttributeValue(String attributeName)
Removes the value for an attribute.
|
void |
removeChildOrFacet(Node child)
Removes a child or facet
|
void |
setAttribute(String attributeName,
Object value)
Sets the value of an attribute.
|
void |
setRenderingParent(Node renderingParent)
Sets the rendering parent for this node
|
JSONObject |
toJSON()
Method to add custom code to serialize the Object to JSON
|
void |
validate()
Validates the value of the node.
|
<T> boolean |
visit(NodeVisitContext<T> visitContext,
Node.VisitCallback<T> callback)
Visit this node and descendents.
|
equals, getTagHandler, hashCode
public NodeImpl(Tag tag, Object key, String facet, String featureId, java.util.Map<String,javax.el.ValueExpression> elVariableMap)
tag
- the tag for the node nodekey
- the stamp key or null if the node was not stampedfacet
- the name of the facet this node is inside of or null if a childelVariableMap
- a map of EL variables that should be used to resolve contextual EL variablespublic String getId()
public Iterable<String> getAttributeNames()
Node
getAttributeNames
in class Node
public javax.el.ValueExpression getAttributeExpression(String name)
Node
getAttributeExpression
in class Node
name
- name of the attributepublic javax.el.MethodExpression getMethodExpression(String name)
Node
getMethodExpression
in class Node
name
- the name of the attributepublic Node getRenderingParent()
Node
Node.getParent()
but may be overridden
for specific tags (i.e. fragment facet references). This is used as part of the ID calculation.getRenderingParent
in class Node
public void setRenderingParent(Node renderingParent)
Node
setRenderingParent
in class Node
renderingParent
- the parent that is responsible for rendering the node on the clientpublic String getFeatureId()
Node
getFeatureId
in class Node
public java.util.stream.Stream<Node> getFacetNodes(String name, Object key)
Node
getFacetNodes
in class Node
name
- the name of the facetkey
- the stamp key or null if not stampedpublic java.util.stream.Stream<Node> getChildren(Object key)
Node
Node.getChildren(Object, String, String)
with null for the namespace
and tag name.getChildren
in class Node
key
- the stamp key or null for non-stamped childrenpublic java.util.stream.Stream<Node> getChildren(Object key, String tagNamespace, String tagName)
Node
getChildren
in class Node
key
- the stamp key or null for non-stamped childrentagNamespace
- the namespace to filter by or null to not filter on the namespacetagName
- the name of the tag to filter or or null to not filter by the tag namepublic Node findAncestor(String namespace, String tagName)
Node
findAncestor
in class Node
namespace
- the namespace of the tag or null to not filter on namespacetagName
- the name of the tag or null to not filter on the tag namepublic Node findRelativeNode(String idSearchExpression)
Node
findRelativeNode
in class Node
idSearchExpression
- the tag ID optionally separated by colons for a hierarchy of nodespublic java.util.stream.Stream<Node> getRenderedChildren(Object key)
Node
getRenderedChildren
in class Node
key
- the stamp key or null for non-stamped childrenpublic boolean isRendered()
Node
isRendered
in class Node
public void initializeAttribute(oracle.adfmf.framework.model.MafElContext elContext, String attributeName)
Node
initializeAttribute
in class Node
elContext
- the MAF EL contextattributeName
- the name of the attribute to initializepublic void initializeAttributes(oracle.adfmf.framework.model.MafElContext elContext, java.util.Set<String> attributes)
Node
initializeAttributes
in class Node
elContext
- the MAF EL contextattributes
- the name of the attributes to initializeNode.initializeAttribute(MafElContext, String)
public void initializeAttribute(oracle.adfmf.framework.model.MafElContext elContext, String attributeName, javax.el.ValueExpression expression)
Node
Node.createValueExpression(MafElContext, String)
method to ensure the variables
for the node are resolved correctly.initializeAttribute
in class Node
elContext
- the EL contextattributeName
- the name of the attribute to initialize and store the value on the nodeexpression
- the expression to use to get the attribute valuepublic int getChildrenCount(Object key)
Node
getChildrenCount
in class Node
key
- the stamp key or null for non-stamped childrenpublic void addFacet(Node child, String facetName)
Node
public void remove()
Node
public void removeChildOrFacet(Node child)
Node
removeChildOrFacet
in class Node
child
- thi child to removepublic void removeAllChildren()
Node
removeAllChildren
in class Node
public void removeAllChildrenForKey(Object key)
Node
removeAllChildrenForKey
in class Node
key
- the key or null to remove non-stamped facets and childrenpublic String getFacetName()
Node
getFacetName
in class Node
public Object getKey()
Node
public Object getAttribute(String name)
Node
getAttribute
in class Node
name
- the attribute namepublic void appendChild(Node child)
Node
appendChild
in class Node
child
- the childpublic void insertChild(int index, Node child)
Node
insertChild
in class Node
index
- the index to insert the childchild
- the child to addpublic <T> boolean visit(NodeVisitContext<T> visitContext, Node.VisitCallback<T> callback)
Node
public Iterable<String> getFacetNames(Object key)
Node
getFacetNames
in class Node
key
- the stamp key or null for facets without stamped nodespublic Iterable<Object> getChildrenKeys()
Node
getChildrenKeys
in class Node
public void setAttribute(String attributeName, Object value)
Node
setAttribute
in class Node
attributeName
- the name of the attributevalue
- the value to set (may be null)public void removeAttributeValue(String attributeName)
Node
removeAttributeValue
in class Node
attributeName
- the name of the attribute to removepublic void markAttributeAsChanged(String name)
Node
markAttributeAsChanged
in class Node
name
- the name of the attributepublic JSONObject toJSON() throws oracle.adfmf.json.JSONException
JSONSerializable
toJSON
in interface JSONSerializable
oracle.adfmf.json.JSONException
public java.util.Map<String,javax.el.ValueExpression> getElVariableMap()
Node
getElVariableMap
in class Node
public javax.el.ValueExpression createValueExpression(oracle.adfmf.framework.model.MafElContext elContext, String expression)
Node
createValueExpression
in class Node
elContext
- the MAF EL contextexpression
- the value expression string valuepublic boolean attributeHasValue(String name)
Node
attributeHasValue
in class Node
name
- the name of the attribute to checkpublic javax.el.MethodExpression createMethodExpression(oracle.adfmf.framework.model.MafElContext elContext, String expression, Class expectedReturnType, Class[] expectedParamTypes)
Node
createMethodExpression
in class Node
expression
- the expression to parseexpectedReturnType
- the expected return type for the method to be found. Passing in a value of null indicates
the caller does not care what the return type is, and the return type will not be checkedexpectedParamTypes
- the expected parameter types for the method to be found. Must be an array with no
elements if there are no parameters expected. It is illegal to pass null, unless the method is specified
with arguments in the EL expression.ExpressionFactory.createMethodExpression(ELContext, String, Class, Class[])
public void validate() throws AdfException
Node
AttributeDefinition
that is declared to support validation.validate
in class Node
AdfException