org.sonar.sslr.ast
Interface AstSelect

All Superinterfaces:
Iterable<AstNode>
All Known Implementing Classes:
EmptyAstSelect, ListAstSelect, SingleAstSelect

@Beta
public interface AstSelect
extends Iterable<AstNode>

An immutable ordered collection of AST nodes with operations for selection. Use AstNode.select() to obtain an instance of this interface.

This interface is not intended to be implemented by clients.

Since:
1.18

Method Summary
 AstSelect children()
          Returns new selection, which contains children of this selection.
 AstSelect children(AstNodeType... types)
          Returns new selection, which contains children of a given types of this selection.
 AstSelect children(AstNodeType type)
          Returns new selection, which contains children of a given type of this selection.
 AstSelect descendants(AstNodeType... types)
          Returns new selection, which contains descendants of a given types of this selection.
 AstSelect descendants(AstNodeType type)
          Returns new selection, which contains descendants of a given type of this selection.
 AstSelect filter(AstNodeType... types)
          Returns new selection, which contains elements of this selection that have any one of the given types.
 AstSelect filter(AstNodeType type)
          Returns new selection, which contains elements of this selection that have given type.
 AstSelect filter(com.google.common.base.Predicate<AstNode> predicate)
          Returns new selection, which contains elements of this selection that satisfy a predicate.
 AstSelect firstAncestor(AstNodeType... types)
          Returns new selection, which contains first ancestor of one of the given types for each node from this selection.
 AstSelect firstAncestor(AstNodeType type)
          Returns new selection, which contains first ancestor of a given type for each node from this selection.
 AstNode get(int index)
          Returns the element at the specified position in this selection.
 boolean isEmpty()
          Returns true if this selection contains no elements.
 boolean isNotEmpty()
          Returns true if this selection contains elements.
 Iterator<AstNode> iterator()
          Returns an iterator over the elements in this selection.
 AstSelect nextSibling()
          Returns new selection, which contains next sibling for each node from this selection.
 AstSelect parent()
          Returns new selection, which contains parent for each node from this selection.
 AstSelect previousSibling()
          Returns new selection, which contains previous sibling for each node from this selection.
 int size()
          Returns the number of elements in this selection.
 

Method Detail

children

AstSelect children()
Returns new selection, which contains children of this selection.


children

AstSelect children(AstNodeType type)
Returns new selection, which contains children of a given type of this selection.

In the following case, children("B") would return "B2" and "B3":

 A1
  |__ C1
  |    |__ B1
  |__ B2
  |__ B3
 


children

AstSelect children(AstNodeType... types)
Returns new selection, which contains children of a given types of this selection.

See Also:
children(AstNodeType)

nextSibling

AstSelect nextSibling()
Returns new selection, which contains next sibling for each node from this selection.

In the following case, for selection "B1" nextSibling() would return "B2":

 A1
  |__ B1
  |    |__ C1
  |__ B2
 


previousSibling

AstSelect previousSibling()
Returns new selection, which contains previous sibling for each node from this selection.

In the following case, for selection "B2" previousSibling() would return "B1":

 A1
  |__ B1
  |    |__ C1
  |__ B2
 


parent

AstSelect parent()
Returns new selection, which contains parent for each node from this selection.


firstAncestor

AstSelect firstAncestor(AstNodeType type)
Returns new selection, which contains first ancestor of a given type for each node from this selection.

In the following case, for selection "B2" firstAncestor("A") would return "A2":

 A1
  |__ A2
       |__ B1
       |__ B2
 


firstAncestor

AstSelect firstAncestor(AstNodeType... types)
Returns new selection, which contains first ancestor of one of the given types for each node from this selection.

See Also:
firstAncestor(AstNodeType)

descendants

AstSelect descendants(AstNodeType type)
Returns new selection, which contains descendants of a given type of this selection. Be careful, this method searches among all descendants whatever is their depth, so favor children(AstNodeType) when possible.

In the following case, getDescendants("B") would return "B1", "B2" and "B3":

 A1
  |__ C1
  |    |__ B1
  |__ B2
  |__ D1
  |__ B3
 


descendants

AstSelect descendants(AstNodeType... types)
Returns new selection, which contains descendants of a given types of this selection.

See Also:
descendants(AstNodeType)

isEmpty

boolean isEmpty()
Returns true if this selection contains no elements.

Returns:
true if this selection contains no elements

isNotEmpty

boolean isNotEmpty()
Returns true if this selection contains elements.

Returns:
true if this selection contains elements

filter

AstSelect filter(AstNodeType type)
Returns new selection, which contains elements of this selection that have given type.


filter

AstSelect filter(AstNodeType... types)
Returns new selection, which contains elements of this selection that have any one of the given types.


filter

AstSelect filter(com.google.common.base.Predicate<AstNode> predicate)
Returns new selection, which contains elements of this selection that satisfy a predicate.


size

int size()
Returns the number of elements in this selection.

Returns:
the number of elements in this selection

get

AstNode get(int index)
Returns the element at the specified position in this selection.

Parameters:
index - index of the element to return
Returns:
the element at the specified position in this selection
Throws:
IndexOutOfBoundsException - if the index is out of range (index < 0 || index >= size())

iterator

Iterator<AstNode> iterator()
Returns an iterator over the elements in this selection.

Specified by:
iterator in interface Iterable<AstNode>
Returns:
an iterator over the elements in this selection


Copyright © 2009-2014 SonarSource. All Rights Reserved.