Class FieldExpression

All Implemented Interfaces:
GroovydocHolder<AnnotatedNode>, NodeMetaDataHandler

public class FieldExpression extends Expression
Represents a field access such as the expression "this.foo".
  • Constructor Details

    • FieldExpression

      public FieldExpression(FieldNode field)
  • Method Details

    • visit

      public void visit(GroovyCodeVisitor visitor)
      Description copied from class: ASTNode
      Accepts a code visitor for AST traversal and transformation. Subclasses must implement this method to support visitor pattern-based processing. The visitor pattern enables decoupling of AST structure from processing logic.
      Overrides:
      visit in class ASTNode
      Parameters:
      visitor - the GroovyCodeVisitor to process this node
    • transformExpression

      public Expression transformExpression(ExpressionTransformer transformer)
      Description copied from class: Expression
      Transforms this expression and any nested expressions according to the provided transformer. This method is called during AST transformation phases and must recursively transform any nested expressions to support full AST tree transformation.
      Specified by:
      transformExpression in class Expression
      Parameters:
      transformer - the ExpressionTransformer to apply
      Returns:
      a transformed copy of this expression (or this expression itself if no changes are needed)
    • getField

      public FieldNode getField()
    • getFieldName

      public String getFieldName()
    • getText

      public String getText()
      Description copied from class: ASTNode
      Returns a human-readable text representation of this AST node. Used for debugging and error messages. Default implementation returns a message indicating the representation is not yet implemented for this node type.
      Overrides:
      getText in class ASTNode
      Returns:
      text representation of this node, or placeholder for unimplemented types
    • getType

      public ClassNode getType()
      Description copied from class: Expression
      Returns the type of this expression. If the type has not been explicitly set, this method returns a dynamic type to support dynamic typing.
      Overrides:
      getType in class Expression
      Returns:
      the ClassNode representing this expression's type
    • setType

      public void setType(ClassNode type)
      Description copied from class: Expression
      Sets the type information for this expression. Used during type checking and compilation phases to associate a specific type with this expression result.
      Overrides:
      setType in class Expression
      Parameters:
      type - the ClassNode representing this expression's type
    • isDynamicTyped

      public boolean isDynamicTyped()
    • isUseReferenceDirectly

      public boolean isUseReferenceDirectly()
    • setUseReferenceDirectly

      public void setUseReferenceDirectly(boolean useRef)
    • toString

      public String toString()
      Overrides:
      toString in class Object