edu.mit.ai.psg.traveler.jevaHooks
Class TraceConstructsEvalHook

java.lang.Object
  |
  +--edu.mit.ai.psg.jeva.JevaVisitorBase
        |
        +--edu.mit.ai.psg.traveler.jevaHooks.TraceConstructsEvalHook

public class TraceConstructsEvalHook
extends JevaVisitorBase

A Jeva EvalHook which calls Trace methods to record method call and instance creation expressions, and records activities which use interpreted synchronized methods and blocks in the biography for the synchronizing object.

See Also:
EvalMethods, Trace

Field Summary
static Map invokedMethodCache
          map class -> (map methodSignature -> method)
 
Constructor Summary
TraceConstructsEvalHook()
           
 
Method Summary
static Method findInvokedCompiledMethod(Object target, IMethod iMethodSignature)
          returns null if interpreted method is invoked, else returns compiled method that is invoked for target (may override compile time signature)
static void main(String[] arguments)
          Given a class name for a class in classpath, runs its public static void main(...) method with a TraceCallsEvalHook.
 Object visit(IJevaNode node, Object data)
          default -- do nothing
 Object visit(JNDConstructorDeclaration node, Object data)
          Trace calls received by interpreted constructors.
 Object visit(JNDMethodDeclaration node, Object data)
          Trace calls received by interpreted methods.
 Object visit(JNEInstanceCreationExpression node, Object data)
          Trace calls to compiled constructors.
 Object visit(JNEMethodInvocationExpression node, Object data)
          Trace calls to compiled methods, (Calls to interpreted methods are traced by visit(JNDMethodDeclaration,Object)).
 Object visit(JNSSynchronizedStatement node, Object data)
          Trace entry and exit from synchronized blocks.
 
Methods inherited from class edu.mit.ai.psg.jeva.JevaVisitorBase
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

invokedMethodCache

public static Map invokedMethodCache
map class -> (map methodSignature -> method)
Constructor Detail

TraceConstructsEvalHook

public TraceConstructsEvalHook()
Method Detail

visit

public Object visit(IJevaNode node,
                    Object data)
default -- do nothing
Overrides:
visit in class JevaVisitorBase

visit

public Object visit(JNEMethodInvocationExpression node,
                    Object data)
Trace calls to compiled methods, (Calls to interpreted methods are traced by visit(JNDMethodDeclaration,Object)).
Overrides:
visit in class JevaVisitorBase

visit

public Object visit(JNDMethodDeclaration node,
                    Object data)
Trace calls received by interpreted methods. (Calls invoking compiled methods are traced by visit(JNEMethodInvocationExpression,Object)
Overrides:
visit in class JevaVisitorBase

visit

public Object visit(JNEInstanceCreationExpression node,
                    Object data)
Trace calls to compiled constructors. (calls received by interpreted constructors are recorded by visit(JNDConstructorDeclaration,Object).
Overrides:
visit in class JevaVisitorBase

visit

public Object visit(JNDConstructorDeclaration node,
                    Object data)
Trace calls received by interpreted constructors. (Calls invoking compiled methods are traced by visit(JNEInstanceCreationExpression,Object)
Overrides:
visit in class JevaVisitorBase

visit

public Object visit(JNSSynchronizedStatement node,
                    Object data)
Trace entry and exit from synchronized blocks.
Overrides:
visit in class JevaVisitorBase

findInvokedCompiledMethod

public static Method findInvokedCompiledMethod(Object target,
                                               IMethod iMethodSignature)
returns null if interpreted method is invoked, else returns compiled method that is invoked for target (may override compile time signature)

main

public static void main(String[] arguments)
                 throws FileNotFoundException
Given a class name for a class in classpath, runs its public static void main(...) method with a TraceCallsEvalHook. Jeva will run compiled .class file if it exists, so delete it first.
See Also:
EvalMethods

Copyright (c) 1996-1999
Massachusetts Institute of Technology

Feedback: jeva-feedback@ai.mit.edu