Class ObjectCreationNode
java.lang.Object
org.checkerframework.dataflow.cfg.node.Node
org.checkerframework.dataflow.cfg.node.ObjectCreationNode
- All Implemented Interfaces:
org.plumelib.util.UniqueId
A node for a new object creation.
new typeToInstantiate(arg1, arg2, ...) enclosingExpression.new typeToInstantiate(arg1, arg2, ...) enclosingExpression.new <Ts>typeToInstantiate(arg1, arg2, ...)
We use the term "typeToInstantiate" to represent what is called the "identifier" in NewClassTree
and what is called "ClassOrInterfaceTypeToInstantiate" in the
"ClassInstanceCreationExpression" in the JLS. The former term "identifier" is misleading, as this
can be a type with type arguments. The latter term "ClassOrInterfaceTypeToInstantiate" is rather
long and we shortened it to "typeToInstantiate".
Class type arguments can be accessed through the "typeToInstantiate" node. To access
constructor type arguments one needs to use the NewClassTree
.
-
Field Summary
Modifier and TypeFieldDescriptionThe arguments of the object creation.protected final @Nullable ClassDeclarationNode
Class body for anonymous classes, otherwise null.The enclosing expression of the object creation or null.protected final NewClassTree
The tree for the object creation.protected final Node
The type to instantiate node of the object creation. -
Constructor Summary
ConstructorDescriptionObjectCreationNode
(NewClassTree tree, @Nullable Node enclosingExpr, Node typeToInstantiate, List<Node> arguments, @Nullable ClassDeclarationNode classbody) Constructs aObjectCreationNode
. -
Method Summary
Modifier and TypeMethodDescription<R,
P> R accept
(NodeVisitor<R, P> visitor, P p) Accept method of the visitor pattern.boolean
getArgument
(int i) Returns the i-th explicit argument to the object creation.Returns the explicit arguments to the object creation.Returns the classbody.Deprecated.Returns the enclosing expression node, which only exists if it is an inner class instantiation.getTree()
Returns theTree
in the abstract syntax tree, ornull
if no corresponding tree exists.Returns the typeToInstantiate node.int
hashCode()
toString()
Methods inherited from class org.checkerframework.dataflow.cfg.node.Node
getBlock, getInSource, getTransitiveOperands, getType, getUid, isLValue, nodeCollectionToString, setBlock, setInSource, setLValue, toStringDebug
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.plumelib.util.UniqueId
getClassAndUid
-
Field Details
-
tree
The tree for the object creation. -
enclosingExpression
The enclosing expression of the object creation or null. -
typeToInstantiate
The type to instantiate node of the object creation. A non-generic typeToInstantiate node will refer to aClassNameNode
, while a generic typeToInstantiate node will refer to aParameterizedTypeNode
. -
arguments
The arguments of the object creation. -
classbody
Class body for anonymous classes, otherwise null.
-
-
Constructor Details
-
ObjectCreationNode
public ObjectCreationNode(NewClassTree tree, @Nullable Node enclosingExpr, Node typeToInstantiate, List<Node> arguments, @Nullable ClassDeclarationNode classbody) Constructs aObjectCreationNode
.- Parameters:
tree
- the NewClassTreeenclosingExpr
- the enclosing expression Node if it exists, or nulltypeToInstantiate
- the typeToInstantiate nodearguments
- the passed argumentsclassbody
- the ClassDeclarationNode
-
-
Method Details
-
getConstructor
Deprecated.Returns the constructor node.- Returns:
- the constructor node
-
getTypeToInstantiate
Returns the typeToInstantiate node. A non-generic typeToInstantiate node can refer to aClassNameNode
, while a generic typeToInstantiate node can refer to aParameterizedTypeNode
.- Returns:
- the typeToInstantiate node
-
getArguments
Returns the explicit arguments to the object creation.- Returns:
- the arguments
-
getArgument
Returns the i-th explicit argument to the object creation.- Parameters:
i
- the index of the argument- Returns:
- the argument
-
getEnclosingExpression
Returns the enclosing expression node, which only exists if it is an inner class instantiation.- Returns:
- the enclosing type expression node
-
getClassBody
Returns the classbody.- Returns:
- the classbody
-
getTree
Description copied from class:Node
Returns theTree
in the abstract syntax tree, ornull
if no corresponding tree exists. For instance, this is the case for anImplicitThisNode
. -
accept
Description copied from class:Node
Accept method of the visitor pattern. -
toString
-
equals
-
hashCode
-
getOperands
Description copied from class:Node
- Specified by:
getOperands
in classNode
- Returns:
- a collection containing all of the operand
Node
s of thisNode
-
getTypeToInstantiate()