Class ChildPropertyDescriptor

    • Method Detail

      • getChildType

        public final Class getChildType()
        Returns the child type of this property.

        For example, for a node type like CompilationUnit, the "package" property returns PackageDeclaration.class.

        Returns:
        the child type of the property
      • isMandatory

        public final boolean isMandatory()
        Returns whether this property is mandatory. A property value is not allowed to be null if it is mandatory.
        Returns:
        true if the property is mandatory, and false if it is may be null
      • 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 MethodDeclaration node admits a body which might include statement that embeds another MethodDeclaration node. On the other hand, the name property of a MethodDeclaration node admits only names, and thereby excludes another MethodDeclaration node.

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