Package org.codehaus.groovy.ast.expr
Class ConstructorCallExpression
java.lang.Object
org.codehaus.groovy.ast.ASTNode
org.codehaus.groovy.ast.AnnotatedNode
org.codehaus.groovy.ast.expr.Expression
org.codehaus.groovy.ast.expr.ConstructorCallExpression
- All Implemented Interfaces:
GroovydocHolder<AnnotatedNode>,MethodCall,NodeMetaDataHandler
Represents a constructor call expression.
This includes regular object construction (e.g.,
new MyClass(args)),
as well as special constructor calls like this() and super() calls within constructors.
The constructor is identified by the type being constructed, and the arguments are wrapped in a TupleExpression.
May optionally use an anonymous inner class.-
Field Summary
Fields inherited from class org.codehaus.groovy.ast.expr.Expression
EMPTY_ARRAYFields inherited from interface groovy.lang.groovydoc.GroovydocHolder
DOC_COMMENT -
Constructor Summary
ConstructorsConstructorDescriptionConstructorCallExpression(ClassNode type, Expression arguments) Creates a constructor call expression. -
Method Summary
Modifier and TypeMethodDescriptionReturns the constructor arguments.getText()Returns a human-readable text representation of this AST node.booleanIndicates whether this is a special constructor call (this()orsuper()).booleanIndicates whether this is asuper()constructor call.booleanIndicates whether this is athis()constructor call.booleanIndicates whether this constructor call uses an anonymous inner class.voidsetUsingAnonymousInnerClass(boolean usage) Sets whether this constructor call uses an anonymous inner class.toString()transformExpression(ExpressionTransformer transformer) Transforms this expression and any nested expressions according to the provided transformer.voidvisit(GroovyCodeVisitor visitor) Accepts a code visitor for AST traversal and transformation.Methods inherited from class org.codehaus.groovy.ast.expr.Expression
getType, setType, transformExpressions, transformExpressionsMethods inherited from class org.codehaus.groovy.ast.AnnotatedNode
addAnnotation, addAnnotation, addAnnotations, getAnnotations, getAnnotations, getDeclaringClass, getGroovydoc, getInstance, hasNoRealSourcePosition, isSynthetic, setDeclaringClass, setHasNoRealSourcePosition, setSyntheticMethods inherited from class org.codehaus.groovy.ast.ASTNode
copyNodeMetaData, getColumnNumber, getLastColumnNumber, getLastLineNumber, getLineNumber, getMetaDataMap, setColumnNumber, setLastColumnNumber, setLastLineNumber, setLineNumber, setMetaDataMap, setSourcePositionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.codehaus.groovy.ast.NodeMetaDataHandler
copyNodeMetaData, getNodeMetaData, getNodeMetaData, getNodeMetaData, newMetaDataMap, putNodeMetaData, removeNodeMetaData, setNodeMetaData
-
Constructor Details
-
ConstructorCallExpression
Creates a constructor call expression. Arguments are automatically wrapped in aTupleExpressionif not already.- Parameters:
type- the type being constructed (non-null), orClassNode.THIS/ClassNode.SUPERfor special callsarguments- the constructor arguments (may be a single expression or already aTupleExpression)
-
-
Method Details
-
visit
Description copied from class:ASTNodeAccepts 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:
visitin classASTNode- Parameters:
visitor- theGroovyCodeVisitorto process this node
-
transformExpression
Description copied from class:ExpressionTransforms 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:
transformExpressionin classExpression- Parameters:
transformer- theExpressionTransformerto apply- Returns:
- a transformed copy of this expression (or this expression itself if no changes are needed)
-
getReceiver
- Specified by:
getReceiverin interfaceMethodCall
-
getMethodAsString
- Specified by:
getMethodAsStringin interfaceMethodCall
-
getArguments
Returns the constructor arguments.- Specified by:
getArgumentsin interfaceMethodCall- Returns:
- a
TupleExpressioncontaining the arguments
-
getText
Description copied from class:ASTNodeReturns 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.- Specified by:
getTextin interfaceMethodCall- Overrides:
getTextin classASTNode- Returns:
- text representation of this node, or placeholder for unimplemented types
-
isSpecialCall
public boolean isSpecialCall()Indicates whether this is a special constructor call (this()orsuper()).- Returns:
- true if this is a
this()orsuper()call, false for regular constructor calls
-
isSuperCall
public boolean isSuperCall()Indicates whether this is asuper()constructor call.- Returns:
- true if this calls the superclass constructor, false otherwise
-
isThisCall
public boolean isThisCall()Indicates whether this is athis()constructor call.- Returns:
- true if this calls another constructor in the same class, false otherwise
-
isUsingAnonymousInnerClass
public boolean isUsingAnonymousInnerClass()Indicates whether this constructor call uses an anonymous inner class.- Returns:
- true if an anonymous inner class is being created, false for regular construction
-
setUsingAnonymousInnerClass
public void setUsingAnonymousInnerClass(boolean usage) Sets whether this constructor call uses an anonymous inner class.- Parameters:
usage- true if an anonymous inner class is being used, false otherwise
-
toString
-