Package com.github.javaparser.ast
Class NodeList<N extends Node>
- java.lang.Object
-
- com.github.javaparser.ast.NodeList<N>
-
- Type Parameters:
N- the type of nodes contained.
- All Implemented Interfaces:
Observable,Visitable,HasParentNode<NodeList<N>>,java.lang.Iterable<N>,java.util.Collection<N>,java.util.List<N>
public class NodeList<N extends Node> extends java.lang.Object implements java.util.List<N>, java.lang.Iterable<N>, HasParentNode<NodeList<N>>, Visitable, Observable
A list of nodes. It usually has a parent node. Unlike normal Nodes, this does not mean that it is a child of that parent. Instead, this list will make every node it contains a child of its parent. This way, a NodeList does not create an extra level inside the AST.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classNodeList.NodeListIterator
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<N>innerListprivate java.util.List<AstObserver>observersprivate NodeparentNode
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <R,A>
Raccept(GenericVisitor<R,A> v, A arg)Accept method for visitor support.<A> voidaccept(VoidVisitor<A> v, A arg)Accept method for visitor support.voidadd(int index, N node)booleanadd(N node)NodeList<N>addAfter(N node, N afterThisNode)Inserts the node after afterThisNode.booleanaddAll(int index, java.util.Collection<? extends N> c)voidaddAll(NodeList<N> otherList)booleanaddAll(java.util.Collection<? extends N> c)NodeList<N>addBefore(N node, N beforeThisNode)Inserts the node before beforeThisNode.NodeList<N>addFirst(N node)Inserts the node before all other nodes.NodeList<N>addLast(N node)Inserts the node after all other nodes.voidclear()booleancontains(java.lang.Object o)booleancontains(N node)booleancontainsAll(java.util.Collection<?> c)booleanequals(java.lang.Object o)voidforEach(java.util.function.Consumer<? super N> action)Nget(int i)java.util.Optional<N>getFirst()java.util.Optional<N>getLast()java.util.Optional<Node>getParentNode()Returns the parent node, orOptional.emptyif no parent is set.NodegetParentNodeForChildren()Returns the parent node from the perspective of the children of this node.inthashCode()voidifNonEmpty(java.util.function.Consumer<? super NodeList<N>> consumer)intindexOf(java.lang.Object o)booleanisEmpty()booleanisNonEmpty()booleanisRegistered(AstObserver observer)Was this observer registered? Note that equals is used to determine if the given observer was registered.java.util.Iterator<N>iterator()intlastIndexOf(java.lang.Object o)java.util.ListIterator<N>listIterator()java.util.ListIterator<N>listIterator(int index)static <X extends Node>
NodeList<X>nodeList(NodeList<X> nodes)static <X extends Node>
NodeList<X>nodeList(java.util.Collection<X> nodes)static <X extends Node>
NodeList<X>nodeList(X... nodes)private voidnotifyElementAdded(int index, Node nodeAddedOrRemoved)private voidnotifyElementRemoved(int index, Node nodeAddedOrRemoved)private voidnotifyElementReplaced(int index, Node nodeAddedOrRemoved)private voidown(N node)java.util.stream.Stream<N>parallelStream()voidregister(AstObserver observer)Register an observer.Nremove(int index)booleanremove(Node node)booleanremove(java.lang.Object o)booleanremoveAll(java.util.Collection<?> c)NremoveFirst()booleanremoveIf(java.util.function.Predicate<? super N> filter)NremoveLast()booleanreplace(N old, N replacement)Replaces the first node that is equal to "old" with "replacement".voidreplaceAll(java.util.function.UnaryOperator<N> operator)booleanretainAll(java.util.Collection<?> c)Nset(int index, N element)private voidsetAsParentNodeOf(Node childNode)private voidsetAsParentNodeOf(java.util.List<? extends Node> childNodes)NodeList<N>setParentNode(Node parentNode)Sets the parentNodeintsize()voidsort(java.util.Comparator<? super N> comparator)java.util.Spliterator<N>spliterator()java.util.List<N>subList(int fromIndex, int toIndex)java.lang.Object[]toArray()<T> T[]toArray(T[] a)static <T extends Node>
java.util.stream.Collector<T,NodeList<T>,NodeList<T>>toNodeList()java.lang.StringtoString()voidunregister(AstObserver observer)Unregister an observer.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.github.javaparser.HasParentNode
findAncestor, findAncestor, findAncestor, hasParentNode, isDescendantOf
-
-
-
-
Field Detail
-
parentNode
private Node parentNode
-
observers
private final java.util.List<AstObserver> observers
-
-
Method Detail
-
add
public boolean add(N node)
-
own
private void own(N node)
-
remove
public boolean remove(Node node)
-
removeFirst
public N removeFirst()
-
removeLast
public N removeLast()
-
contains
public boolean contains(N node)
-
size
public int size()
-
iterator
public java.util.Iterator<N> iterator()
-
isEmpty
public boolean isEmpty()
-
sort
public void sort(java.util.Comparator<? super N> comparator)
-
add
public void add(int index, N node)
-
addLast
public NodeList<N> addLast(N node)
Inserts the node after all other nodes. (This is simply an alias for add.)
-
addAfter
public NodeList<N> addAfter(N node, N afterThisNode)
Inserts the node after afterThisNode.- Throws:
java.lang.IllegalArgumentException- when afterThisNode is not in this list.
-
addBefore
public NodeList<N> addBefore(N node, N beforeThisNode)
Inserts the node before beforeThisNode.- Throws:
java.lang.IllegalArgumentException- when beforeThisNode is not in this list.
-
getFirst
public java.util.Optional<N> getFirst()
- Returns:
- the first node, or empty if the list is empty.
-
getLast
public java.util.Optional<N> getLast()
- Returns:
- the last node, or empty if the list is empty.
-
getParentNode
public java.util.Optional<Node> getParentNode()
Description copied from interface:HasParentNodeReturns the parent node, orOptional.emptyif no parent is set.- Specified by:
getParentNodein interfaceHasParentNode<N extends Node>
-
setParentNode
public NodeList<N> setParentNode(Node parentNode)
Sets the parentNode- Specified by:
setParentNodein interfaceHasParentNode<N extends Node>- Parameters:
parentNode- the parentNode- Returns:
- this, the NodeList
-
getParentNodeForChildren
public Node getParentNodeForChildren()
Description copied from interface:HasParentNodeReturns the parent node from the perspective of the children of this node.That is, this method returns
thisfor everything exceptNodeList. ANodeListreturns its parent node instead. This is because aNodeListsets the parent of all its children to its own parent node (seeNodeListfor details).- Specified by:
getParentNodeForChildrenin interfaceHasParentNode<N extends Node>
-
accept
public <R,A> R accept(GenericVisitor<R,A> v, A arg)
Description copied from interface:VisitableAccept method for visitor support.- Specified by:
acceptin interfaceVisitable- Type Parameters:
R- the type of the return value of the visitorA- the type the user argument passed to the visitor- Parameters:
v- the visitor implementationarg- the argument passed to the visitor (of type A)- Returns:
- the result of the visit (of type R)
-
accept
public <A> void accept(VoidVisitor<A> v, A arg)
Description copied from interface:VisitableAccept method for visitor support.
-
forEach
public void forEach(java.util.function.Consumer<? super N> action)
-
contains
public boolean contains(java.lang.Object o)
-
toArray
public java.lang.Object[] toArray()
-
toArray
public <T> T[] toArray(T[] a)
-
remove
public boolean remove(java.lang.Object o)
-
containsAll
public boolean containsAll(java.util.Collection<?> c)
-
addAll
public boolean addAll(java.util.Collection<? extends N> c)
-
addAll
public boolean addAll(int index, java.util.Collection<? extends N> c)
-
removeAll
public boolean removeAll(java.util.Collection<?> c)
-
retainAll
public boolean retainAll(java.util.Collection<?> c)
-
replaceAll
public void replaceAll(java.util.function.UnaryOperator<N> operator)
-
removeIf
public boolean removeIf(java.util.function.Predicate<? super N> filter)
-
clear
public void clear()
-
equals
public boolean equals(java.lang.Object o)
-
hashCode
public int hashCode()
-
indexOf
public int indexOf(java.lang.Object o)
-
lastIndexOf
public int lastIndexOf(java.lang.Object o)
-
listIterator
public java.util.ListIterator<N> listIterator()
-
listIterator
public java.util.ListIterator<N> listIterator(int index)
-
parallelStream
public java.util.stream.Stream<N> parallelStream()
-
subList
public java.util.List<N> subList(int fromIndex, int toIndex)
-
spliterator
public java.util.Spliterator<N> spliterator()
-
notifyElementAdded
private void notifyElementAdded(int index, Node nodeAddedOrRemoved)
-
notifyElementRemoved
private void notifyElementRemoved(int index, Node nodeAddedOrRemoved)
-
notifyElementReplaced
private void notifyElementReplaced(int index, Node nodeAddedOrRemoved)
-
unregister
public void unregister(AstObserver observer)
Description copied from interface:ObservableUnregister an observer. If the given observer was not registered there are no effects.- Specified by:
unregisterin interfaceObservable
-
register
public void register(AstObserver observer)
Description copied from interface:ObservableRegister an observer.- Specified by:
registerin interfaceObservable
-
isRegistered
public boolean isRegistered(AstObserver observer)
Description copied from interface:ObservableWas this observer registered? Note that equals is used to determine if the given observer was registered.- Specified by:
isRegisteredin interfaceObservable
-
replace
public boolean replace(N old, N replacement)
Replaces the first node that is equal to "old" with "replacement".- Returns:
- true if a replacement has happened.
-
isNonEmpty
public boolean isNonEmpty()
- Returns:
- the opposite of isEmpty()
-
toNodeList
public static <T extends Node> java.util.stream.Collector<T,NodeList<T>,NodeList<T>> toNodeList()
-
setAsParentNodeOf
private void setAsParentNodeOf(java.util.List<? extends Node> childNodes)
-
setAsParentNodeOf
private void setAsParentNodeOf(Node childNode)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-