We can retrieve the children as an ASTNode List using the API of :
ASTNode.getStructureProperty(StructuralPropertyDescriptor property)
It returns the value of the given structural property for this node. The value returned depends on the kind of property:
SimplePropertyDescriptor - the value of the given simple property, or null if none; primitive values are "boxed"
ChildPropertyDescriptor - the child node (type ASTNode), or null if none
ChildListPropertyDescriptor - the list (element type: ASTNode)
However, the ChildListPropertyDescripor
is not intended to be instantiated by clients. You can refer to my code to get the list of children:
public static List<ASTNode> getChildren(ASTNode node) {
List<ASTNode> children = new ArrayList<ASTNode>();
List list = node.structuralPropertiesForType();
for (int i = 0; i < list.size(); i++) {
Object child = node.getStructuralProperty((StructuralPropertyDescriptor)list.get(i));
if (child instanceof ASTNode) {
children.add((ASTNode) child);
}
}
return children;
}