org.eclipse.cdt.debug.internal.core.model
Class CDebugTarget

java.lang.Object
  extended by org.eclipse.core.runtime.PlatformObject
      extended by org.eclipse.cdt.debug.internal.core.model.CDebugElement
          extended by org.eclipse.cdt.debug.internal.core.model.CDebugTarget
All Implemented Interfaces:
org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener, ICDebugElement, ICDebugElementStatus, ICDebugTarget, IExecFileInfo, IModuleRetrieval, IRestart, IResumeWithoutSignal, ISteppingModeTarget, ITargetProperties, ISourceLookupChangeListener, org.eclipse.core.runtime.IAdaptable, org.eclipse.debug.core.IBreakpointListener, org.eclipse.debug.core.IExpressionListener, org.eclipse.debug.core.ILaunchListener, org.eclipse.debug.core.model.IDebugElement, org.eclipse.debug.core.model.IDebugTarget, org.eclipse.debug.core.model.IDisconnect, org.eclipse.debug.core.model.IMemoryBlockRetrieval, org.eclipse.debug.core.model.ISuspendResume, org.eclipse.debug.core.model.ITerminate
Direct Known Subclasses:
CCoreFileDebugTarget

public class CDebugTarget
extends CDebugElement
implements ICDebugTarget, org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener, org.eclipse.debug.core.ILaunchListener, org.eclipse.debug.core.IExpressionListener, ISourceLookupChangeListener

Debug target for C/C++ debug model.


Field Summary
 
Fields inherited from interface org.eclipse.cdt.debug.core.model.ITargetProperties
PREF_INSTRUCTION_STEPPING_MODE
 
Fields inherited from interface org.eclipse.cdt.debug.core.model.ICDebugElementStatus
ERROR, OK, WARNING
 
Constructor Summary
CDebugTarget(org.eclipse.debug.core.ILaunch launch, org.eclipse.core.resources.IProject project, org.eclipse.cdt.debug.core.cdi.model.ICDITarget cdiTarget, java.lang.String name, org.eclipse.debug.core.model.IProcess debuggeeProcess, IBinaryParser.IBinaryObject file, boolean allowsTerminate, boolean allowsDisconnect)
          Constructor for CDebugTarget.
 
