jmusic.jdi
Class JDIClassRunner

java.lang.Object
  extended by jmusic.jdi.JDIClassRunner
All Implemented Interfaces:
JDIHandler, JDIObservable

public class JDIClassRunner
extends java.lang.Object
implements JDIHandler, JDIObservable

This is the main top-level JDI simulator class. This class will take information about a class to be run and spawn off a JDI instance to run it. It is really a JDI wrapper around ClassRunner.

Author:
steppm

Constructor Summary
JDIClassRunner(java.lang.String classpath, java.lang.String annotation_script, java.lang.String classname, java.lang.String[] args)
          Constructor.
 
Method Summary
 void addClassPrepareObserver(JDIObserver observer, java.lang.String include_class_pattern)
           
 void addClassUnloadObserver(JDIObserver observer, java.lang.String include_class_pattern)
           
 void addExceptionObserver(JDIObserver observer, java.lang.String include_class_pattern)
           
 void addFieldAcessObserver(JDIObserver observer, java.lang.String include_class_pattern, java.lang.String include_field_pattern)
           
 void addFieldModifyObserver(JDIObserver observer, java.lang.String include_class_pattern, java.lang.String include_field_pattern)
           
 void addMethodEntryObserver(JDIObserver observer, java.lang.String include_class_pattern, java.lang.String include_method_pattern)
           
 void addMethodExitObserver(JDIObserver observer, java.lang.String include_class_pattern, java.lang.String include_method_pattern)
           
 void addThreadDeathObserver(JDIObserver observer)
           
 void addThreadStartObserver(JDIObserver observer)
           
 void begin()
          This is the method to start up the JDI VM.
 void closeConsole()
          Closes the console window, if any
 int getBlackBoardIntField(java.lang.String fieldname)
          This will retrieve the integer value from any static BlackBoard field.
 java.lang.String[] getBlackBoardIntFields()
           
 void handleEvent(com.sun.jdi.event.Event e)
          This class is also a JDIHandler, because it must deal with VMDeathEvents.
 void handleSTDERR(java.lang.String str)
          Does nothing
 void handleSTDOUT(java.lang.String str)
          Does nothing
 boolean isDead()
          Checks to see if this class is done running (dead).
 boolean isRunning()
          Checks if this class is still running.
 void kill()
          Kills the JDI JVM.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JDIClassRunner

public JDIClassRunner(java.lang.String classpath,
                      java.lang.String annotation_script,
                      java.lang.String classname,
                      java.lang.String[] args)
Constructor.

Parameters:
classpath - the classpath needed for the program, just as it would appear on the command line (use the right separator)
annotateScript - the filename of annotation script
evalScript - the filename of the evaluation script
classna---/m0oe - the name of the class to run
args - the command-line args for the program
Method Detail

begin

public void begin()
This is the method to start up the JDI VM. After this method is called, the program will begin running.


isRunning

public boolean isRunning()
Checks if this class is still running.

Returns:
true iff the JDI VM is still running

isDead

public boolean isDead()
Checks to see if this class is done running (dead). This class is unusable after it is dead.

Returns:
true iff this class is dead

kill

public void kill()
Kills the JDI JVM. This object will be invalid after this call completes.


closeConsole

public void closeConsole()
Closes the console window, if any


handleEvent

public void handleEvent(com.sun.jdi.event.Event e)
This class is also a JDIHandler, because it must deal with VMDeathEvents.

Specified by:
handleEvent in interface JDIHandler

handleSTDOUT

public void handleSTDOUT(java.lang.String str)
Does nothing

Specified by:
handleSTDOUT in interface JDIHandler

handleSTDERR

public void handleSTDERR(java.lang.String str)
Does nothing

Specified by:
handleSTDERR in interface JDIHandler

getBlackBoardIntField

public int getBlackBoardIntField(java.lang.String fieldname)
                          throws java.lang.Exception
This will retrieve the integer value from any static BlackBoard field. Ex: getBlackBoardIntField("invoke");

Throws:
java.lang.Exception

getBlackBoardIntFields

public java.lang.String[] getBlackBoardIntFields()
                                          throws java.lang.Exception
Throws:
java.lang.Exception

addThreadDeathObserver

public void addThreadDeathObserver(JDIObserver observer)

addThreadStartObserver

public void addThreadStartObserver(JDIObserver observer)

addMethodEntryObserver

public void addMethodEntryObserver(JDIObserver observer,
                                   java.lang.String include_class_pattern,
                                   java.lang.String include_method_pattern)
Specified by:
addMethodEntryObserver in interface JDIObservable

addMethodExitObserver

public void addMethodExitObserver(JDIObserver observer,
                                  java.lang.String include_class_pattern,
                                  java.lang.String include_method_pattern)
Specified by:
addMethodExitObserver in interface JDIObservable

addFieldAcessObserver

public void addFieldAcessObserver(JDIObserver observer,
                                  java.lang.String include_class_pattern,
                                  java.lang.String include_field_pattern)
Specified by:
addFieldAcessObserver in interface JDIObservable

addFieldModifyObserver

public void addFieldModifyObserver(JDIObserver observer,
                                   java.lang.String include_class_pattern,
                                   java.lang.String include_field_pattern)
Specified by:
addFieldModifyObserver in interface JDIObservable

addExceptionObserver

public void addExceptionObserver(JDIObserver observer,
                                 java.lang.String include_class_pattern)
Specified by:
addExceptionObserver in interface JDIObservable

addClassPrepareObserver

public void addClassPrepareObserver(JDIObserver observer,
                                    java.lang.String include_class_pattern)
Specified by:
addClassPrepareObserver in interface JDIObservable

addClassUnloadObserver

public void addClassUnloadObserver(JDIObserver observer,
                                   java.lang.String include_class_pattern)
Specified by:
addClassUnloadObserver in interface JDIObservable