Class FieldAccess


  • public class FieldAccess
    extends Expression
    Field access expression AST node type.
     FieldAccess:
                    Expression . Identifier
     

    Note that there are several kinds of expressions that resemble field access expressions: qualified names, this expressions, and super field access expressions. The following guidelines help with correct usage:

    • An expression like "foo.this" can only be represented as a this expression (ThisExpression) containing a simple name. "this" is a keyword, and therefore invalid as an identifier.
    • An expression like "this.foo" can only be represented as a field access expression (FieldAccess) containing a this expression and a simple name. Again, this is because "this" is a keyword, and therefore invalid as an identifier.
    • An expression with "super" can only be represented as a super field access expression (SuperFieldAccess). "super" is a also keyword, and therefore invalid as an identifier.
    • An expression like "foo.bar" can be represented either as a qualified name (QualifiedName) or as a field access expression (FieldAccess) containing simple names. Either is acceptable, and there is no way to choose between them without information about what the names resolve to (ASTParser may return either).
    • Other expressions ending in an identifier, such as "foo().bar" can only be represented as field access expressions (FieldAccess).

    Since:
    2.0
    See Also:
    QualifiedName, ThisExpression, SuperFieldAccess
    Restriction:
    This class is not intended to be instantiated by clients.
    • Field Detail

      • EXPRESSION_PROPERTY

        public static final ChildPropertyDescriptor EXPRESSION_PROPERTY
        The "expression" structural property of this node type (child type: Expression).
        Since:
        3.0
    • Method Detail

      • propertyDescriptors

        public static List propertyDescriptors​(int apiLevel)
        Returns a list of structural property descriptors for this node type. Clients must not modify the result.
        Parameters:
        apiLevel - the API level; one of the AST.JLS* constants
        Returns:
        a list of property descriptors (element type: StructuralPropertyDescriptor)
        Since:
        3.0
      • getExpression

        public Expression getExpression()
        Returns the expression of this field access expression.
        Returns:
        the expression node
      • setExpression

        public void setExpression​(Expression expression)
        Sets the expression of this field access expression.
        Parameters:
        expression - the new expression
        Throws:
        IllegalArgumentException - if:
        • the node belongs to a different AST
        • the node already has a parent
        • a cycle in would be created
      • getName

        public SimpleName getName()
        Returns the name of the field accessed in this field access expression.
        Returns:
        the field name
      • setName

        public void setName​(SimpleName fieldName)
        Sets the name of the field accessed in this field access expression.
        Parameters:
        fieldName - the field name
        Throws:
        IllegalArgumentException - if:
        • the node belongs to a different AST
        • the node already has a parent
      • resolveFieldBinding

        public IVariableBinding resolveFieldBinding()
        Resolves and returns the binding for the field accessed by this expression.

        Note that bindings are generally unavailable unless requested when the AST is being built.

        Returns:
        the variable binding, or null if the binding cannot be resolved
        Since:
        3.0