Method Summary
 void addPropertyChangeListener(org.eclipse.core.runtime.Preferences.IPropertyChangeListener listener)
          Adds a property change listener to this target.
 void addRegisterGroup(java.lang.String name, IRegisterDescriptor[] descriptors)
          Adds a new user-defined register group to this target
 void breakpointAdded(org.eclipse.debug.core.model.IBreakpoint breakpoint)
           
 void breakpointChanged(org.eclipse.debug.core.model.IBreakpoint breakpoint, org.eclipse.core.resources.IMarkerDelta delta)
           
 void breakpointRemoved(org.eclipse.debug.core.model.IBreakpoint breakpoint, org.eclipse.core.resources.IMarkerDelta delta)
           
 boolean canDisconnect()
           
 boolean canRestart()
          Returns whether this element can currently be restarted.
 boolean canResume()
           
 boolean canResumeWithoutSignal()
          Returns whether this element can currently be resumed without signal.
 boolean canSuspend()
           
 boolean canTerminate()
           
 ICGlobalVariable createGlobalVariable(IGlobalVariableDescriptor info)
           
 void disconnect()
           
 void enableInstructionStepping(boolean enabled)
          Sets whether the instruction stepping are enabled in this debug target.
 void expressionAdded(org.eclipse.debug.core.model.IExpression expression)
           
 void expressionChanged(org.eclipse.debug.core.model.IExpression expression)
           
 void expressionRemoved(org.eclipse.debug.core.model.IExpression expression)
           
 CThread findThread(org.eclipse.cdt.debug.core.cdi.model.ICDIThread cdiThread)
          Finds and returns the model thread for the associated CDI thread, or null if not found.
 CThread findThread(java.util.List threads, org.eclipse.cdt.debug.core.cdi.model.ICDIThread cdiThread)
           
 java.lang.Object getAdapter(java.lang.Class adapter)
           
 IAddressFactory getAddressFactory()
           
 IBinaryParser.IBinaryObject getBinaryFile()
           
 IAddress getBreakpointAddress(ICLineBreakpoint breakpoint)
          Returns the target address of the given breakpoint.
 IDisassembly getDisassembly()
          Returns the disassembly provider of this debug target.
 IBinaryParser.IBinaryObject getExecFile()
           
 IGlobalVariableDescriptor[] getGlobals()
           
 java.lang.String getInternalID()
           
 org.eclipse.debug.core.ILaunch getLaunch()
           
 org.eclipse.debug.core.model.IMemoryBlock getMemoryBlock(long startAddress, long length)
           
 ICModule[] getModules()
          Returns the array of the currently loaded modules.
 java.lang.String getName()
           
 org.eclipse.debug.core.model.IProcess getProcess()
           
 org.eclipse.core.resources.IProject getProject()
           
 IRegisterDescriptor[] getRegisterDescriptors()
          Returns the list of descriptors of the target registers
 org.eclipse.debug.core.model.IRegisterGroup[] getRegisterGroups(CStackFrame frame)
           
 CRegisterManager getRegisterManager()
           
 ICSignal[] getSignals()
          Returns the list of signals defined for this target.
 org.eclipse.debug.core.model.IThread[] getThreads()
           
 void handleDebugEvents(org.eclipse.cdt.debug.core.cdi.event.ICDIEvent[] events)
           
 boolean hasModules()
          Returns whether there are modules currently loaded in this debug target.
 boolean hasSignals()
          Returns whether this target supports signals.
 boolean hasThreads()
           
 boolean isAvailable()
          Returns whether this target is available to handle client requests.
 boolean isDisconnected()
           
 boolean isInstructionSteppingEnabled()
          Returns whether the instruction stepping are currently enabled in this debug target.
 boolean isLittleEndian()
          Returns whether this target is little endian.
 boolean isPostMortem()
          Returns whether this target is a post mortem type.
 boolean isSuspended()
           
 boolean isTerminated()
           
 void launchAdded(org.eclipse.debug.core.ILaunch launch)
           
 void launchChanged(org.eclipse.debug.core.ILaunch launch)
           
 void launchRemoved(org.eclipse.debug.core.ILaunch launch)
           
 void loadSymbolsForAllModules()
          Load symbols for all currently loaded modules.
 void modifyRegisterGroup(IPersistableRegisterGroup group, IRegisterDescriptor[] descriptors)
          Replace the given group's register descriptors by the specified descriptors.
 void removePropertyChangeListener(org.eclipse.core.runtime.Preferences.IPropertyChangeListener listener)
          Removes the given listener from this target.
 void removeRegisterGroups(org.eclipse.debug.core.model.IRegisterGroup[] groups)
          Removes the given register group from the target
 void restart()
          Causes this element to restart its execution.
 void restoreDefaultRegisterGroups()
          Removes all user-defined register groups and restores the hardware groups.
 void resume()
           
 void resumeWithoutSignal()
          Causes this element to resume its execution ignoring a signal.
 void setInternalTemporaryBreakpoint(org.eclipse.cdt.debug.core.cdi.ICDILocation location)
           
 void setName(java.lang.String name)
          Sets the name of this debug target.
 void sourceContainersChanged(org.eclipse.debug.core.sourcelookup.ISourceLookupDirector director)
          Notification that the source lookup containers have changed.
 void start(java.lang.String stopSymbol, boolean resume)
           
 boolean supportsBreakpoint(org.eclipse.debug.core.model.IBreakpoint breakpoint)
           
 boolean supportsInstructionStepping()
          Returns whether this debug target supports instruction stepping.
 boolean supportsStorageRetrieval()
           
 void suspend()
           
 void terminate()
           
 java.lang.String toString()
           
 
Methods inherited from class org.eclipse.cdt.debug.internal.core.model.CDebugElement
createChangeEvent, createCreateEvent, createResumeEvent, createSuspendEvent, createTerminateEvent, fireChangeEvent, fireCreationEvent, fireResumeEvent, fireSuspendEvent, fireTerminateEvent, getCDISession, getCDITarget, getCurrentStateInfo, getDebugTarget, getMessage, getModelIdentifier, getSeverity, getState, isOK, notSupported, requestFailed, requestFailed, targetRequestFailed, targetRequestFailed
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.eclipse.debug.core.model.IDebugElement
getDebugTarget, getModelIdentifier
 
