Class PropertyExpression

All Implemented Interfaces:
GroovydocHolder<AnnotatedNode>, NodeMetaDataHandler
Direct Known Subclasses:
AttributeExpression

public class PropertyExpression extends Expression
Represents a property access such as the expression "foo.bar".
  • Constructor Details

    • PropertyExpression

      public PropertyExpression(Expression objectExpression, String propertyName)
    • PropertyExpression

      public PropertyExpression(Expression objectExpression, Expression property)
    • PropertyExpression

      public PropertyExpression(Expression objectExpression, Expression property, boolean safe)
  • Method Details

    • 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)
    • 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
    • getObjectExpression

      public Expression getObjectExpression()
    • setObjectExpression

      public void setObjectExpression(Expression objectExpression)
    • getProperty

      public Expression getProperty()
    • getPropertyAsString

      public String getPropertyAsString()
    • 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
    • isDynamic

      public boolean isDynamic()
    • isImplicitThis

      public boolean isImplicitThis()
    • setImplicitThis

      public void setImplicitThis(boolean implicitThis)
    • isSafe

      public boolean isSafe()
      Returns:
      is this a safe navigation, i.e. if true then if the source object is null then this navigation will return null
    • isSpreadSafe

      public boolean isSpreadSafe()
    • setSpreadSafe

      public void setSpreadSafe(boolean spreadSafe)
    • isStatic

      public boolean isStatic()
    • setStatic

      public void setStatic(boolean isStatic)
    • toString

      public String toString()
      Overrides:
      toString in class Object