Top Description Inners Fields Constructors Methods
org.springframework.aop.aspectj

pack-priv Class RuntimeTestWalker

extends Object
Class Inheritance
Imports
java.lang.reflect.Field, org.aspectj.weaver.ReferenceType, .ReferenceTypeDelegate, .ResolvedType, org.aspectj.weaver.ast.And, .Call, .FieldGetCall, .HasAnnotation, .ITestVisitor, .Instanceof, .Literal, .Not, .Or, .Test, org.aspectj.weaver.internal.tools.MatchingContextBasedTest, org.aspectj.weaver.reflect.ReflectionBasedReferenceTypeDelegate, .ReflectionVar, .ShadowMatchImpl, org.aspectj.weaver.tools.ShadowMatch, org.springframework.lang.Nullable, org.springframework.util.ClassUtils, .ReflectionUtils

This class encapsulates some AspectJ internal knowledge that should be pushed back into the AspectJ project in a future release.

It relies on implementation specific knowledge in AspectJ to break encapsulation and do something AspectJ was not designed to do: query the types of runtime tests that will be performed. The code here should migrate to ShadowMatch.getVariablesInvolvedInRuntimeTest() or some similar operation.

See Bug 151593

Authors
Adrian Colyer, Ramnivas Laddad
Since
2.0

Nested and Inner Type Summary

Modifier and TypeClass and Description
private abstract static class
private static class
private static class
RuntimeTestWalker.TargetInstanceOfResidueTestVisitor

Check if residue of target(TYPE) kind.

private static class
private static class
RuntimeTestWalker.ThisInstanceOfResidueTestVisitor

Check if residue of this(TYPE) kind.

Field Summary

Modifier and TypeField and Description
private static final Field
private static final Field
private final Test
private static final Field

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public boolean
testsSubtypeSensitiveVars()

If the test uses any of the this, target, at_this, at_target, and at_annotation vars, then it tests subtype sensitive vars.

public boolean
public boolean
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

myClassFieldback to summary
private static final Field myClassField
residualTestFieldback to summary
private static final Field residualTestField
runtimeTestback to summary
private final Test runtimeTest
Annotations
@Nullable
varTypeFieldback to summary
private static final Field varTypeField

Constructor Detail

RuntimeTestWalkerback to summary
public RuntimeTestWalker(ShadowMatch shadowMatch)

Method Detail

testsSubtypeSensitiveVarsback to summary
public boolean testsSubtypeSensitiveVars()

If the test uses any of the this, target, at_this, at_target, and at_annotation vars, then it tests subtype sensitive vars.

testTargetInstanceOfResidueback to summary
public boolean testTargetInstanceOfResidue(Class<?> targetClass)
testThisInstanceOfResidueback to summary
public boolean testThisInstanceOfResidue(Class<?> thisClass)
org.springframework.aop.aspectj back to summary

private abstract Class RuntimeTestWalker.InstanceOfResidueTestVisitor

extends TestVisitorAdapter
Class Inheritance
Known Direct Subclasses
org.springframework.aop.aspectj.RuntimeTestWalker.TargetInstanceOfResidueTestVisitor, org.springframework.aop.aspectj.RuntimeTestWalker.ThisInstanceOfResidueTestVisitor

Field Summary

Modifier and TypeField and Description
private final Class<?>
private boolean
private final int
Inherited from org.springframework.aop.aspectj.RuntimeTestWalker.TestVisitorAdapter:
AT_ANNOTATION_VARAT_TARGET_VARAT_THIS_VARTARGET_VARTHIS_VAR

Constructor Summary

AccessConstructor and Description
public
InstanceOfResidueTestVisitor(Class<?> matchClass, boolean defaultMatches, int matchVarType)

Method Summary

Modifier and TypeMethod and Description
public boolean
public void
Inherited from org.springframework.aop.aspectj.RuntimeTestWalker.TestVisitorAdapter:
getVarTypevisitvisitvisitvisitvisitvisitvisitvisit

Field Detail

matchClassback to summary
private final Class<?> matchClass
matchesback to summary
private boolean matches
matchVarTypeback to summary
private final int matchVarType

Constructor Detail

InstanceOfResidueTestVisitorback to summary
public InstanceOfResidueTestVisitor(Class<?> matchClass, boolean defaultMatches, int matchVarType)

Method Detail

instanceOfMatchesback to summary
public boolean instanceOfMatches(Test test)
visitback to summary
public void visit(Instanceof i)

Overrides org.springframework.aop.aspectj.RuntimeTestWalker.TestVisitorAdapter.visit.

Implements org.aspectj.weaver.ast.ITestVisitor.visit.

Annotations
@Override
org.springframework.aop.aspectj back to summary

private Class RuntimeTestWalker.SubtypeSensitiveVarTypeTestVisitor

extends TestVisitorAdapter
Class Inheritance

Field Summary

Modifier and TypeField and Description
private final Object[]
private final Object
private boolean
private final Object
Inherited from org.springframework.aop.aspectj.RuntimeTestWalker.TestVisitorAdapter:
AT_ANNOTATION_VARAT_TARGET_VARAT_THIS_VARTARGET_VARTHIS_VAR

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public boolean
public void
public void
Inherited from org.springframework.aop.aspectj.RuntimeTestWalker.TestVisitorAdapter:
getVarTypevisitvisitvisitvisitvisitvisitvisit