Methods inherited from interface org.eclipse.cdt.debug.core.model.ICDebugElement
getCurrentStateInfo, getState
 
Methods inherited from interface org.eclipse.debug.core.model.IDebugElement
getDebugTarget, getModelIdentifier
 

Constructor Detail

CDebugTarget

public CDebugTarget(org.eclipse.debug.core.ILaunch launch,
                    org.eclipse.core.resources.IProject project,
                    org.eclipse.cdt.debug.core.cdi.model.ICDITarget cdiTarget,
                    java.lang.String name,
                    org.eclipse.debug.core.model.IProcess debuggeeProcess,
                    IBinaryParser.IBinaryObject file,
                    boolean allowsTerminate,
                    boolean allowsDisconnect)
Constructor for CDebugTarget.

Method Detail

start

public void start(java.lang.String stopSymbol,
                  boolean resume)
           throws org.eclipse.debug.core.DebugException
Throws:
org.eclipse.debug.core.DebugException

getProcess

public org.eclipse.debug.core.model.IProcess getProcess()
Specified by:
getProcess in interface org.eclipse.debug.core.model.IDebugTarget

getThreads

public org.eclipse.debug.core.model.IThread[] getThreads()
Specified by:
getThreads in interface org.eclipse.debug.core.model.IDebugTarget

hasThreads

public boolean hasThreads()
                   throws org.eclipse.debug.core.DebugException
Specified by:
hasThreads in interface org.eclipse.debug.core.model.IDebugTarget
Throws:
org.eclipse.debug.core.DebugException

getName

public java.lang.String getName()
                         throws org.eclipse.debug.core.DebugException
Specified by:
getName in interface org.eclipse.debug.core.model.IDebugTarget
Throws:
org.eclipse.debug.core.DebugException

setName

public void setName(java.lang.String name)
Sets the name of this debug target.

Parameters:
name - the name of this debug target

supportsBreakpoint

public boolean supportsBreakpoint(org.eclipse.debug.core.model.IBreakpoint breakpoint)
Specified by:
supportsBreakpoint in interface org.eclipse.debug.core.model.IDebugTarget

launchRemoved

public void launchRemoved(org.eclipse.debug.core.ILaunch launch)
Specified by:
launchRemoved in interface org.eclipse.debug.core.ILaunchListener

launchAdded

public void launchAdded(org.eclipse.debug.core.ILaunch launch)
Specified by:
launchAdded in interface org.eclipse.debug.core.ILaunchListener

launchChanged

public void launchChanged(org.eclipse.debug.core.ILaunch launch)
Specified by:
launchChanged in interface org.eclipse.debug.core.ILaunchListener

canTerminate

public boolean canTerminate()
Specified by:
canTerminate in interface org.eclipse.debug.core.model.ITerminate

isTerminated

public boolean isTerminated()
Specified by:
isTerminated in interface org.eclipse.debug.core.model.ITerminate

terminate

public void terminate()
               throws org.eclipse.debug.core.DebugException
Specified by:
terminate in interface org.eclipse.debug.core.model.ITerminate
Throws:
org.eclipse.debug.core.DebugException

canResume

public boolean canResume()
Specified by:
canResume in interface org.eclipse.debug.core.model.ISuspendResume

canSuspend

public boolean canSuspend()
Specified by:
canSuspend in interface org.eclipse.debug.core.model.ISuspendResume

isSuspended

public boolean isSuspended()
Specified by:
isSuspended in interface org.eclipse.debug.core.model.ISuspendResume

resume

public void resume()
            throws org.eclipse.debug.core.DebugException
Specified by:
resume in interface org.eclipse.debug.core.model.ISuspendResume
Throws:
org.eclipse.debug.core.DebugException

suspend

public void suspend()
             throws org.eclipse.debug.core.DebugException
Specified by:
suspend in interface org.eclipse.debug.core.model.ISuspendResume
Throws:
org.eclipse.debug.core.DebugException

breakpointAdded

public void breakpointAdded(org.eclipse.debug.core.model.IBreakpoint breakpoint)
Specified by:
breakpointAdded in interface org.eclipse.debug.core.IBreakpointListener

breakpointRemoved

