net.walend.cricketcage
aspect GeneratesCalls

java.lang.Object
  |
  +--net.walend.cricketcage.GeneratesCalls
Direct Known Subclasses or Subaspects:
GeneratesCallsInTest

public abstract aspect GeneratesCalls
extends java.lang.Object
issingleton()
dominated by GeneratesCallsInTest

A class to capture calls that might change the state of the system.

Author:
David Walend david@walend.net

Pointcut Summary
  constructor()
          Constructors that are top-of-stack calls.
  getMember()
           
  method()
          Methods that are top-of-stack calls.
  outside()
          Defines all the code that could call into the system state cage.
  setMember()
           
  topOfStack()
          A point cut to define the top of a call stack.
 
Advice Summary
after()
           
after()
           
after()
           
after()
           
after()
           
after()
           
 
Field Summary
private  int counter
           
private  IdentityHashMap instancesToClasses
           
private  IdentityHashMap instancesToVariables
           
 
Method Summary
private  void addThrowables(JoinPoint joinPoint)
           
private  String argToString(Object arg)
           
private  String argsToString(JoinPoint joinPoint)
           
private  boolean containsNameForVariable(Object ob)
           
private  void createConstructorCall(JoinPoint joinPoint, Object result)
           
private  void createConstructorCallWithThrowable(JoinPoint joinPoint, Throwable thrown)
           
private  void createGet(JoinPoint joinPoint, Object result)
           
private  String createLHS(JoinPoint joinPoint, Object ob)
           
private  String createLHSComment(JoinPoint joinPoint, Object ob)
           
private  void createMethodCall(JoinPoint joinPoint, Object result)
           
private  void createMethodCallWithThrowable(JoinPoint joinPoint, Throwable thrown)
           
private  void createSet(JoinPoint joinPoint, Object result)
           
private  String createVariableName(Object ob)
           
private  void endTryCatch(Throwable thrown)
           
private  String getShortClassName(Class cla)
           
private  Class getVariableClass(Object ob)
           
private  String getVariableName(Object ob)
           
private  boolean isStatic(JoinPoint joinPoint)
           
private  void putVariable(Object ob, Class clas)
           
private  void startTryCatch()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Pointcut Detail

constructor

public constructor()
Constructors that are top-of-stack calls.

getMember

public getMember()

method

public method()
Methods that are top-of-stack calls.

outside

public abstract outside()
Defines all the code that could call into the system state cage. Idealy, this would be target(*). It should include all code that can call into the api you care about, but should leave out calls between parts of the system you don't care about. I usually include JUnit and my own tests if I'm examining a junit test, or parts of the awt and swing libraries for user interface code.

setMember

public setMember()

topOfStack

public topOfStack()
A point cut to define the top of a call stack. This is basically the cage boundary.
Advice Detail

after #1

after() returning  (Object)

after #2

after() returning  (Object)

after #3

after() returning  (Object)

after #4

after() returning  (Object)

after #5

after() throwing  (Throwable)

after #6

after() throwing  (Throwable)
Field Detail

counter

private int counter

instancesToClasses

private IdentityHashMap instancesToClasses

instancesToVariables

private IdentityHashMap instancesToVariables
Method Detail

addThrowables

private void addThrowables(JoinPoint joinPoint)

argToString

private String argToString(Object arg)

argsToString

private String argsToString(JoinPoint joinPoint)

containsNameForVariable

private boolean containsNameForVariable(Object ob)

createConstructorCall

private void createConstructorCall(JoinPoint joinPoint,
                                   Object result)

createConstructorCallWithThrowable

private void createConstructorCallWithThrowable(JoinPoint joinPoint,
                                                Throwable thrown)

createGet

private void createGet(JoinPoint joinPoint,
                       Object result)

createLHS

private String createLHS(JoinPoint joinPoint,
                         Object ob)

createLHSComment

private String createLHSComment(JoinPoint joinPoint,
                                Object ob)

createMethodCall

private void createMethodCall(JoinPoint joinPoint,
                              Object result)

createMethodCallWithThrowable

private void createMethodCallWithThrowable(JoinPoint joinPoint,
                                           Throwable thrown)

createSet

private void createSet(JoinPoint joinPoint,
                       Object result)

createVariableName

private String createVariableName(Object ob)

endTryCatch

private void endTryCatch(Throwable thrown)

getShortClassName

private String getShortClassName(Class cla)

getVariableClass

private Class getVariableClass(Object ob)

getVariableName

private String getVariableName(Object ob)

isStatic

private boolean isStatic(JoinPoint joinPoint)

putVariable

private void putVariable(Object ob,
                         Class clas)

startTryCatch

private void startTryCatch()


Copyright (c) 2000, 2001, 2002, David Walend