|
Groovy 2.2.0 | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object groovy.util.Node
public class Node extends Object
Represents an arbitrary tree node which can be used for structured metadata or any arbitrary XML-like tree.
A node can have a name, a value and an optional Map of attributes.
Typically the name is a String and a value is either a String or a List of other Nodes,
though the types are extensible to provide a flexible structure, e.g. you could use a
QName as the name which includes a namespace URI and a local name. Or a JMX ObjectName etc.
So this class can represent metadata like {foo a=1 b="abc"}
or nested
metadata like {foo a=1 b="123" { bar x=12 text="hello" }}
Constructor Summary | |
Node(Node parent, Object name)
Creates a new Node named |
|
Node(Node parent, Object name, Object value)
Creates a new Node named |
|
Node(Node parent, Object name, Map attributes)
Creates a new Node named |
|
Node(Node parent, Object name, Map attributes, Object value)
Creates a new Node named |
Method Summary | |
---|---|
boolean
|
append(Node child)
Appends a child to the current node. |
Node
|
appendNode(Object name, Map attributes)
Creates a new node as a child of the current node. |
Node
|
appendNode(Object name)
Creates a new node as a child of the current node. |
Node
|
appendNode(Object name, Object value)
Creates a new node as a child of the current node. |
Node
|
appendNode(Object name, Map attributes, Object value)
Creates a new node as a child of the current node. |
Object
|
attribute(Object key)
Provides lookup of attributes by key. |
Map
|
attributes()
Returns a |
List
|
breadthFirst()
Provides a collection of all the nodes in the tree using a breadth-first traversal. |
List
|
children()
Returns a |
Object
|
clone()
Creates a new Node with the same name, no parent, shallow cloned attributes and if the value is a NodeList, a (deep) clone of those nodes. |
List
|
depthFirst()
Provides a collection of all the nodes in the tree using a depth first traversal. |
Object
|
get(String key)
Provides lookup of elements by non-namespaced name |
NodeList
|
getAt(QName name)
Provides lookup of elements by QName. |
Iterator
|
iterator()
Returns an |
Object
|
name()
Returns an |
Node
|
parent()
Returns the parent of the node. |
void
|
plus(Closure c)
Adds sibling nodes (defined using builder-style notation via a Closure) after the current node. |
void
|
print(PrintWriter out)
Writes the node to the specified |
boolean
|
remove(Node child)
Removes a child of the current node. |
Node
|
replaceNode(Closure c)
Replaces the current node with nodes defined using builder-style notation via a Closure. |
Node
|
replaceNode(Node n)
Replaces the current node with the supplied node. |
protected static void
|
setMetaClass(MetaClass metaClass, Class nodeClass)
Extension point for subclasses to override the metaclass. |
protected void
|
setParent(Node parent)
Adds or replaces the parent of the node. |
void
|
setValue(Object value)
Adds or replaces the value of the node. |
String
|
text()
Returns the textual representation of the current node and all its child nodes. |
String
|
toString()
|
Object
|
value()
Returns an |
Methods inherited from class Object | |
---|---|
wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll |
Constructor Detail |
---|
public Node(Node parent, Object name)
name
and if a parent is supplied, adds
the newly created node as a child of the parent.
parent
- the parent node or null if no parentname
- the name of the node
public Node(Node parent, Object name, Object value)
name
with value value
and
if a parent is supplied, adds the newly created node as a child of the parent.
parent
- the parent node or null if no parentname
- the name of the nodevalue
- the Node value, e.g. some text but in general any Object
public Node(Node parent, Object name, Map attributes)
name
with
attributes specified in the attributes
Map. If a parent is supplied,
the newly created node is added as a child of the parent.
parent
- the parent node or null if no parentname
- the name of the nodeattributes
- a Map of name-value pairs
public Node(Node parent, Object name, Map attributes, Object value)
name
with value value
and
with attributes specified in the attributes
Map. If a parent is supplied,
the newly created node is added as a child of the parent.
parent
- the parent node or null if no parentname
- the name of the nodeattributes
- a Map of name-value pairsvalue
- the Node value, e.g. some text but in general any Object
Method Detail |
---|
public boolean append(Node child)
child
- the child to appendtrue
public Node appendNode(Object name, Map attributes)
name
- the name of the new nodeattributes
- the attributes of the new nodeNode
public Node appendNode(Object name)
name
- the name of the new nodeNode
public Node appendNode(Object name, Object value)
name
- the name of the new nodevalue
- the value of the new nodeNode
public Node appendNode(Object name, Map attributes, Object value)
name
- the name of the new nodeattributes
- the attributes of the new nodevalue
- the value of the new nodeNode
public Object attribute(Object key)
key
- the key of interestnull
if no match exists
public Map attributes()
Map
of the attributes of the node or an empty Map
if the node does not have any attributes.
public List breadthFirst()
public List children()
List
of the nodes children.
@Overridepublic Object clone() { public Object clone()
public List depthFirst()
public Object get(String key)
key
- the name (or shortcut key) of the node(s) of interest
public NodeList getAt(QName name)
name
- the QName of interest
public Iterator iterator()
Iterator
of the children of the node.
public Object name()
Object
representing the name of the node.
null
if name is empty
public Node parent()
null
for the root node
public void plus(Closure c)
c
- A Closure defining the new sibling nodes to add using builder-style notation.
public void print(PrintWriter out)
PrintWriter
.
out
- the writer receiving the output
public boolean remove(Node child)
child
- the child to removetrue
if the param was a child of the current node
public Node replaceNode(Closure c)
c
- A Closure defining the new nodes using builder-style notation.
public Node replaceNode(Node n)
n
- the new Node
protected static void setMetaClass(MetaClass metaClass, Class nodeClass)
metaClass
- the original metaclassnodeClass
- the class whose metaclass we wish to override (this class or a subclass)
protected void setParent(Node parent)
parent
- the new parent of the node
public void setValue(Object value)
value
- the new value of the node
public String text()
public String toString()
public Object value()
Object
representing the value of the node.
null
if value is empty
Copyright © 2003-2013 The Codehaus. All rights reserved.