public void breakpointRemoved(org.eclipse.debug.core.model.IBreakpoint breakpoint,
                              org.eclipse.core.resources.IMarkerDelta delta)
Specified by:
breakpointRemoved in interface org.eclipse.debug.core.IBreakpointListener

breakpointChanged

public void breakpointChanged(org.eclipse.debug.core.model.IBreakpoint breakpoint,
                              org.eclipse.core.resources.IMarkerDelta delta)
Specified by:
breakpointChanged in interface org.eclipse.debug.core.IBreakpointListener

canDisconnect

public boolean canDisconnect()
Specified by:
canDisconnect in interface org.eclipse.debug.core.model.IDisconnect

disconnect

public void disconnect()
                throws org.eclipse.debug.core.DebugException
Specified by:
disconnect in interface org.eclipse.debug.core.model.IDisconnect
Throws:
org.eclipse.debug.core.DebugException

isDisconnected

public boolean isDisconnected()
Specified by:
isDisconnected in interface org.eclipse.debug.core.model.IDisconnect

supportsStorageRetrieval

public boolean supportsStorageRetrieval()
Specified by:
supportsStorageRetrieval in interface org.eclipse.debug.core.model.IMemoryBlockRetrieval

getMemoryBlock

public org.eclipse.debug.core.model.IMemoryBlock getMemoryBlock(long startAddress,
                                                                long length)
                                                         throws org.eclipse.debug.core.DebugException
Specified by:
getMemoryBlock in interface org.eclipse.debug.core.model.IMemoryBlockRetrieval
Throws:
org.eclipse.debug.core.DebugException

getLaunch

public org.eclipse.debug.core.ILaunch getLaunch()
Specified by:
getLaunch in interface org.eclipse.debug.core.model.IDebugElement
Overrides:
getLaunch in class CDebugElement

getAdapter

public java.lang.Object getAdapter(java.lang.Class adapter)
Specified by:
getAdapter in interface org.eclipse.core.runtime.IAdaptable
Overrides:
getAdapter in class CDebugElement

handleDebugEvents

public void handleDebugEvents(org.eclipse.cdt.debug.core.cdi.event.ICDIEvent[] events)
Specified by:
handleDebugEvents in interface org.eclipse.cdt.debug.core.cdi.event.ICDIEventListener

canRestart

public boolean canRestart()
Description copied from interface: IRestart
Returns whether this element can currently be restarted.

Specified by:
canRestart in interface IRestart
Returns:
whether this element can currently be restarted

restart

public void restart()
             throws org.eclipse.debug.core.DebugException
Description copied from interface: IRestart
Causes this element to restart its execution.

Specified by:
restart in interface IRestart
Throws:
org.eclipse.debug.core.DebugException - on failure. Reasons include:

isAvailable

public boolean isAvailable()
Returns whether this target is available to handle client requests.

Returns:
whether this target is available to handle client requests

findThread

public CThread findThread(org.eclipse.cdt.debug.core.cdi.model.ICDIThread cdiThread)
Finds and returns the model thread for the associated CDI thread, or null if not found.

Parameters:
the - underlying CDI thread
Returns:
the associated model thread

findThread

public CThread findThread(java.util.List threads,
                          org.eclipse.cdt.debug.core.cdi.model.ICDIThread cdiThread)

expressionAdded

public void expressionAdded(org.eclipse.debug.core.model.IExpression expression)
Specified by:
expressionAdded in interface org.eclipse.debug.core.IExpressionListener

expressionChanged

public void expressionChanged(org.eclipse.debug.core.model.IExpression expression)
Specified by:
expressionChanged in interface org.eclipse.debug.core.IExpressionListener

expressionRemoved

public void expressionRemoved(org.eclipse.debug.core.model.IExpression expression)
Specified by:
expressionRemoved in interface org.eclipse.debug.core.IExpressionListener

setInternalTemporaryBreakpoint

public void setInternalTemporaryBreakpoint(org.eclipse.cdt.debug.core.cdi.ICDILocation location)
                                    throws org.eclipse.debug.core.DebugException
Throws:
org.eclipse.debug.core.DebugException

isLittleEndian

public boolean isLittleEndian()
Description copied from interface: ICDebugTarget
Returns whether this target is little endian.

