jde.debugger.spec
Class MethodBreakpointSpec

java.lang.Object
  |
  +--jde.debugger.spec.EventRequestSpec
        |
        +--jde.debugger.spec.BreakpointSpec
              |
              +--jde.debugger.spec.MethodBreakpointSpec
All Implemented Interfaces:
Protocol

public class MethodBreakpointSpec
extends BreakpointSpec

MethodBreakpointSpec.java

Funnily, it seems this class actually supports setting breakpoints in a particular method of an arbitrary filename! since it's very weird, it's not supported. Let us know if you require such a feature...

Created: Thu Jul 15 15:52:45 1999

Since:
0.1
Author:
Amit Kumar

Field Summary
(package private)  java.util.List methodArgs
           
(package private)  java.lang.String methodName
           
 
Fields inherited from class jde.debugger.spec.EventRequestSpec
app, classExFilters, classFilters, expr, expressionKey, isResolved, myID, refSpec, request, specPropertyKey, suspendPolicy, thread, threadKey
 
Fields inherited from interface jde.debugger.Protocol
ATTACH_SHMEM, ATTACH_SOCKET, BR, BREAK, CANCEL_TRACE_CLASSES, CANCEL_TRACE_METHODS, CANCEL_TRACE_THREADS, CLEAR, COMMAND_ERROR, COMMAND_RESULT, CONNECTED_TO_VM, DEBUG, ERROR, EVALUATE, EVENT_BREAKPOINT_HIT, EVENT_CLASS_PREPARE, EVENT_CLASS_UNLOAD, EVENT_EXCEPTION, EVENT_METHOD_ENTRY, EVENT_METHOD_EXIT, EVENT_OTHER, EVENT_STEP_COMPLETED, EVENT_THREAD_DEATH, EVENT_THREAD_START, EVENT_VM_DEATH, EVENT_VM_DISCONNECT, EVENT_VM_START, EVENT_WATCHPOINT_HIT, EVENTSET, EXIT, FINISH, GET_ARRAY, GET_LOADED_CLASSES, GET_LOCALS, GET_OBJECT, GET_OBJECT_MONITORS, GET_PATH_INFORMATION, GET_STRING, GET_THREAD, GET_THREADS, INTERRUPT, INVALID, JDE_BUG, JDE_INIT_DEBUG_SESSION, KILL_THREAD, LAUNCH, LISTEN_SHMEM, LISTEN_SOCKET, MESSAGE, QUIT, REPORT_IDS_IN_USE, RESUME, RUN, SPEC_RESOLVED, STEP, SUSPEND, TRACE_CLASSES, TRACE_EXCEPTIONS, TRACE_METHODS, TRACE_THREADS, WARNING, WATCH
 
Constructor Summary
MethodBreakpointSpec(Application app, ReferenceTypeSpec refSpec, java.lang.String methodName, java.util.List methodArgs)
           
 
Method Summary
private  boolean compareArgTypes(com.sun.jdi.Method method, java.util.List nameList)
           
private  com.sun.jdi.Method findMatchingMethod(com.sun.jdi.ClassType clazz)
           
private  com.sun.jdi.Location getLocation(com.sun.jdi.ClassType clazz)
           
 java.util.List getMethodArgs()
           
 java.lang.String getMethodName()
           
private  boolean isValidMethodName(java.lang.String s)
           
private  java.lang.String normalizeArgTypeName(java.lang.String name)
          Remove unneeded spaces and expand class names to fully qualified names, if necessary and possible.
(package private)  boolean resolve(com.sun.jdi.ReferenceType refType)
          This function is called to resolve an EventRequestSpec when the ReferenceType is known to match
 java.lang.String toString()
          Returns a string representation of the object.
 
Methods inherited from class jde.debugger.spec.BreakpointSpec
setRequest
 
Methods inherited from class jde.debugger.spec.EventRequestSpec
attemptImmediateResolve, attemptResolve, getEventRequest, getID, installClassExFilters, installClassFilters, isJavaIdentifier, isResolved, setClassExFilters, setClassFilters, setExpression, setIsResolved, setRequest, setSuspendPolicy, setThread
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

methodName

java.lang.String methodName

methodArgs

java.util.List methodArgs
Constructor Detail

MethodBreakpointSpec

public MethodBreakpointSpec(Application app,
                            ReferenceTypeSpec refSpec,
                            java.lang.String methodName,
                            java.util.List methodArgs)
Method Detail

resolve

boolean resolve(com.sun.jdi.ReferenceType refType)
          throws JDEException
Description copied from class: EventRequestSpec
This function is called to resolve an EventRequestSpec when the ReferenceType is known to match

if any errors occur at any time during resolution of the event- requestspec, it's entry in the EventRequestSpecList is removed, and jde informed about it (through Application.removeSpecAndInformJDE(jde.debugger.spec.EventRequestSpec, java.lang.String)

Overrides:
resolve in class EventRequestSpec
Following copied from class: jde.debugger.spec.EventRequestSpec
Returns:
true if the resolution was successful

getLocation

private com.sun.jdi.Location getLocation(com.sun.jdi.ClassType clazz)
                                  throws JDEException

getMethodName

public java.lang.String getMethodName()

getMethodArgs

public java.util.List getMethodArgs()

toString

public java.lang.String toString()
Description copied from class: java.lang.Object
Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.

The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

 getClass().getName() + '@' + Integer.toHexString(hashCode())
 
Overrides:
toString in class java.lang.Object
Following copied from class: java.lang.Object
Returns:
a string representation of the object.

isValidMethodName

private boolean isValidMethodName(java.lang.String s)

compareArgTypes

private boolean compareArgTypes(com.sun.jdi.Method method,
                                java.util.List nameList)

normalizeArgTypeName

private java.lang.String normalizeArgTypeName(java.lang.String name)
                                       throws JDEException
Remove unneeded spaces and expand class names to fully qualified names, if necessary and possible.

findMatchingMethod

private com.sun.jdi.Method findMatchingMethod(com.sun.jdi.ClassType clazz)
                                       throws JDEException