Field Detail

argsObjsback to summary
private final Object[] argsObjs
targetObjback to summary
private final Object targetObj
testsSubtypeSensitiveVarsback to summary
private boolean testsSubtypeSensitiveVars
thisObjback to summary
private final Object thisObj

Constructor Detail

SubtypeSensitiveVarTypeTestVisitorback to summary
private SubtypeSensitiveVarTypeTestVisitor()

Method Detail

testsSubtypeSensitiveVarsback to summary
public boolean testsSubtypeSensitiveVars(Test aTest)
visitback to summary
public void visit(Instanceof i)

Overrides org.springframework.aop.aspectj.RuntimeTestWalker.TestVisitorAdapter.visit.

Implements org.aspectj.weaver.ast.ITestVisitor.visit.

Annotations
@Override
visitback to summary
public void visit(HasAnnotation hasAnn)

Overrides org.springframework.aop.aspectj.RuntimeTestWalker.TestVisitorAdapter.visit.

Implements org.aspectj.weaver.ast.ITestVisitor.visit.

Annotations
@Override
org.springframework.aop.aspectj back to summary

private Class RuntimeTestWalker.TargetInstanceOfResidueTestVisitor

extends InstanceOfResidueTestVisitor
Class Inheritance

Check if residue of target(TYPE) kind. See SPR-3783 for more details.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public boolean
Inherited from org.springframework.aop.aspectj.RuntimeTestWalker.InstanceOfResidueTestVisitor:
instanceOfMatchesvisit

Constructor Detail

TargetInstanceOfResidueTestVisitorback to summary
public TargetInstanceOfResidueTestVisitor(Class<?> targetClass)

Method Detail

targetInstanceOfMatchesback to summary
public boolean targetInstanceOfMatches(Test test)
org.springframework.aop.aspectj back to summary

private Class RuntimeTestWalker.TestVisitorAdapter

extends Object
implements ITestVisitor
Class Inheritance
  • java.lang.Object
  • org.springframework.aop.aspectj.RuntimeTestWalker.TestVisitorAdapter
All Implemented Interfaces
org.aspectj.weaver.ast.ITestVisitor
Known Direct Subclasses
org.springframework.aop.aspectj.RuntimeTestWalker.InstanceOfResidueTestVisitor, org.springframework.aop.aspectj.RuntimeTestWalker.SubtypeSensitiveVarTypeTestVisitor

Field Summary

Modifier and TypeField and Description
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
protected int
public void
public void
public void
public void
public void
public void
public void
public void
public void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

AT_ANNOTATION_VARback to summary
protected static final int AT_ANNOTATION_VAR
AT_TARGET_VARback to summary
protected static final int AT_TARGET_VAR
AT_THIS_VARback to summary
protected static final int AT_THIS_VAR
TARGET_VARback to summary
protected static final int TARGET_VAR
THIS_VARback to summary
protected static final int THIS_VAR

Constructor Detail

TestVisitorAdapterback to summary
private TestVisitorAdapter()

Method Detail

getVarTypeback to summary
protected int getVarType(ReflectionVar v)
visitback to summary
public void visit(And e)

Implements org.aspectj.weaver.ast.ITestVisitor.visit.

Annotations
@Override
visitback to summary
public void visit(Or e)

Implements org.aspectj.weaver.ast.ITestVisitor.visit.

Annotations
@Override
visitback to summary
public void visit(Not e)

Implements org.aspectj.weaver.ast.ITestVisitor.visit.

Annotations
@Override
visitback to summary
public void visit(Instanceof i)

Implements org.aspectj.weaver.ast.ITestVisitor.visit.

Annotations
@Override
visitback to summary
public void visit(Literal literal)

Implements org.aspectj.weaver.ast.ITestVisitor.visit.

Annotations
@Override
visitback to summary
public void visit(Call call)

Implements org.aspectj.weaver.ast.ITestVisitor.visit.

Annotations
@Override
visitback to summary
public void visit(FieldGetCall fieldGetCall)

Implements org.aspectj.weaver.ast.ITestVisitor.visit.

Annotations
@Override
visitback to summary
public void visit(HasAnnotation hasAnnotation)

Implements org.aspectj.weaver.ast.ITestVisitor.visit.

Annotations
@Override
visitback to summary
public void visit(MatchingContextBasedTest matchingContextTest)

Implements org.aspectj.weaver.ast.ITestVisitor.visit.

Annotations
@Override
org.springframework.aop.aspectj back to summary

private Class RuntimeTestWalker.ThisInstanceOfResidueTestVisitor

extends InstanceOfResidueTestVisitor
Class Inheritance

Check if residue of this(TYPE) kind. See SPR-2979 for more details.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public boolean
Inherited from org.springframework.aop.aspectj.RuntimeTestWalker.InstanceOfResidueTestVisitor:
instanceOfMatchesvisit

Constructor Detail

ThisInstanceOfResidueTestVisitorback to summary
public ThisInstanceOfResidueTestVisitor(Class<?> thisClass)

Method Detail

thisInstanceOfMatchesback to summary
public boolean thisInstanceOfMatches(Test test)