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:
Restriction:
This class is not intended to be instantiated by clients.
  • Field Details

    • EXPRESSION_PROPERTY

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

      public static final ChildPropertyDescriptor NAME_PROPERTY
      The "name" structural property of this node type (child type: SimpleName).
      Since:
      3.0
  • Method Details

    • 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