Specified by:
isLittleEndian in interface ICDebugTarget
Specified by:
isLittleEndian in interface IExecFileInfo
Returns:
whether this target is little endian

getExecFile

public IBinaryParser.IBinaryObject getExecFile()
Specified by:
getExecFile in interface IExecFileInfo

getBinaryFile

public IBinaryParser.IBinaryObject getBinaryFile()

getProject

public org.eclipse.core.resources.IProject getProject()

getGlobals

public IGlobalVariableDescriptor[] getGlobals()
                                       throws org.eclipse.debug.core.DebugException
Specified by:
getGlobals in interface IExecFileInfo
Throws:
org.eclipse.debug.core.DebugException

canResumeWithoutSignal

public boolean canResumeWithoutSignal()
Description copied from interface: IResumeWithoutSignal
Returns whether this element can currently be resumed without signal.

Specified by:
canResumeWithoutSignal in interface IResumeWithoutSignal
Returns:
whether this element can currently be resumed without signal

resumeWithoutSignal

public void resumeWithoutSignal()
                         throws org.eclipse.debug.core.DebugException
Description copied from interface: IResumeWithoutSignal
Causes this element to resume its execution ignoring a signal. Has no effect on an element that is not suspended because of a signal.

Specified by:
resumeWithoutSignal in interface IResumeWithoutSignal
Throws:
org.eclipse.debug.core.DebugException - on failure. Reasons include:

getRegisterManager

public CRegisterManager getRegisterManager()

getRegisterGroups

public org.eclipse.debug.core.model.IRegisterGroup[] getRegisterGroups(CStackFrame frame)
                                                                throws org.eclipse.debug.core.DebugException
Throws:
org.eclipse.debug.core.DebugException

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getDisassembly

public IDisassembly getDisassembly()
                            throws org.eclipse.debug.core.DebugException
Description copied from interface: ICDebugTarget
Returns the disassembly provider of this debug target.

Specified by:
getDisassembly in interface ICDebugTarget
Returns:
the disassembly provider of this debug target
Throws:
org.eclipse.debug.core.DebugException - if this method fails.

getSignals

public ICSignal[] getSignals()
                      throws org.eclipse.debug.core.DebugException
Description copied from interface: ICDebugTarget
Returns the list of signals defined for this target.

Specified by:
getSignals in interface ICDebugTarget
Returns:
the list of signals defined for this target
Throws:
org.eclipse.debug.core.DebugException - if this method fails.

hasSignals

public boolean hasSignals()
                   throws org.eclipse.debug.core.DebugException
Description copied from interface: ICDebugTarget
Returns whether this target supports signals.

Specified by:
hasSignals in interface ICDebugTarget
Returns:
whether this target supports signals
Throws:
org.eclipse.debug.core.DebugException - if this method fails.

getBreakpointAddress

public IAddress getBreakpointAddress(ICLineBreakpoint breakpoint)
                              throws org.eclipse.debug.core.DebugException
Description copied from interface: ICDebugTarget
Returns the target address of the given breakpoint.

Specified by:
getBreakpointAddress in interface ICDebugTarget
Returns:
the target address of the given breakpoint
Throws:
org.eclipse.debug.core.DebugException - if the address is not available

enableInstructionStepping

public void enableInstructionStepping(boolean enabled)
Description copied from interface: ISteppingModeTarget
Sets whether the instruction stepping are enabled in this debug target.

Specified by:
enableInstructionStepping in interface ISteppingModeTarget
Parameters:
enabled - whether the instruction stepping are enabled in this debug target

isInstructionSteppingEnabled

public boolean isInstructionSteppingEnabled()
Description copied from interface: ISteppingModeTarget
Returns whether the instruction stepping are currently enabled in this debug target.

Specified by:
isInstructionSteppingEnabled in interface ISteppingModeTarget
Returns:
whether the instruction stepping are currently enabled in this debug target

supportsInstructionStepping

public boolean supportsInstructionStepping()
Description copied from interface: ISteppingModeTarget
Returns whether this debug target supports instruction stepping.

Specified by:
supportsInstructionStepping in interface ISteppingModeTarget
Returns:
whether this debug target supports instruction stepping

addPropertyChangeListener

