public class OperatorsInstrumenter extends ClassInstumenter
classRef, session| Constructor and Description |
|---|
OperatorsInstrumenter(InstrumentationSession session,
org.codehaus.groovy.ast.ClassNode classRef,
BranchInstrumenter branchInstrumenter) |
| Modifier and Type | Method and Description |
|---|---|
protected org.codehaus.groovy.ast.MethodNode |
createSafeEvalMethod(org.codehaus.groovy.ast.ClassNode clazz,
org.codehaus.groovy.ast.ClassNode evalReturnType,
String safeEvalMethodName) |
protected void |
createSafeEvalMethodIfNecessary(org.codehaus.groovy.ast.ClassNode evalReturnType,
org.codehaus.groovy.ast.ClassNode currentClassNode)
Create safeEval_X() method with a proper type signature if it does not exist and add to hashmap.
|
protected String |
getSafeEvalMethodName(org.codehaus.groovy.ast.ClassNode classNode)
e.g.
|
Map<String,org.codehaus.groovy.ast.MethodNode> |
getSafeEvalMethods() |
protected org.codehaus.groovy.ast.expr.StaticMethodCallExpression |
newSafeEval(BranchInfo branch,
org.codehaus.groovy.ast.expr.Expression objectExpression) |
protected String |
sanitizeClassName(org.codehaus.groovy.ast.ClassNode clazz) |
Pair<org.codehaus.groovy.ast.expr.ElvisOperatorExpression,Boolean> |
transformElvis(org.codehaus.groovy.ast.expr.ElvisOperatorExpression elvis,
ContextSet currentMethodContext) |
Pair<org.codehaus.groovy.ast.expr.AttributeExpression,Boolean> |
transformSafeAttributeExpression(org.codehaus.groovy.ast.expr.AttributeExpression attributeExpression,
org.codehaus.groovy.ast.ClassNode currentClassNode,
ContextSet currentMethodContext) |
Pair<org.codehaus.groovy.ast.expr.MethodCallExpression,Boolean> |
transformSafeMethodCall(org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression,
org.codehaus.groovy.ast.ClassNode currentClassNode,
ContextSet currentMethodContext) |
Pair<org.codehaus.groovy.ast.expr.PropertyExpression,Boolean> |
transformSafeProperty(org.codehaus.groovy.ast.expr.PropertyExpression propertyExpression,
org.codehaus.groovy.ast.ClassNode currentClassNode,
ContextSet currentMethodContext) |
org.codehaus.groovy.ast.expr.TernaryExpression |
transformTernary(org.codehaus.groovy.ast.expr.TernaryExpression ternary,
ContextSet currentMethodContext) |
countExpressionRegionpublic OperatorsInstrumenter(@NotNull
InstrumentationSession session,
@NotNull
org.codehaus.groovy.ast.ClassNode classRef,
@NotNull
BranchInstrumenter branchInstrumenter)
@NotNull public Map<String,org.codehaus.groovy.ast.MethodNode> getSafeEvalMethods()
@NotNull public Pair<org.codehaus.groovy.ast.expr.ElvisOperatorExpression,Boolean> transformElvis(@NotNull org.codehaus.groovy.ast.expr.ElvisOperatorExpression elvis, @NotNull ContextSet currentMethodContext)
@NotNull public Pair<org.codehaus.groovy.ast.expr.AttributeExpression,Boolean> transformSafeAttributeExpression(@NotNull org.codehaus.groovy.ast.expr.AttributeExpression attributeExpression, @NotNull org.codehaus.groovy.ast.ClassNode currentClassNode, @NotNull ContextSet currentMethodContext)
@NotNull public Pair<org.codehaus.groovy.ast.expr.MethodCallExpression,Boolean> transformSafeMethodCall(@NotNull org.codehaus.groovy.ast.expr.MethodCallExpression methodCallExpression, @NotNull org.codehaus.groovy.ast.ClassNode currentClassNode, @NotNull ContextSet currentMethodContext)
@NotNull public Pair<org.codehaus.groovy.ast.expr.PropertyExpression,Boolean> transformSafeProperty(@NotNull org.codehaus.groovy.ast.expr.PropertyExpression propertyExpression, @NotNull org.codehaus.groovy.ast.ClassNode currentClassNode, @NotNull ContextSet currentMethodContext)
@NotNull
public org.codehaus.groovy.ast.expr.TernaryExpression transformTernary(@NotNull
org.codehaus.groovy.ast.expr.TernaryExpression ternary,
@NotNull
ContextSet currentMethodContext)
@NotNull protected String sanitizeClassName(@NotNull org.codehaus.groovy.ast.ClassNode clazz)
@NotNull protected String getSafeEvalMethodName(@NotNull org.codehaus.groovy.ast.ClassNode classNode)
protected void createSafeEvalMethodIfNecessary(@NotNull
org.codehaus.groovy.ast.ClassNode evalReturnType,
@NotNull
org.codehaus.groovy.ast.ClassNode currentClassNode)
evalReturnType - what type eval expression has so that our wrapper should return the same type@NotNull
protected org.codehaus.groovy.ast.MethodNode createSafeEvalMethod(@NotNull
org.codehaus.groovy.ast.ClassNode clazz,
@NotNull
org.codehaus.groovy.ast.ClassNode evalReturnType,
@NotNull
String safeEvalMethodName)
@NotNull
protected org.codehaus.groovy.ast.expr.StaticMethodCallExpression newSafeEval(@NotNull
BranchInfo branch,
@NotNull
org.codehaus.groovy.ast.expr.Expression objectExpression)
Copyright © 2024 OpenClover.org. All rights reserved.