org.eclipse.wst.jsdt.core.dom
Class ChildListPropertyDescriptor

java.lang.Object
  extended by org.eclipse.wst.jsdt.core.dom.StructuralPropertyDescriptor
      extended by org.eclipse.wst.jsdt.core.dom.ChildListPropertyDescriptor

public final class ChildListPropertyDescriptor
extends StructuralPropertyDescriptor

Descriptor for a child list property of an AST node. A child list property is one whose value is a list of ASTNode. Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.


Method Summary
 boolean cycleRisk()
          Returns whether this property is vulnerable to cycles.
 java.lang.Class getElementType()
          Returns the element type of this list property.
 
Methods inherited from class org.eclipse.wst.jsdt.core.dom.StructuralPropertyDescriptor
getId, getNodeClass, isChildListProperty, isChildProperty, isSimpleProperty, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

getElementType

public final java.lang.Class getElementType()
Returns the element type of this list property.

For example, for a node type like JavaScriptUnit, the "imports" property returns ImportDeclaration.class.

Returns:
the element type of the property

cycleRisk

public final boolean cycleRisk()
Returns whether this property is vulnerable to cycles.

A property is vulnerable to cycles if a node of the owning type (that is, the type that owns this property) could legally appear in the AST subtree below this property. For example, the body property of a FunctionDeclaration node admits a body which might include statement that embeds another FunctionDeclaration node. On the other hand, the name property of a FunctionDeclaration node admits only names, and thereby excludes another FunctionDeclaration node.

Returns:
true if cycles are possible, and false if cycles are impossible