public void addPropertyChangeListener(org.eclipse.core.runtime.Preferences.IPropertyChangeListener listener)
Description copied from interface: ITargetProperties
Adds a property change listener to this target. Has no affect if the identical listener is already registered.

Specified by:
addPropertyChangeListener in interface ITargetProperties
Parameters:
listener - a property change listener

removePropertyChangeListener

public void removePropertyChangeListener(org.eclipse.core.runtime.Preferences.IPropertyChangeListener listener)
Description copied from interface: ITargetProperties
Removes the given listener from this target. Has no affect if the listener is not registered.

Specified by:
removePropertyChangeListener in interface ITargetProperties
Parameters:
listener - a property change listener

isPostMortem

public boolean isPostMortem()
Description copied from interface: ICDebugTarget
Returns whether this target is a post mortem type.

Specified by:
isPostMortem in interface ICDebugTarget
Returns:
whether this target is a post mortem type

getAddressFactory

public IAddressFactory getAddressFactory()

createGlobalVariable

public ICGlobalVariable createGlobalVariable(IGlobalVariableDescriptor info)
                                      throws org.eclipse.debug.core.DebugException
Throws:
org.eclipse.debug.core.DebugException

sourceContainersChanged

public void sourceContainersChanged(org.eclipse.debug.core.sourcelookup.ISourceLookupDirector director)
Description copied from interface: ISourceLookupChangeListener
Notification that the source lookup containers have changed.

Specified by:
sourceContainersChanged in interface ISourceLookupChangeListener

getRegisterDescriptors

public IRegisterDescriptor[] getRegisterDescriptors()
                                             throws org.eclipse.debug.core.DebugException
Description copied from interface: ICDebugTarget
Returns the list of descriptors of the target registers

Specified by:
getRegisterDescriptors in interface ICDebugTarget
Returns:
the list register descriptors
Throws:
org.eclipse.debug.core.DebugException - if this method fails. Reasons include:

addRegisterGroup

public void addRegisterGroup(java.lang.String name,
                             IRegisterDescriptor[] descriptors)
Description copied from interface: ICDebugTarget
Adds a new user-defined register group to this target

Specified by:
addRegisterGroup in interface ICDebugTarget
Parameters:
name - the group name
descriptors - the list of registers to be grouped

removeRegisterGroups

public void removeRegisterGroups(org.eclipse.debug.core.model.IRegisterGroup[] groups)
Description copied from interface: ICDebugTarget
Removes the given register group from the target

Specified by:
removeRegisterGroups in interface ICDebugTarget

modifyRegisterGroup

public void modifyRegisterGroup(IPersistableRegisterGroup group,
                                IRegisterDescriptor[] descriptors)
Description copied from interface: ICDebugTarget
Replace the given group's register descriptors by the specified descriptors.

Specified by:
modifyRegisterGroup in interface ICDebugTarget
Parameters:
group - a group to be modified
descriptors - a descriptor array to replace existing descriptors

restoreDefaultRegisterGroups

public void restoreDefaultRegisterGroups()
Description copied from interface: ICDebugTarget
Removes all user-defined register groups and restores the hardware groups.

Specified by:
restoreDefaultRegisterGroups in interface ICDebugTarget

hasModules

public boolean hasModules()
                   throws org.eclipse.debug.core.DebugException
Description copied from interface: IModuleRetrieval
Returns whether there are modules currently loaded in this debug target.

Specified by:
hasModules in interface IModuleRetrieval
Returns:
whether there are modules currently loaded in this debug target
Throws:
org.eclipse.debug.core.DebugException

getModules

public ICModule[] getModules()
                      throws org.eclipse.debug.core.DebugException
Description copied from interface: IModuleRetrieval
Returns the array of the currently loaded modules.

Specified by:
getModules in interface IModuleRetrieval
Returns:
the array of the currently loaded modules
Throws:
org.eclipse.debug.core.DebugException - if this method fails. Reasons include:

loadSymbolsForAllModules

public void loadSymbolsForAllModules()
                              throws org.eclipse.debug.core.DebugException
Description copied from interface: IModuleRetrieval
Load symbols for all currently loaded modules.

Specified by:
loadSymbolsForAllModules in interface IModuleRetrieval
Throws:
org.eclipse.debug.core.DebugException - if this method fails. Reasons include:

getInternalID

public java.lang.String getInternalID()