Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.debug.core')
-rw-r--r--org.eclipse.debug.core/.classpath7
-rw-r--r--org.eclipse.debug.core/.cvsignore1
-rw-r--r--org.eclipse.debug.core/.options1
-rw-r--r--org.eclipse.debug.core/.project26
-rw-r--r--org.eclipse.debug.core/.settings/org.eclipse.jdt.core.prefs69
-rw-r--r--org.eclipse.debug.core/.settings/org.eclipse.pde.prefs14
-rw-r--r--org.eclipse.debug.core/about.html30
-rw-r--r--org.eclipse.debug.core/build.properties17
-rw-r--r--org.eclipse.debug.core/buildnotes_platform-debug.html480
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/DebugEvent.java459
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/DebugException.java90
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java1305
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointListener.java69
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManager.java275
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManagerListener.java33
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointsListener.java70
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventFilter.java38
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventSetListener.java39
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionListener.java53
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionManager.java169
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionsListener.java56
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunch.java177
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfiguration.java466
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationListener.java53
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java209
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java164
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchListener.java51
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchManager.java421
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchMode.java50
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener.java54
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener2.java30
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureProvider.java35
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureType.java83
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockListener.java43
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockManager.java98
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IProcessFactory.java63
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IStatusHandler.java78
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/IStreamListener.java33
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/Launch.java591
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java358
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java266
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java63
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugModelProvider.java35
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java95
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java50
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IErrorReportingExpression.java36
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java67
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFilteredStep.java46
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFlushableStreamMonitor.java50
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IIndexedValue.java71
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java49
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate2.java94
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILineBreakpoint.java50
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate.java48
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate2.java45
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java82
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtension.java170
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtensionRetrieval.java41
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java52
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java84
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java105
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java37
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java62
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java68
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java182
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java96
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStepFilters.java64
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java50
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java57
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy2.java34
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java63
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java46
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java111
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java104
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java85
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java95
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpression.java92
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionDelegate.java51
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionListener.java31
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionResult.java74
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchpoint.java83
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/LaunchConfigurationDelegate.java323
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/LineBreakpoint.java62
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/MemoryByte.java219
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/RuntimeProcess.java436
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html146
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/package.html115
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupDirector.java717
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupParticipant.java134
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/IPersistableSourceLocator2.java45
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainer.java106
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerType.java69
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerTypeDelegate.java55
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupDirector.java182
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupParticipant.java90
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputer.java59
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputerDelegate.java49
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainer.java110
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainerTypeDelegate.java73
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ArchiveSourceContainer.java151
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/CompositeSourceContainer.java147
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DefaultSourceContainer.java110
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DirectorySourceContainer.java178
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ExternalArchiveSourceContainer.java245
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/FolderSourceContainer.java53
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/LocalFileStorage.java122
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ProjectSourceContainer.java110
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/WorkspaceSourceContainer.java82
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ZipEntryStorage.java151
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/package.html20
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/package.html34
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java1040
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ContributedDelegate.java119
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java32
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties106
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugElement.java135
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/EnvironmentVariableResolver.java46
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ExpressionManager.java581
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java151
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfiguration.java602
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationComparator.java65
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationInfo.java574
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java278
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java595
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchManager.java1834
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchMode.java75
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ListenerList.java137
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureManager.java93
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureProvider.java70
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureType.java140
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/MemoryBlockManager.java315
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/NullStreamsProxy.java98
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java255
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/StreamsProxy.java124
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/SystemVariableResolver.java77
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/WatchExpression.java262
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceContainerType.java90
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLocatorMementoComparator.java53
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupMessages.java28
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupMessages.properties59
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils.java158
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourcePathComputer.java70
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ArchiveSourceContainerType.java70
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ContainerSourceContainer.java156
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/DefaultSourceContainerType.java56
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/DirectorySourceContainerType.java69
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ExternalArchiveSourceContainerType.java66
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/FolderSourceContainerType.java74
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ProjectSourceContainerType.java72
-rw-r--r--org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/WorkspaceSourceContainerType.java53
-rw-r--r--org.eclipse.debug.core/doc/.cvsignore15
-rw-r--r--org.eclipse.debug.core/doc/org_eclipse_debug_core_sourceContainerTypes.html53
-rw-r--r--org.eclipse.debug.core/doc/org_eclipse_debug_core_sourcePathComputers.html58
-rw-r--r--org.eclipse.debug.core/hglegal2003.htm14
-rw-r--r--org.eclipse.debug.core/ngibmcpy2003.gifbin1101 -> 0 bytes
-rw-r--r--org.eclipse.debug.core/plugin.properties52
-rw-r--r--org.eclipse.debug.core/plugin.xml172
-rw-r--r--org.eclipse.debug.core/r2_0_buildnotes_platform-debug.html1102
-rw-r--r--org.eclipse.debug.core/r2_1_buildnotes_platform-debug.html410
-rw-r--r--org.eclipse.debug.core/r3_0_buildnotes_platform-debug.html994
-rw-r--r--org.eclipse.debug.core/r3_0_changes.html260
-rw-r--r--org.eclipse.debug.core/r3_1_changes.html21
-rw-r--r--org.eclipse.debug.core/schema/breakpoints.exsd127
-rw-r--r--org.eclipse.debug.core/schema/launchConfigurationComparators.exsd119
-rw-r--r--org.eclipse.debug.core/schema/launchConfigurationTypes.exsd188
-rw-r--r--org.eclipse.debug.core/schema/launchDelegates.exsd141
-rw-r--r--org.eclipse.debug.core/schema/launchModes.exsd124
-rw-r--r--org.eclipse.debug.core/schema/launchers.exsd225
-rw-r--r--org.eclipse.debug.core/schema/logicalStructureProviders.exsd121
-rw-r--r--org.eclipse.debug.core/schema/logicalStructureTypes.exsd136
-rw-r--r--org.eclipse.debug.core/schema/processFactories.exsd122
-rw-r--r--org.eclipse.debug.core/schema/sourceContainerTypes.exsd153
-rw-r--r--org.eclipse.debug.core/schema/sourceLocators.exsd122
-rw-r--r--org.eclipse.debug.core/schema/sourcePathComputers.exsd139
-rw-r--r--org.eclipse.debug.core/schema/statusHandlers.exsd127
-rw-r--r--org.eclipse.debug.core/schema/watchExpressionDelegates.exsd120
-rw-r--r--org.eclipse.debug.core/scripts/exportplugin.xml32
177 files changed, 0 insertions, 27860 deletions
diff --git a/org.eclipse.debug.core/.classpath b/org.eclipse.debug.core/.classpath
deleted file mode 100644
index 03bbb4390..000000000
--- a/org.eclipse.debug.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="core"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.debug.core/.cvsignore b/org.eclipse.debug.core/.cvsignore
deleted file mode 100644
index c5e82d745..000000000
--- a/org.eclipse.debug.core/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin \ No newline at end of file
diff --git a/org.eclipse.debug.core/.options b/org.eclipse.debug.core/.options
deleted file mode 100644
index a3e35f6ef..000000000
--- a/org.eclipse.debug.core/.options
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.debug.core/debug=true \ No newline at end of file
diff --git a/org.eclipse.debug.core/.project b/org.eclipse.debug.core/.project
deleted file mode 100644
index 394ef93cf..000000000
--- a/org.eclipse.debug.core/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.debug.core</name>
- <comment></comment>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.PluginNature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.debug.core/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.debug.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e22d63ab0..000000000
--- a/org.eclipse.debug.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,69 +0,0 @@
-#Mon Nov 01 17:54:58 GMT-08:00 2004
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-eclipse.preferences.version=1
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=disabled
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.incompleteClasspath=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
diff --git a/org.eclipse.debug.core/.settings/org.eclipse.pde.prefs b/org.eclipse.debug.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 945b3e7f9..000000000
--- a/org.eclipse.debug.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Wed Nov 24 22:34:28 GMT-08:00 2004
-compilers.p.unused-element-or-attribute=1
-compilers.p.unresolved-ex-points=0
-compilers.p.deprecated=1
-compilers.p.unknown-element=0
-compilers.p.unknown-resource=1
-compilers.p.unknown-class=1
-compilers.p.unknown-attribute=0
-compilers.p.no-required-att=0
-eclipse.preferences.version=1
-compilers.p.unresolved-import=0
-compilers.p.not-externalized-att=1
-compilers.p.illegal-att-value=0
-compilers.use-project=true
diff --git a/org.eclipse.debug.core/about.html b/org.eclipse.debug.core/about.html
deleted file mode 100644
index 9db411aab..000000000
--- a/org.eclipse.debug.core/about.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html>
-<head>
-<title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
-
-<p>20th June, 2002</p>
-<h3>License</h3>
-<p>Eclipse.org makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise indicated below, the Content is provided to you under the terms and conditions of the
-Common Public License Version 1.0 (&quot;CPL&quot;). A copy of the CPL is available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>.
-For purposes of the CPL, &quot;Program&quot; will mean the Content.</p>
-
-<h3>Contributions</h3>
-
-<p>If this Content is licensed to you under the terms and conditions of the CPL, any Contributions, as defined in the CPL, uploaded, submitted, or otherwise
-made available to Eclipse.org, members of Eclipse.org and/or the host of Eclipse.org web site, by you that relate to such
-Content are provided under the terms and conditions of the CPL and can be made available to others under the terms of the CPL.</p>
-
-<p>If this Content is licensed to you under license terms and conditions other than the CPL (&quot;Other License&quot;), any modifications, enhancements and/or
-other code and/or documentation (&quot;Modifications&quot;) uploaded, submitted, or otherwise made available to Eclipse.org, members of Eclipse.org and/or the
-host of Eclipse.org, by you that relate to such Content are provided under terms and conditions of the Other License and can be made available
-to others under the terms of the Other License. In addition, with regard to Modifications for which you are the copyright holder, you are also
-providing the Modifications under the terms and conditions of the CPL and such Modifications can be made available to others under the terms of
-the CPL.</p>
-
-</body>
-</html> \ No newline at end of file
diff --git a/org.eclipse.debug.core/build.properties b/org.eclipse.debug.core/build.properties
deleted file mode 100644
index 5dea92930..000000000
--- a/org.eclipse.debug.core/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2003 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Common Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/cpl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-bin.includes = .options,\
- plugin.xml,\
- plugin.properties,\
- *.jar,\
- about.html
-source.dtcore.jar = core/
-src.includes=about.html, schema/
diff --git a/org.eclipse.debug.core/buildnotes_platform-debug.html b/org.eclipse.debug.core/buildnotes_platform-debug.html
deleted file mode 100644
index 400647928..000000000
--- a/org.eclipse.debug.core/buildnotes_platform-debug.html
+++ /dev/null
@@ -1,480 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="Author" content="IBM">
- <meta name="GENERATOR" content="Mozilla/4.75 [en] (WinNT; U) [Netscape]">
- <title>Platform Debug Release Notes</title>
-</head>
-<body>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Jan 11, 2005
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82003">82003</a>: The IDisconnect implementation by Launch module is too restrictive<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82001">82001</a>: When shutting down the IDE, the debugger should first attempt to disconnect debug targets before terminating them<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80551">80551</a>: Provide AbstractRunToLineAdapter<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Jan 4, 2005
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72909">72909</a>: Add &quot;Remove All Breakpoints&quot; action to &quot;Run&quot; menu<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-Dec 21, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81540">81540</a>: no need to create annotation for editors without annotation model<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71149">71149</a>: [artwork] When breakpoints are disabled (skipped), the bullet should be different<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-M4, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70938">70938</a>: Need to be able to turn off &quot;Watch&quot; action for IVariable<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80522">80522</a>: VariablesView and problems with hyperlink support<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81234">81234</a>: Console Pinning causes no console to be displayed.<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-December 14, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80227">80227</a>: Fixed width console of 80 chars double spaces 80 char lines<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80546">80546</a>: Incorrect package ref for IRunToLineTarget<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80617">80617</a>: Memory View does not synchronize properly<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80331">80331</a>: NPE from AbstractDebugActionDelegate<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80409">80409</a>: Breakpoints Group By > menu should number submenu starting with 1<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76297">76297</a>: Enhancements to memory block API<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78335">78335</a>: Support for word-addressable memory in memory view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78423">78423</a>: Enhancements to Memory Rendering Extension Point<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79255">79255</a>: Enhancements to Memory View<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80284">80284</a>: Enhancements to Memory View - replace MemoryViewPane with Tree Viewer<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80229">80229</a>: AIOB exception with fixed width console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80679">80679</a>: Encoding dropdown enabled on common tab of launch config when default selected<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80653">80653</a>: IllegalArgumentException from OpenBreakpointMarkerAction<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=1654">1654</a>: USABILITY - Can't look at client server output in one perspective (1GFX2ZU)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80726">80726</a>: new launch doesn't open console view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80728">80728</a>: ShowConsoleAction not working when console pinned<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80720">80720</a>: Pinned console does not remain on top<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80373">80373</a>: Pinning of consoles is lost after relaunch of debug process<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80729">80729</a>: NPE in console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80873">80873</a>: Fill out schema for logical structure providers<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80721">80721</a>: Conflicting key binding for 'org.eclipse.debug.ui.commands.eof' and 'org.eclipse.ui.edit.text.delete.line'<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-December 7, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79153">79153</a>: [Common Tab] redirect to file should do variable expansion<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79043">79043</a>: Translatable attributes not translated in memoryRenderingTypes extensions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79757">79757</a>: NoClassDefFoundError when opening type<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79897">79897</a>: Debug view flashes after terminating target<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79903">79903</a>: Source not found automatically for higher level plugins<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79949">79949</a>: Console View is missing Ctrl-C in context menu item.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79841">79841</a>: Memory view leaks<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79606">79606</a>: Common tab is too tall<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79735">79735</a>: Allow to append / overwrite when output to file from console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79304">79304</a>: Incorrect stack frame selected<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79952">79952</a>: broken hyperlink in console redirecting process output to console.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79306">79306</a>: Custom breakpoint group action enablement<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=30779">30779</a>: Queue/Fire debug events in separate thread<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79951">79951</a>: Output lost / colored incorrect with echoProperties<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80073">80073</a>: Shortcut for show debug perspective<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79510">79510</a>: background source lookup<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 30, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78881">78881</a>: NullPointerException in memory view when selecting watch expressions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78079">78079</a>: Error loading classes to to Apple's VM packaging.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79097">79097</a>: Mnemonic collision on the Commons tab<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79466">79466</a>: Capture Output file widgets enabled initially<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=35400">35400</a>: new Debugger view can't get to associated text editor<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79043">79043</a>: Translatable attributes not translated in memoryRenderingTypes extensions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23064">23064</a>: RFE: Add option to redirect console output (stderr & stdout) to file<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 23, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76316">76316</a>: Addition of memory block manager to API<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76310">76310</a>: Memory block enhancements: MemoryByte<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78864">78864</a>: Using new registry API<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=61801">61801</a>: A null String object reference becomes the value &quot;null&quot;<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77060">77060</a>: Toggling show qualified names in the Debug view collapses thread<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78010">78010</a>: NPE closing eclipse<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79008">79008</a>: Dialog units should not be used for calculating button heights<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77380">77380</a>: hyperlinks in stack trace console draw &quot;higher&quot; than original text<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78739">78739</a>: stack trace console unexpectedly restored<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78751">78751</a>: Extension Point Schema Changes<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78996">78996</a>: ContextualLaunchAction assumes launch group category supports mode<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78759">78759</a>: NPE in WatchExpression.getLaunch<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78338">78338</a>: Selection is lost in debug view while stepping with monitor info on<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79304">79304</a>: Incorrect stack frame selected<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 16, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77202">77202</a>: font setting for process console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73882">73882</a>: ConsoleDocumentManager caused a deadlock<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77779">77779</a>: Advanced Breakpoints grouping dialog improvements<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76119">76119</a>: source containers not disposed when launch removed<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78338">78338</a>: Selection is lost in debug view while stepping with monitor info on<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78191">78191</a>: [console] context menu contributions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77995">77995</a>: NPE out of LaunchViewer running test suite<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74590">74590</a>: Console colors not changed for terminated processes<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52336">52336</a>: [Viewers] Internal error at start of debug session<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68621">68621</a>: Invalid thread access in launcher from Checkout thread<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78193">78193</a>: IOConsolePartitioner.TrimJob quits too early if lastPartition is null<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78351">78351</a>: Please add shortcut keys to switch to Variables and Breakpoints views<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77416">77416</a>: Filter console factories by capabilities<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78386">78386</a>: NPE in ProcessConsoleManager<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73460">73460</a>: Console flicker when launching<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78456">78456</a>: Breakpoint group setting lost on close of breakpoints view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78494">78494</a>: State of child BreakpointContainers are not updated when parent is enabled/disabled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75851">75851</a>: Custom variable edit widget<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78513">78513</a>: Memory View: Length and change state incorrect for IMemoryBlock<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29581">29581</a>: Launch shortcut hotkeys<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 9, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74584">74584</a>: [Console] IOConsole does not bold title when contents change<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75571">75571</a>: restore defaults does not enable console buffer size text field<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77667">77667</a>: Invalid error message in Run/Debug|Console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77783">77783</a>: No mnemonic for &quot;Group By&quot;<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77670">77670</a>: breakpoint group rendered as &quot;enabled&quot; when manager disabled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77721">77721</a>: groups not expanded when switching between none and other<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77991">77991</a>: Leak: IOConsolePage needs to dispose ScrollLockAction<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 5, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77703">77703</a>: Deselecting Map$Entry/Show As&gt;/Key And Value Deselects Map/Show As&gt;/Map Entries<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77754">77754</a>: Inefficient loop rendering styled text<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77472">77472</a>: NPE in TextConsolePage runnable<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77994">77994</a>: TextConsoleViewer leaks ConsoleDocumentAdapter<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77998">77998</a>: IOConsoleViewer leaks a document listener<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76605">76605</a>: Set our compiler settings for each project so they are shared<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77748">77748</a>: NPE terminating a target<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-November 2, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76771">76771</a>: Inconsistency between schema description and implementation in logicalStructureTypes<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77049">77049</a>: SelectBreakpointGroupDialog doesn't allow selection of existing groups<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76675">76675</a>: Pattern Matching independent of IOConsole and IOConsolePartitioner<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77028">77028</a>: Element 'breakpointContainerFactory' is not legal as a child of element 'extension'.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77046">77046</a>: Console causing Ant test failures<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77072">77072</a>: Composite breakpoint group expansion problem<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77065">77065</a>: scroll lock not required in stack trace console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77066">77066</a>: Pressing &lt;Enter&gt; in strack trace console appends to EOD<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76907">76907</a>: Clarify run menu (run, run..., run &gt; run...? RUN!)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=54916">54916</a>: Environment tab should show icons for env vars<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74206">74206</a>: Delete breakpoint needs to "preserve selection"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74031">74031</a>: No mnemonics on Open Console drop down items<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74123">74123</a>: Console font problem<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75370">75370</a>: Hyperlinks to source in console don't work sometimes<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77029">77029</a>: &quot;Browse&quot; button on the Common tab does not resize properly<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77033">77033</a>: Console encoding on Common tab: mnemonics and NLS<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77189">77189</a>: exception during test suite<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77202">77202</a>: font setting for process console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77068">77068</a>: Typing in stack trace console moves line to top of view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77116">77116</a>: API cannot reference internal classes<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77306">77306</a>: Provide a rendering view pane in the Memory View<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69815">69815</a>: DBCS -- System console cannot display Unicode characters properly<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76427">76427</a>: Run configuration dialog layout<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69083">69083</a>: Switch to associated perspective on suspension<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77063">77063</a>: JavaStackTraceConsole should use Hyperlink Color<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77295">77295</a>: Argument parsing for command line launching<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77238">77238</a>: Enable/Disable not on context menu for breakpoint groups<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77048">77048</a>: ArrayIndexOutOfBounds removing breakpoint<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77397">77397</a>: Book capitalization in Color and Font extensions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77253">77253</a>: Sort the consoles in the Open console dropdown<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77073">77073</a>: Expand to show breakpoint containers<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77421">77421</a>: [Themes] default text editor font changes by itself<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77462">77462</a>: CVS Plug-in fails to start<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74596">74596</a>: Always group by breakpoint type<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75119">75119</a>: Default breakpoint group setting not used when breakpoints view not there<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-October 26, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76539">76539</a>: ILaunchConfiguration.getAttributes doc/clone usage pbm<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76677">76677</a>: Console Input incorrect<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76110">76110</a>: Breakpoints not showing as installed in the BreakpointsView<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76532">76532</a>: Deleting multipe groups prompts for each group<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75183">75183</a>: DebugEvent.CHANGE does not cause run control action states to be updated<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76797">76797</a>: Two output stream reader threads and 100% CPU usages<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76743">76743</a>: Console pipes should be closed when program terminated<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51884">51884</a>: Feature request: More flexible debug hierarchy<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76514">76514</a>: Allow debug presentations to provide colors<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76517">76517</a>: NPE in LaunchViewContextListener<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76529">76529</a>: Renaming a custom group collapses all of the groups<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-October 19, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75967">75967</a>: NullPointerException in IOConsolePartitioner.getRegion<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75769">75769</a>: Console doesn't restore displayed tab width 8 on restart<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74909">74909</a>: Automated test for console input<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75174">75174</a>: Can not clear console with unlimited output<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75546">75546</a>: hang during debug session<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72500">72500</a>: Migrate StringMatcher to RegEx 1.4 support<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75198">75198</a>: breakpoint groups don't support double click expand<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76428">76428</a>: Run configuration dialog; source tab<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76270">76270</a>: Scroll in Console is always lock.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74909">74909</a>: Automated test for console input<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76208">76208</a>: Incorrect code for converting String-> boolean<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75282">75282</a>: Composite breakpoint groups<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76518">76518</a>: Buttons in the Group Breakpoints "Advanced" dialog incorrectly sized<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76521">76521</a>: Incorrect icon names for the breakpoint group actions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76519">76519</a>: Expand all in the Breakpoints view with no groups causes infinite recursion<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74673">74673</a>: Add Expand/Collapse All to Breakpoints view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74560">74560</a>: Group all should expand groups on creation<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76495">76495</a>: Delete action is enabled for a group<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76498">76498</a>: "set custom group" should have "..."<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76497">76497</a>: illegal argument exception<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76326">76326</a>: Shared launch configurations not removed when containing project is deleted<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76527">76527</a>: Flaw in AbstractBreakpointGroupAction->rename and dissolve broken<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-October 12, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75454">75454</a>: RuntimeProcess.isTerminated() replies "false" if process segfaults<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75402">75402</a>: NPE on LaunchShortcutsAction.createContext<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75588">75588</a>: generalize watchpoint to debug platform<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-October 5, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75111">75111</a>: ArrayIndexOutOfBoundsException in ContentWidthCache.textChanged<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75177">75177</a>: Error setting Console Preference<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75204">75204</a>: NPE using build 200409240800<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75226">75226</a>: IllegalArgumentException setting console size from 200k to 400k<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75506">75506</a>: Adjust for the many deprecations in the command extension point<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75405">75405</a>: Allow a logical structure type to provide more than one logical structure<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75123">75123</a>: Use PerspectiveLabelProvider in ViewManagementPreferencePage<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75372">75372</a>: NPE in org.eclipse.ui.console.IOConsole.getHyperlink<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72209">72209</a>: Inspect and Display popup does not allow copying of values<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-September 28, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74947">74947</a>: Remove warnings from 200409240800 build<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74741">74741</a>: console hyperlink search is slow<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=34052">34052</a>: CTRL-Z Not Recognized as EOF<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-September 21-23, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=56253">56253</a>: [Generic Console] no support for extending the toolbar<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73942">73942</a>: IllegalMonitorStateException pasting into the Java Stack Trace Console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73908">73908</a>: [Console] Incorrect colorization when multi streams write to same line<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=56252">56252</a>: [Generic Console] no support for enabled/disabled lifecycles<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73957">73957</a>: API break introduced with IConsoleHyperlink change<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73924">73924</a>: Console can be removed before it's page is created<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73893">73893</a>: Should disallow close in LCD when running an operation<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73842">73842</a>: Remove from Group enabled when breakpoint not in a group<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73576">73576</a>: Pattern matching in IOConsole is too expensive<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73996">73996</a>: Add to Group / Remove from Group incorrectly disabled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74005">74005</a>: Persist last breakpoint group across invocations<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73460">73460</a>: Console flicker when launching<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73950">73950</a>: MemoryView leaks AddMemoryBlockAction<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73951">73951</a>: CopyViewTabToClipboardAction leaks Clipboard<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74033">74033</a>: ClassCastException on selection change in Breakpoints view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73840">73840</a>: Group by>File seems to only match on name<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74000">74000</a>: ClassCastException filtering for "show support breakpoints"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73870">73870</a>: [misc] NPE when terminating large output<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73917">73917</a>: [Console] Missing hyperlinks<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74080">74080</a>: Process console did not flush stream monitors<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74124">74124</a>: Console type should be promoted to IConsole<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74308">74308</a>: Wrong number of lines in output<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74331">74331</a>: CPU at 99% after a debug session<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74340">74340</a>: NPE in IOConsoleViewer<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74370">74370</a>: NPE from ProcessConsolePageParticipant<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74039">74039</a>: NPE in ProcessConsole.connect<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68077">68077</a>: Manually closed views do not open when view management is reset<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73841">73841</a>: Icon for grouped breakpoints not disabled with set to skip breakpoints<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74229">74229</a>: Debug test failure for program arguments<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74283">74283</a>: Empty output in debug tests<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74703">74703</a>: Console view activated even if nothing is written to standart out<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74431">74431</a>: [Mac] runtime discovers JDI interfaces in classes.jar before jdi.jar<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48286">48286</a>: Add support for input on consoles<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74024">74024</a>: Console buffer implementation is line based rather than char based<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74428">74428</a>: Clearing console during output breaks hyperlinks<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74363">74363</a>: &quot;Terminate and Remove&quot; action doesn't close a view tied to a Context<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74563">74563</a>: renaming breakpoint group collapses group<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74560">74560</a>: Group all should expand groups on creation<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74381">74381</a>: Launch view manages views in other perspectives<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74384">74384</a>: Numerous action delegates leaked on debug perspective closed<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74465">74465</a>: Pasting multiple lines in console<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74558">74558</a>: "Dissolve Group" should be "Ungroup"<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21597">21597</a>: Difficult to enter text in debug console<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-September 14, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72317">72317</a>: Copying from IOConsole inserts extra line breaks.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73823">73823</a>: Reorganize BreakpointsView menus<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72167">72167</a>: ProcessConsole should extend IOConsole<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=44986">44986</a>: Support for Breakpoint groups<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73704">73704</a>: Provide action to group breakpoints by Type<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70066">70066</a>: Bind &quot;Alt+Shift+Q C&quot; to active console view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73493">73493</a>: Default VM Args field should parse quotes intuitively<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73577">73577</a>: Find (Ctrl-F) not enabled in ConsoleView<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73779">73779</a>: Allow browse in &quot;Add To Group&quot; dialog<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70471">70471</a>: ExpressionManager#handleDebugEvents() doesn't work as intended<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73844">73844</a>: Mnemonics missing from breakpoint groups<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-September 7, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72986">72986</a>: ExpressionInformationControl leaks<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72000">72000</a>: Run as Application: duplicate menmonics<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72449">72449</a>: NPE in VariablesView.saveState<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73068">73068</a>: Support for ordering launch shortcuts<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73069">73069</a>: bogus extension point id in org.eclipse.debug.ui.launchShortcuts<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73110">73110</a>: IConsoleColorProvider is not disconnected<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72472">72472</a>: Remove unused dependancies<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72551">72551</a>: add System property to test suite to turn off workbench and console activation<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51562">51562</a>: console doesn't wrap input<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72317">72317</a>: IOConsole inserts extra line breaks when pasting<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72517">72517</a>: Replace &quot;Run As &gt;&quot; with context launch<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73272">73272</a>: NPE in ProcessConsoleManager when no process type<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70664">70664</a>: TVT3.0: Improper characters combination &quot;Run As&quot;<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-August 31, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72300">72300</a>: Confirmation on RemoveAll actions<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72350">72350</a>: NPE in BreakpointsView.dispose<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72881">72881</a>: LineTracker Test Failure<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72483">72483</a>: NPE attempt to Inspect if never shown Variable view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27895">27895</a>: Add new command to Run-menu; Resume All Threads<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=67383">67383</a>: breakpoint manage fires add notificaiton on initialization<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-August 24, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72169">72169</a>: provided debug context for non-UI thread<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=26830">26830</a>: Allow external programs to create tasks and markers through regex matches on the output<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=27591">27591</a>: [Console] Hyperlink color not used<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72165">72165</a>: MessageConsole should extend IOConsole<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70864">70864</a>: API method to show the console view has a bug<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=28193">28193</a>: Watch expressions updating when expression view not visible<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=31899">31899</a>: Consolidate "Java" hyperlinks<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71292">71292</a>: Launch name is truncated in MRU list<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71429">71429</a>: Choosing 'Cancel' in the ${string_prompt} dialog does not cancel the Run command<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=61447">61447</a>: keybinding clean up.<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71561">71561</a>: Inspect popup doesn't handle tabs in inspected expression<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72370">72370</a>: [Console] ArrayIndexOutOfBounds<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-August 17, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70354">70354</a>: JSP editor does not scroll to/highlight the current execution line when debug with JDT<br>
-
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-August 3, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69470">69470</a>: TVT3.0: NL Truncation occurs in Run -> External Tools -> External Tools<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69723">69723</a>: TVT3.0: Truncated text in memory view<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69952">69952</a>: ILaunchConfigurationListener's launchConfigurationRemoved gets a configuration that doesn't exist<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71185">71185</a>: TVT3.0: Extra mnemonics for Debug, Run, and External tools<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=61566">61566</a>: Launch configs dialog: Arrow_Up/Down in configurations tree extremely slow<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=64370">64370</a>: Fix setTitle deprecations<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68808">68808</a>: all debug actions (step, terminate, etc), should be done async<br>
-
-<h1>
-Eclipse Platform Build Notes&nbsp;<br>
-Platform Debug</h1>
-July 27, 2004
-<h3>
-Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69536">69536</a>: Infinite loop on rendering variables<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69978">69978</a>: TVT3.0: Two shortcuts for one menuitem<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69057">69057</a>: Incorrect icon in Breakpoints view when breakpoint manager disabled<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69190">69190</a>: NullPointerException @ org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainer.isFindDuplicates<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70472">70472</a>: MemoryBlockManager has redundant null check<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70492">70492</a>: Possible NPE in AddSourceContainerDialog<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70493">70493</a>: Possible NPE in ViewTabCursorManager<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70495">70495</a>: Redundant null check in RefreshTab<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70499">70499</a>: Unnecessary null check in ContextualLaunchAction#selectionChanged(...)<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69452">69452</a>: NPE initializing source lookup<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70571">70571</a>: launch config save location on Common tab<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68523">68523</a>: missing `return' in org.eclipse.ui.internal.console.MessageConsolePartition<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=24829">24829</a>: Multiple toString results shown if hold down arrow key<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68413">68413</a>: NPE from InstructionPointerManager<br>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70051">70051</a>: MemoryViewTab does not calculate delta and selected address correctly after error<br>
-
-</body>
-</html>
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugEvent.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugEvent.java
deleted file mode 100644
index d7efd38e1..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugEvent.java
+++ /dev/null
@@ -1,459 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import java.util.EventObject;
-
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-
-/**
- * A debug event describes an event in a program being debugged or
- * in a running process. Debug models and process implementations
- * are required to generate debug events as specified by this class.
- * <p>
- * The following list defines the events generated for each debug
- * model element.
- * The <code>getSource()</code> method of a debug event
- * returns the element associated with the event.
- * Creation events are guaranteed to occur in a top
- * down order - that is, parents are created before children.
- * Termination events are guaranteed to occur in a bottom up order -
- * that is, children before parents. However, termination events are not guaranteed
- * for all elements that are created. That is, terminate events can be coalesced - a
- * terminate event for a parent signals that all children have been terminated.
- * </p>
- * <p>
- * A debug model may define model specific events by specifying a debug event
- * kind of <code>MODEL_SPECIFIC</code>. A model specific event is identified by the
- * event source (i.e. by the debug model that generated the event). The detail of
- * a model specific event is client defined. Note that model specific events are
- * not understood by the debug platform, and are thus ignored.
- * </p>
- * <p>
- * The generic <code>CHANGE</code> event can be fired at any time by any element.
- * Generally, a client of a debug model, such as as a UI, can get sufficient
- * information to update by listening/responding to the other event kinds. However,
- * if a debug model needs to inform clients of a change that is not specified
- * by create/terminate/suspend/resume, the <code>CHANGE</code> event may be used.
- * For example, generally, the only way a thread or any of its children can change
- * state between a suspend and resume operation, is if the thread or owning debug
- * target is terminated. However, if a debug model supports some other operation
- * that would allow a debug element to change state while suspended, the debug model
- * would fire a change event for that element. The valid detail codes for a
- * change event are:<ul>
- * <li><code>STATE</code> - indicates the state of an element has changed, but its
- * children are not affected. A client would use a state change event to update
- * a label of the affected element, but would not update any children.</li>
- * <li><code>CONTENT</code> - indicates that a debug element's value or contents have
- * changed in some way. For example, when the value of a variable is changed
- * explicitly, the variable should fire a content change event.</li>
- * </ul>
- * </p>
- * <ul>
- * <li><code>IProcess</code>
- * <ul>
- * <li><code>CREATE</code> - a process has been created and is executing.</li>
- * <li><code>TERMINATE</code> - a process has terminated.</li>
- * </ul>
- * <li><code>IDebugTarget</code>
- * <ul>
- * <li><code>CREATE</code> - a debug target has been created and is ready
- * to begin a debug session.</li>
- * <li><code>TERMINATE</code> - a debug target has terminated and the debug
- * session has ended.</li>
- * <li><code>SUSPEND</code> - a debug target has suspended. Event detail provides
- * the reason for the suspension:<ul>
- * <li><code>STEP_END</code> - a request to step has completed</li>
- * <li><code>BREAKPOINT</code> - a breakpoint has been hit</li>
- * <li><code>CLIENT_REQUEST</code> - a client request has caused the target to suspend
- * (i.e. an explicit call to <code>suspend()</code>)</li>
- * <li><code>UNSPECIFIED</code> - the reason for the suspend is not specified</li>
- * </ul>
- * </li>
- * <li><code>RESUME</code> - a debug target has resumed. Event detail provides
- * the reason for the resume:<ul>
- * <li><code>STEP_INTO</code> - a target is being resumed because of a request to step into</li>
- * <li><code>STEP_OVER</code> - a target is being resumed because of a request to step over</li>
- * <li><code>STEP_RETURN</code> - a target is being resumed because of a request to step return</li>
- * <li><code>CLIENT_REQUEST</code> - a client request has caused the target to be resumed
- * (i.e. an explicit call to <code>resume()</code>)</li>
- * <li><code>UNSPECIFIED</code> - The reason for the resume is not specified</li>
- * </ul>
- * </li>
- * </ul>
- * </li>
- * <li><code>IThread</code>
- * <ul>
- * <li><code>CREATE</code> - a thread has been created in a debug target.</li>
- * <li><code>TERMINATE</code> - a thread has terminated.</li>
- * <li><code>SUSPEND</code> - a thread has suspended execution. Event detail provides
- * the reason for the suspension:<ul>
- * <li><code>STEP_END</code> - a request to step has completed</li>
- * <li><code>BREAKPOINT</code> - a breakpoint has been hit</li>
- * <li><code>CLIENT_REQUEST</code> - a client request has caused the thread to suspend
- * (i.e. an explicit call to <code>suspend()</code>)</li>
- * <li><code>EVALUATION</code> - an expression evaluation has ended that may
- * have had side effects in the debug target.</li>
- * <li><code>EVALUATION_IMPLICIT</code> - an expression evaluation has ended that
- * had no side effects in the debug target.</li>
- * <li><code>UNSPECIFIED</code> - the reason for the suspend is not specified</li>
- * </ul>
- * </li>
- * <li><code>RESUME</code> - a thread has resumed execution. Event detail provides
- * the reason for the resume:<ul>
- * <li><code>STEP_INTO</code> - a thread is being resumed because of a request to step into</li>
- * <li><code>STEP_OVER</code> - a thread is being resumed because of a request to step over</li>
- * <li><code>STEP_RETURN</code> - a thread is being resumed because of a request to step return</li>
- * <li><code>CLIENT_REQUEST</code> - a client request has caused the thread to be resumed
- * (i.e. an explicit call to <code>resume()</code>)</li>
- * <li><code>EVALUATION</code> - an expression evaluation has started that may
- * have side effects in the debug target.</li>
- * <li><code>EVALUATION_IMPLICIT</code> - an expression evaluation has started that
- * will have no side effects in the debug target.</li>
- * <li><code>UNSPECIFIED</code> - The reason for the resume is not specified</li>
- * </ul>
- * </li>
- * </ul>
- * </li>
- * <li><code>IStackFrame</code> - no events are specified for stack frames.
- * When a thread is suspended, it has stack frames. When a thread resumes,
- * stack frames are unavailable.
- * </li>
- * <li><code>IVariable</code> - no events are specified for variables.
- * When a thread is suspended, stack frames have variables. When a thread resumes,
- * variables are unavailable.
- * </li>
- * <li><code>IValue</code> - no events are specified for values.
- * </li>
- * </ul>
- * <p>
- * Clients may instantiate this class. Clients are not intended to subclass this class.
- * </p>
- */
-public final class DebugEvent extends EventObject {
-
- /**
- * All serializable objects should have a stable serialVersionUID
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Resume event kind.
- */
- public static final int RESUME= 0x0001;
-
- /**
- * Suspend event kind.
- */
- public static final int SUSPEND= 0x0002;
-
- /**
- * Create event kind.
- */
- public static final int CREATE= 0x0004;
-
- /**
- * Terminate event kind.
- */
- public static final int TERMINATE= 0x0008;
-
- /**
- * Change event kind.
- */
- public static final int CHANGE= 0x0010;
-
- /**
- * Model specific event kind. The detail codes
- * for a model specific event are client defined.
- *
- * @since 2.1.2
- */
- public static final int MODEL_SPECIFIC= 0x0020;
-
- /**
- * Step start detail. Indicates a thread was resumed by a step
- * into action.
- * @since 2.0
- */
- public static final int STEP_INTO= 0x0001;
-
- /**
- * Step start detail. Indicates a thread was resumed by a step
- * over action.
- * @since 2.0
- */
- public static final int STEP_OVER= 0x0002;
-
- /**
- * Step start detail. Indicates a thread was resumed by a step
- * return action.
- * @since 2.0
- */
- public static final int STEP_RETURN= 0x0004;
-
- /**
- * Step end detail. Indicates a thread was suspended due
- * to the completion of a step action.
- */
- public static final int STEP_END= 0x0008;
-
- /**
- * Breakpoint detail. Indicates a thread was suspended by
- * a breakpoint.
- */
- public static final int BREAKPOINT= 0x0010;
-
- /**
- * Client request detail. Indicates a thread was suspended due
- * to a client request.
- */
- public static final int CLIENT_REQUEST= 0x0020;
-
- /**
- * Evaluation detail. Indicates that a thread was resumed or
- * suspended to perform an expression evaluation.
- *
- * @since 2.0
- */
- public static final int EVALUATION = 0x0040;
-
- /**
- * Evaluation detail. Indicates that a thread was resumed or
- * suspended to perform an implicit expression evaluation.
- * An implicit evaluation is an evaluation that is performed
- * as an indirect result of a user action.
- * Clients may use this detail event to decide whether or not
- * to alert the user that an evaluation is taking place..
- *
- * @since 2.0
- */
- public static final int EVALUATION_IMPLICIT = 0x0080;
-
- /**
- * State change detail. Indicates the state of a single
- * debug element has changed. Only valid for <code>CHANGE</code>
- * events.
- *
- * @since 2.0
- */
- public static final int STATE = 0x0100;
-
- /**
- * Content change detail. Indicates the content of a debug element
- * (and potentially its children) has changed. Only valid for
- * <code>CHANGE</code> events.
- *
- * @since 2.0
- */
- public static final int CONTENT = 0x0200;
-
- /**
- * Constant indicating that the kind or detail of a debug
- * event is unspecified.
- */
- public static final int UNSPECIFIED = 0;
-
- /**
- * The kind of event - one of the kind constants defined by
- * this class.
- */
- private int fKind= UNSPECIFIED;
-
- /**
- * The detail of the event - one of the detail constants defined by
- * this class.
- */
- private int fDetail= UNSPECIFIED;
-
- /**
- * Client defined data field.
- *
- * @since 2.1.2
- */
- private Object fData = null;
-
- /**
- * Constructs a new debug event of the given kind with a detail code of
- * <code>UNSPECIFIED</code>.
- *
- * @param eventSource the object associated with the event
- * @param kind the kind of debug event (one of the
- * kind constants defined by this class)
- */
- public DebugEvent(Object eventSource, int kind) {
- this(eventSource, kind, UNSPECIFIED);
- }
-
- /**
- * Constructs a new debug event of the given kind with the given detail.
- *
- * @param eventSource the object associated with the event
- * @param kind the kind of debug event (one of the
- * kind constants defined by this class)
- * @param detail extra information about the event (one of the
- * detail constants defined by this class or a client defined detail if this is a model specific event)
- */
- public DebugEvent(Object eventSource, int kind, int detail) {
- super(eventSource);
- if ((kind & (RESUME | SUSPEND | CREATE | TERMINATE | CHANGE | MODEL_SPECIFIC)) == 0)
- throw new IllegalArgumentException(DebugCoreMessages.getString("DebugEvent.illegal_kind")); //$NON-NLS-1$
- if (kind != MODEL_SPECIFIC && detail != UNSPECIFIED && (detail & (STEP_END | STEP_INTO | STEP_OVER | STEP_RETURN | BREAKPOINT | CLIENT_REQUEST |EVALUATION | EVALUATION_IMPLICIT | STATE | CONTENT)) == 0)
- throw new IllegalArgumentException(DebugCoreMessages.getString("DebugEvent.illegal_detail")); //$NON-NLS-1$
- fKind= kind;
- fDetail= detail;
- }
-
- /**
- * Returns a constant describing extra detail about the event - either one
- * of the detail constants defined by this class, possibly
- * <code>UNSPECIFIED</code>, or a client defined detail if this is a model specific event.
- *
- * @return the detail code
- */
- public int getDetail() {
- return fDetail;
- }
-
- /**
- * Returns this event's kind - one of the kind constants defined by this class.
- *
- * @return the kind code
- */
- public int getKind() {
- return fKind;
- }
-
- /**
- * Returns whether this event's detail indicates the
- * beginning of a step event. This event's detail is one
- * of <code>STEP_INTO</code>, <code>STEP_OVER</code>, or
- * <code>STEP_RETURN</code>.
- *
- * @return whether this event's detail indicates the beginning
- * of a step event.
- * @since 2.0
- */
- public boolean isStepStart() {
- return (getDetail() & (STEP_INTO | STEP_OVER | STEP_RETURN)) > 0;
- }
-
- /**
- * Returns whether this event's detail indicates an
- * evaluation. This event's detail is one
- * of <code>EVALUATION</code>, or <code>EVALUATION_IMPLICIT</code>.
- *
- * @return whether this event's detail indicates an evaluation.
- * @since 2.0
- */
- public boolean isEvaluation() {
- return (getDetail() & (EVALUATION | EVALUATION_IMPLICIT)) > 0;
- }
-
- /**
- * Sets this event's application defined data.
- *
- * @param data application defined data
- * @since 2.1.2
- */
- public void setData(Object data) {
- fData = data;
- }
-
- /**
- * Returns this event's application defined data, or <code>null</code> if none
- *
- * @return application defined data, or <code>null</code> if none
- * @since 2.1.2
- */
- public Object getData() {
- return fData;
- }
-
- /**
- * @see java.lang.Object#toString()
- */
- public String toString() {
- StringBuffer buf = new StringBuffer("DebugEvent["); //$NON-NLS-1$
- if (getSource() != null) {
- buf.append(getSource().toString());
- } else {
- buf.append("null"); //$NON-NLS-1$
- }
- buf.append(", "); //$NON-NLS-1$
- switch (getKind()) {
- case CREATE:
- buf.append("CREATE"); //$NON-NLS-1$
- break;
- case TERMINATE:
- buf.append("TERMINATE"); //$NON-NLS-1$
- break;
- case RESUME:
- buf.append("RESUME"); //$NON-NLS-1$
- break;
- case SUSPEND:
- buf.append("SUSPEND"); //$NON-NLS-1$
- break;
- case CHANGE:
- buf.append("CHANGE"); //$NON-NLS-1$
- break;
- case UNSPECIFIED:
- buf.append("UNSPECIFIED"); //$NON-NLS-1$
- break;
- case MODEL_SPECIFIC:
- buf.append("MODEL_SPECIFIC"); //$NON-NLS-1$
- break;
- }
- buf.append(", "); //$NON-NLS-1$
- switch (getDetail()) {
- case BREAKPOINT:
- buf.append("BREAKPOINT"); //$NON-NLS-1$
- break;
- case CLIENT_REQUEST:
- buf.append("CLIENT_REQUEST"); //$NON-NLS-1$
- break;
- case STEP_END:
- buf.append("STEP_END"); //$NON-NLS-1$
- break;
- case STEP_INTO:
- buf.append("STEP_INTO"); //$NON-NLS-1$
- break;
- case STEP_OVER:
- buf.append("STEP_OVER"); //$NON-NLS-1$
- break;
- case STEP_RETURN:
- buf.append("STEP_RETURN"); //$NON-NLS-1$
- break;
- case EVALUATION:
- buf.append("EVALUATION"); //$NON-NLS-1$
- break;
- case EVALUATION_IMPLICIT:
- buf.append("EVALUATION_IMPLICIT"); //$NON-NLS-1$
- break;
- case STATE:
- buf.append("STATE"); //$NON-NLS-1$
- break;
- case CONTENT:
- buf.append("CONTENT"); //$NON-NLS-1$
- break;
- case UNSPECIFIED:
- buf.append("UNSPECIFIED"); //$NON-NLS-1$
- break;
- default:
- // model specific
- buf.append(getDetail());
- break;
- }
- buf.append("]"); //$NON-NLS-1$
- return buf.toString();
- }
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugException.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugException.java
deleted file mode 100644
index ecbff3dc8..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugException.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-
-
-/**
- * A checked exception representing a failure.
- * <p>
- * Defines status codes relevant to the debug plug-in. When a
- * debug exception is thrown, it contains a status object describing
- * the cause of the exception. The status objects originating from the
- * debug plug-in use the codes defined in this class.
- * </p>
- * <p>
- * Clients may instantiate this class. Clients are not intended to subclass this class.
- * </p>
- * @see IStatus
- */
-public class DebugException extends CoreException {
-
- /**
- * All serializable objects should have a stable serialVersionUID
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Indicates a request made of a debug element has failed
- * on the target side.
- */
- public static final int TARGET_REQUEST_FAILED = 5010;
-
- /**
- * Indicates a request is not supported by the capabilities of a debug element.
- * For example, a request was made to terminate an element that does not
- * support termination.
- */
- public static final int NOT_SUPPORTED = 5011;
-
- /**
- * Indicates that a request made of manager has failed, or a request made of a
- * debug element has failed on the client side (that is, before the request was
- * sent to the debug target).
- */
- public static final int REQUEST_FAILED = 5012;
-
- /**
- * Indicates an internal error. This is an unexpected state.
- */
- public static final int INTERNAL_ERROR = 5013;
-
- /**
- * Indicates an improperly configured breakpoint. Breakpoints have a minimal
- * set of required attributes as defined by the breakpoint manager.
- *
- * @see IBreakpointManager
- */
- public static final int CONFIGURATION_INVALID = 5014;
-
- /**
- * Indicates a launch configuration could not be restored because its
- * launch configuration type definition is missing.
- *
- * @since 3.0
- */
- public static final int MISSING_LAUNCH_CONFIGURATION_TYPE = 5020;
-
- /**
- * Constructs a new debug exception with the given status object.
- *
- * @param status the status object describing this exception
- * @see IStatus
- */
- public DebugException(IStatus status) {
- super(status);
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java
deleted file mode 100644
index 20d6a26c4..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java
+++ /dev/null
@@ -1,1305 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.TransformerException;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.model.IValue;
-import org.eclipse.debug.core.model.RuntimeProcess;
-import org.eclipse.debug.internal.core.BreakpointManager;
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-import org.eclipse.debug.internal.core.ExpressionManager;
-import org.eclipse.debug.internal.core.LaunchManager;
-import org.eclipse.debug.internal.core.ListenerList;
-import org.eclipse.debug.internal.core.LogicalStructureManager;
-import org.eclipse.debug.internal.core.MemoryBlockManager;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils;
-import org.eclipse.osgi.service.environment.Constants;
-import org.osgi.framework.BundleContext;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.xml.sax.SAXException;
-
-/**
- * There is one instance of the debug plug-in available from
- * <code>DebugPlugin.getDefault()</code>. The debug plug-in provides:
- * <ul>
- * <li>access to the breakpoint manager</li>
- * <li>access to the launch manager</li>
- * <li>access to the expression manager</li>
- * <li>access to the registered launcher extensions</li>
- * <li>access to the memory block manager</li>
- * <li>debug event notification</li>
- * <li>status handlers</li>
- * </ul>
- * <p>
- * Clients may not instantiate or subclass this class.
- * </p>
- */
-public class DebugPlugin extends Plugin {
-
- /**
- * Unique identifier constant (value <code>"org.eclipse.debug.core"</code>)
- * for the Debug Core plug-in.
- */
- private static final String PI_DEBUG_CORE = "org.eclipse.debug.core"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"launchConfigurationTypes"</code>)
- * for the launch configuration types extension point.
- *
- * @since 2.0
- */
- public static final String EXTENSION_POINT_LAUNCH_CONFIGURATION_TYPES= "launchConfigurationTypes"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"launchConfigurationComparators"</code>)
- * for the launch configuration comparators extension point.
- *
- * @since 2.0
- */
- public static final String EXTENSION_POINT_LAUNCH_CONFIGURATION_COMPARATORS= "launchConfigurationComparators"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"breakpoints"</code>) for the
- * breakpoints extension point.
- *
- * @since 2.0
- */
- public static final String EXTENSION_POINT_BREAKPOINTS= "breakpoints"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"statusHandlers"</code>) for the
- * status handlers extension point.
- *
- * @since 2.0
- */
- public static final String EXTENSION_POINT_STATUS_HANDLERS= "statusHandlers"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"sourceLocators"</code>) for the
- * source locators extension point.
- *
- * @since 2.0
- */
- public static final String EXTENSION_POINT_SOURCE_LOCATORS= "sourceLocators"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"launchModes"</code>) for the
- * source modes extension point.
- *
- * @since 3.0
- */
- public static final String EXTENSION_POINT_LAUNCH_MODES= "launchModes"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"launchDelegates"</code>) for the
- * launch delegates extension point.
- *
- * @since 3.0
- */
- public static final String EXTENSION_POINT_LAUNCH_DELEGATES= "launchDelegates"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"processFactories"</code>) for the
- * process factories extension point.
- *
- * @since 3.0
- */
- public static final String EXTENSION_POINT_PROCESS_FACTORIES = "processFactories"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"logicalStructureTypes"</code>) for the
- * logical structure types extension point.
- *
- * @since 3.0
- */
- public static final String EXTENSION_POINT_LOGICAL_STRUCTURE_TYPES = "logicalStructureTypes"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"logicalStructureProviders"</code>) for the
- * logical structure types extension point.
- *
- * @since 3.1
- */
- public static final String EXTENSION_POINT_LOGICAL_STRUCTURE_PROVIDERS = "logicalStructureProviders"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"sourceContainerTypes"</code>) for the
- * source container types extension point.
- *
- * @since 3.0
- */
- public static final String EXTENSION_POINT_SOURCE_CONTAINER_TYPES = "sourceContainerTypes"; //$NON-NLS-1$
-
- /**
- * Simple identifier constant (value <code>"sourcePathComputers"</code>) for the
- * source path computers extension point.
- *
- * @since 3.0
- */
- public static final String EXTENSION_POINT_SOURCE_PATH_COMPUTERS = "sourcePathComputers"; //$NON-NLS-1$
-
- /**
- * Status code indicating an unexpected internal error.
- */
- public static final int INTERNAL_ERROR = 120;
-
- /**
- * Status code indicating that the Eclipse runtime does not support
- * launching a program with a working directory. This feature is only
- * available if Eclipse is run on a 1.3 runtime or higher.
- * <p>
- * A status handler may be registered for this error condition,
- * and should return a <code>Boolean</code> indicating whether the program
- * should be relaunched with the default working directory.
- * </p>
- */
- public static final int ERR_WORKING_DIRECTORY_NOT_SUPPORTED = 115;
-
- /**
- * The launch configuration attribute that designates the process factory ID
- * for the process factory to be used when creating a new process as a result of launching
- * the launch configuration.
- * @since 3.0
- */
- public static final String ATTR_PROCESS_FACTORY_ID = "process_factory_id"; //$NON-NLS-1$
-
- /**
- * The launch configuration attribute that designates whether or not it's associated
- * launch should capture output.
- *
- * @since 3.1
- */
- public static final String ATTR_CAPTURE_OUTPUT = PI_DEBUG_CORE + ".capture_output"; //$NON-NLS-1$
-
- /**
- * The singleton debug plug-in instance.
- */
- private static DebugPlugin fgDebugPlugin= null;
-
- /**
- * The singleton breakpoint manager.
- */
- private BreakpointManager fBreakpointManager;
-
- /**
- * The singleton expression manager.
- */
- private ExpressionManager fExpressionManager;
-
- /**
- * The singleton launch manager.
- */
- private LaunchManager fLaunchManager;
-
- /**
- * The singleton memory block manager.
- * @since 3.1
- */
- private MemoryBlockManager fMemoryBlockManager;
-
- /**
- * The collection of debug event listeners.
- */
- private ListenerList fEventListeners;
-
- /**
- * Event filters, or <code>null</code> if none.
- */
- private ListenerList fEventFilters = null;
-
- /**
- * Whether this plugin is in the process of shutting
- * down.
- */
- private boolean fShuttingDown= false;
-
- /**
- * Whether event dispatch is in progress (if > 0)
- *
- * @since 2.1
- */
- private int fDispatching = 0;
-
- /**
- * Queue of runnables to execute after event dispatch is
- * complete.
- *
- * @since 2.1
- */
- private Vector fRunnables = null;
-
- /**
- * Job that executes runnables
- *
- * @since 3.0
- */
- private AsynchJob fAsynchJob = null;
-
- /**
- * Table of status handlers. Keys are {plug-in identifier, status code}
- * pairs, and values are associated <code>IConfigurationElement</code>s.
- */
- private HashMap fStatusHandlers = null;
-
- /**
- * Map of process factories. Keys are process factory IDs
- * and values are associated <code>IConfigurationElement</code>s.
- * @since 3.0
- */
- private HashMap fProcessFactories = null;
-
- /**
- * Mode constants for the event notifier
- */
- private static final int NOTIFY_FILTERS = 0;
- private static final int NOTIFY_EVENTS = 1;
-
- /**
- * Queue of debug events to fire to listeners.
- * @since 3.1
- */
- private List fEventQueue = new ArrayList();
-
- /**
- * Job to fire events to listeners.
- * @since 3.1
- */
- private EventDispatchJob fEventDispatchJob = new EventDispatchJob();
-
- /**
- * Event dispatch job
- * @since 3.1
- */
- class EventDispatchJob extends Job {
-
- /**
- * Creates a new event dispatch job.
- */
- public EventDispatchJob() {
- super(DebugCoreMessages.getString("DebugPlugin.1")); //$NON-NLS-1$
- setPriority(Job.INTERACTIVE);
- }
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
- */
- protected IStatus run(IProgressMonitor monitor) {
-
- while (!fEventQueue.isEmpty()) {
- DebugEvent[] events = null;
- synchronized (fEventQueue) {
- if (!fEventQueue.isEmpty()) {
- events = (DebugEvent[]) fEventQueue.remove(0);
- }
- }
- if (events != null) {
- getEventNotifier().dispatch(events);
- }
- }
- return Status.OK_STATUS;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.jobs.Job#shouldRun()
- */
- public boolean shouldRun() {
- return shouldSchedule();
- }
- /* (non-Javadoc)
- * @see org.eclipse.core.internal.jobs.InternalJob#shouldSchedule()
- */
- public boolean shouldSchedule() {
- return !(isShuttingDown() || fEventListeners == null);
- }
-
- }
-
- /**
- * Returns the singleton instance of the debug plug-in.
- */
- public static DebugPlugin getDefault() {
- return fgDebugPlugin;
- }
-
- /**
- * Sets the singleton instance of the debug plug-in.
- *
- * @param plugin the debug plug-in, or <code>null</code>
- * when shutting down
- */
- private static void setDefault(DebugPlugin plugin) {
- fgDebugPlugin = plugin;
- }
-
- /**
- * Convenience method which returns the unique identifier of this plugin.
- */
- public static String getUniqueIdentifier() {
- return PI_DEBUG_CORE;
- }
-
- /**
- * Constructs the debug plug-in.
- * <p>
- * An instance of this plug-in runtime class is automatically created
- * when the facilities provided by this plug-in are required.
- * <b>Clients must never explicitly instantiate a plug-in runtime class.</b>
- * </p>
- */
- public DebugPlugin() {
- super();
- setDefault(this);
- }
-
- /**
- * Adds the given listener to the collection of registered debug
- * event listeners. Has no effect if an identical listener is already
- * registered.
- *
- * @param listener the listener to add
- * @since 2.0
- */
- public void addDebugEventListener(IDebugEventSetListener listener) {
- if (fEventListeners == null) {
- fEventListeners = new ListenerList(20);
- }
- fEventListeners.add(listener);
- }
-
- /**
- * Notifies all registered debug event set listeners of the given
- * debug events. Events which are filtered by a registered debug event
- * filter are not fired.
- *
- * @param events array of debug events to fire
- * @see IDebugEventFilter
- * @see IDebugEventSetListener
- * @since 2.0
- */
- public void fireDebugEventSet(DebugEvent[] events) {
- if (isShuttingDown() || events == null || fEventListeners == null)
- return;
- synchronized (fEventQueue) {
- fEventQueue.add(events);
- }
- fEventDispatchJob.schedule();
- }
-
- /**
- * Asynchronously executes the given runnable in a seperate
- * thread, after debug event dispatch has completed. If debug
- * events are not currently being dispatched, the runnable is
- * scheduled to run in a seperate thread immediately.
- *
- * @param r runnable to execute asynchronously
- * @since 2.1
- */
- public void asyncExec(Runnable r) {
- if (fRunnables == null) {
- // initialize runnables and async job
- fRunnables= new Vector(5);
- fAsynchJob = new AsynchJob();
- }
- fRunnables.add(r);
- if (!isDispatching()) {
- fAsynchJob.schedule();
- }
- }
-
- /**
- * Returns the breakpoint manager.
- *
- * @return the breakpoint manager
- * @see IBreakpointManager
- */
- public IBreakpointManager getBreakpointManager() {
- if (fBreakpointManager == null) {
- fBreakpointManager = new BreakpointManager();
- }
- return fBreakpointManager;
- }
-
- /**
- * Returns the launch manager.
- *
- * @return the launch manager
- * @see ILaunchManager
- */
- public ILaunchManager getLaunchManager() {
- if (fLaunchManager == null) {
- fLaunchManager = new LaunchManager();
- }
- return fLaunchManager;
- }
-
- /**
- * Returns the memory block manager.
- * @return the memory block manager.
- * @see IMemoryBlockManager
- * @since 3.1
- */
- public IMemoryBlockManager getMemoryBlockManager(){
- if (fMemoryBlockManager == null) {
- fMemoryBlockManager = new MemoryBlockManager();
- }
- return fMemoryBlockManager;
- }
-
- /**
- * Returns the status handler registered for the given
- * status, or <code>null</code> if none.
- *
- * @return the status handler registered for the given
- * status, or <code>null</code> if none
- * @since 2.0
- */
- public IStatusHandler getStatusHandler(IStatus status) {
- StatusHandlerKey key = new StatusHandlerKey(status.getPlugin(), status.getCode());
- if (fStatusHandlers == null) {
- initializeStatusHandlers();
- }
- IConfigurationElement config = (IConfigurationElement)fStatusHandlers.get(key);
- if (config != null) {
- try {
- Object handler = config.createExecutableExtension("class"); //$NON-NLS-1$
- if (handler instanceof IStatusHandler) {
- return (IStatusHandler)handler;
- }
- invalidStatusHandler(null, MessageFormat.format(DebugCoreMessages.getString("DebugPlugin.Registered_status_handler_{0}_does_not_implement_required_interface_IStatusHandler._1"), new String[] {config.getDeclaringExtension().getUniqueIdentifier()})); //$NON-NLS-1$
- } catch (CoreException e) {
- log(e);
- }
- }
- return null;
- }
-
- /**
- * Returns the expression manager.
- *
- * @return the expression manager
- * @see IExpressionManager
- * @since 2.0
- */
- public IExpressionManager getExpressionManager() {
- if (fExpressionManager == null) {
- fExpressionManager = new ExpressionManager();
- }
- return fExpressionManager;
- }
-
- /**
- * Removes the given listener from the collection of registered debug
- * event listeners. Has no effect if an identical listener is not already
- * registered.
- *
- * @param listener the listener to remove
- * @since 2.0
- */
- public void removeDebugEventListener(IDebugEventSetListener listener) {
- if (fEventListeners != null) {
- fEventListeners.remove(listener);
- }
- }
-
- /* (non-Javadoc)
- * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
- */
- public void stop(BundleContext context) throws Exception {
- try {
- setShuttingDown(true);
-
- if (fAsynchJob != null) {
- fAsynchJob.cancel();
- }
- if (fLaunchManager != null) {
- fLaunchManager.shutdown();
- }
- if (fBreakpointManager != null) {
- fBreakpointManager.shutdown();
- }
- if (fMemoryBlockManager != null) {
- fMemoryBlockManager.shutdown();
- }
-
- if (fEventListeners != null) {
- fEventListeners.removeAll();
- }
- SourceLookupUtils.shutdown();
- setDefault(null);
- ResourcesPlugin.getWorkspace().removeSaveParticipant(this);
- } finally {
- super.stop(context);
- }
- }
-
- /**
- * Creates and returns a new process representing the given
- * <code>java.lang.Process</code>. A streams proxy is created
- * for the I/O streams in the system process. The process
- * is added to the given launch.
- *
- * @param launch the launch the process is contained in
- * @param process the system process to wrap
- * @param label the label assigned to the process
- * @return the process
- * @see IProcess
- */
- public static IProcess newProcess(ILaunch launch, Process process, String label) {
- return newProcess(launch, process, label, null);
- }
-
- /**
- * Creates and returns a new process representing the given
- * <code>java.lang.Process</code>. A streams proxy is created
- * for the I/O streams in the system process. The process
- * is added to the given launch, and the process is initialized
- * with the given attribute map.
- *
- * The process will be created by the <code>IProcessFactory<code> if it has been
- * designated via the org.eclipse.debug.core.processFactories extension point for the
- * process factory id indicated in the launch configuration associated with the launch.
- *
- * @param launch the launch the process is contained in
- * @param process the system process to wrap
- * @param label the label assigned to the process
- * @param attributes initial values for the attribute map
- * @return the process <code>null</code> can be returned if errors occur dealing with the process factory
- * designated to create the process.
- * @see IProcess
- * @since 2.1
- */
- public static IProcess newProcess(ILaunch launch, Process process, String label, Map attributes) {
- ILaunchConfiguration config= launch.getLaunchConfiguration();
- String processFactoryID= null;
- if (config != null) {
- try {
- processFactoryID= config.getAttribute(ATTR_PROCESS_FACTORY_ID, (String)null);
- } catch (CoreException e) {
- }
- }
- if (processFactoryID != null) {
- DebugPlugin plugin= DebugPlugin.getDefault();
- if (plugin.fProcessFactories == null) {
- plugin.initializeProcessFactories();
- }
- IConfigurationElement element= (IConfigurationElement) plugin.fProcessFactories.get(processFactoryID);
- if (element == null) {
- return null;
- }
- IProcessFactory processFactory= null;
- try {
- processFactory = (IProcessFactory)element.createExecutableExtension("class"); //$NON-NLS-1$
- } catch (CoreException exception) {
- log(exception);
- return null;
- }
- return processFactory.newProcess(launch, process, label, attributes);
- }
- return new RuntimeProcess(launch, process, label, attributes);
- }
-
- /**
- * Returns any logical structure types that have been contributed for the given
- * value.
- *
- * @param value the value for which logical structure types have been requested
- * @return logical structure types that have been contributed for the given
- * value, possibly an empty collection
- *
- * @since 3.0
- */
- public static ILogicalStructureType[] getLogicalStructureTypes(IValue value) {
- return LogicalStructureManager.getDefault().getLogicalStructureTypes(value);
- }
-
- /**
- * Convenience method that performs a runtime exec on the given command line
- * in the context of the specified working directory, and returns the
- * resulting process. If the current runtime does not support the
- * specification of a working directory, the status handler for error code
- * <code>ERR_WORKING_DIRECTORY_NOT_SUPPORTED</code> is queried to see if the
- * exec should be re-executed without specifying a working directory.
- *
- * @param cmdLine the command line
- * @param workingDirectory the working directory, or <code>null</code>
- * @return the resulting process or <code>null</code> if the exec is
- * cancelled
- * @see Runtime
- *
- * @since 2.1
- */
- public static Process exec(String[] cmdLine, File workingDirectory) throws CoreException {
- return exec(cmdLine, workingDirectory, null);
- }
-
- /**
- * Convenience method that performs a runtime exec on the given command line
- * in the context of the specified working directory, and returns the
- * resulting process. If the current runtime does not support the
- * specification of a working directory, the status handler for error code
- * <code>ERR_WORKING_DIRECTORY_NOT_SUPPORTED</code> is queried to see if the
- * exec should be re-executed without specifying a working directory.
- *
- * @param cmdLine the command line
- * @param workingDirectory the working directory, or <code>null</code>
- * @param envp the environment variables set in the process, or <code>null</code>
- * @return the resulting process or <code>null</code> if the exec is
- * cancelled
- * @see Runtime
- *
- * @since 3.0
- */
- public static Process exec(String[] cmdLine, File workingDirectory, String[] envp) throws CoreException {
- Process p= null;
- try {
-
- if (workingDirectory == null) {
- p= Runtime.getRuntime().exec(cmdLine, envp);
- } else {
- p= Runtime.getRuntime().exec(cmdLine, envp, workingDirectory);
- }
- } catch (IOException e) {
- if (p != null) {
- p.destroy();
- }
- Status status = new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, DebugCoreMessages.getString("DebugPlugin.Exception_occurred_executing_command_line._1"), e); //$NON-NLS-1$
- throw new CoreException(status);
- } catch (NoSuchMethodError e) {
- //attempting launches on 1.2.* - no ability to set working directory
- IStatus status = new Status(IStatus.ERROR, getUniqueIdentifier(), ERR_WORKING_DIRECTORY_NOT_SUPPORTED, DebugCoreMessages.getString("DebugPlugin.Eclipse_runtime_does_not_support_working_directory_2"), e); //$NON-NLS-1$
- IStatusHandler handler = DebugPlugin.getDefault().getStatusHandler(status);
-
- if (handler != null) {
- Object result = handler.handleStatus(status, null);
- if (result instanceof Boolean && ((Boolean)result).booleanValue()) {
- p= exec(cmdLine, null);
- }
- }
- }
- return p;
- }
-
- /**
- * Returns whether this plug-in is in the process of
- * being shutdown.
- *
- * @return whether this plug-in is in the process of
- * being shutdown
- */
- private boolean isShuttingDown() {
- return fShuttingDown;
- }
-
- /**
- * Sets whether this plug-in is in the process of
- * being shutdown.
- *
- * @param value whether this plug-in is in the process of
- * being shutdown
- */
- private void setShuttingDown(boolean value) {
- fShuttingDown = value;
- }
-
- /**
- * Returns the collection of debug event listeners registered
- * with this plug-in.
- *
- * @return list of registered debug event listeners, instances
- * of <code>IDebugEventSetListeners</code>
- */
- private Object[] getEventListeners() {
- return fEventListeners.getListeners();
- }
-
- /**
- * Adds the given debug event filter to the registered
- * event filters. Has no effect if an identical filter
- * is already registerd.
- *
- * @param filter debug event filter
- * @since 2.0
- */
- public void addDebugEventFilter(IDebugEventFilter filter) {
- if (fEventFilters == null) {
- fEventFilters = new ListenerList(2);
- }
- fEventFilters.add(filter);
- }
-
- /**
- * Removes the given debug event filter from the registered
- * event filters. Has no effect if an identical filter
- * is not already registered.
- *
- * @param filter debug event filter
- * @since 2.0
- */
- public void removeDebugEventFilter(IDebugEventFilter filter) {
- if (fEventFilters != null) {
- fEventFilters.remove(filter);
- if (fEventFilters.size() == 0) {
- fEventFilters = null;
- }
- }
- }
-
- /**
- * Logs the given message if in debug mode.
- *
- * @param message the message to log
- * @since 2.0
- */
- public static void logDebugMessage(String message) {
- if (getDefault().isDebugging()) {
- // this message is intentionally not internationalized, as an exception may
- // be due to the resource bundle itself
- log(new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, "Internal message logged from Debug Core: " + message, null)); //$NON-NLS-1$
- }
- }
-
- /**
- * Logs the given message with this plug-in's log and the given
- * throwable or <code>null</code> if none.
- * @param message the message to log
- * @param throwable the exception that occurred or <code>null</code> if none
- */
- public static void logMessage(String message, Throwable throwable) {
- log(new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, message, throwable));
- }
-
- /**
- * Logs the specified status with this plug-in's log.
- *
- * @param status status to log
- * @since 2.0
- */
- public static void log(IStatus status) {
- getDefault().getLog().log(status);
- }
-
- /**
- * Logs the specified throwable with this plug-in's log.
- *
- * @param t throwable to log
- * @since 2.0
- */
- public static void log(Throwable t) {
- IStatus status= new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, "Error logged from Debug Core: ", t); //$NON-NLS-1$
- log(status);
- }
-
- /**
- * Register status handlers.
- *
- */
- private void initializeStatusHandlers() {
- IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.PI_DEBUG_CORE, EXTENSION_POINT_STATUS_HANDLERS);
- IConfigurationElement[] infos= extensionPoint.getConfigurationElements();
- fStatusHandlers = new HashMap(infos.length);
- for (int i= 0; i < infos.length; i++) {
- IConfigurationElement configurationElement = infos[i];
- String id = configurationElement.getAttribute("plugin"); //$NON-NLS-1$
- String code = configurationElement.getAttribute("code"); //$NON-NLS-1$
-
- if (id != null && code != null) {
- try {
- StatusHandlerKey key = new StatusHandlerKey(id, Integer.parseInt(code));
- fStatusHandlers.put(key, configurationElement);
- } catch (NumberFormatException e) {
- // invalid status handler
- invalidStatusHandler(e, configurationElement.getAttribute("id")); //$NON-NLS-1$
- }
- } else {
- // invalid status handler
- invalidStatusHandler(null, configurationElement.getAttribute("id")); //$NON-NLS-1$
- }
- }
- }
-
- /**
- * Register process factories.
- *
- */
- private void initializeProcessFactories() {
- IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.PI_DEBUG_CORE, EXTENSION_POINT_PROCESS_FACTORIES);
- IConfigurationElement[] infos= extensionPoint.getConfigurationElements();
- fProcessFactories = new HashMap(infos.length);
- for (int i= 0; i < infos.length; i++) {
- IConfigurationElement configurationElement = infos[i];
- String id = configurationElement.getAttribute("id"); //$NON-NLS-1$
- String clss = configurationElement.getAttribute("class"); //$NON-NLS-1$
- if (id != null && clss != null) {
- fProcessFactories.put(id, configurationElement);
- } else {
- // invalid process factory
- String badDefiner= infos[i].getNamespace();
- log(new Status(IStatus.ERROR, DebugPlugin.PI_DEBUG_CORE, INTERNAL_ERROR, MessageFormat.format(DebugCoreMessages.getString("DebugPlugin.31"), new String[] {badDefiner, id}), null)); //$NON-NLS-1$
- }
- }
- }
-
- private void invalidStatusHandler(Exception e, String id) {
- log(new Status(IStatus.ERROR, DebugPlugin.PI_DEBUG_CORE, INTERNAL_ERROR, MessageFormat.format(DebugCoreMessages.getString("DebugPlugin.Invalid_status_handler_extension__{0}_2"), new String[] {id}), e)); //$NON-NLS-1$
- }
-
- /**
- * Key for status handler extensions - a plug-in identifier/code pair
- */
- class StatusHandlerKey {
-
- String fPluginId;
- int fCode;
-
- StatusHandlerKey(String pluginId, int code) {
- fPluginId = pluginId;
- fCode = code;
- }
-
- public int hashCode() {
- return fPluginId.hashCode() + fCode;
- }
-
- public boolean equals(Object obj) {
- if (obj instanceof StatusHandlerKey) {
- StatusHandlerKey s = (StatusHandlerKey)obj;
- return fCode == s.fCode && fPluginId.equals(s.fPluginId);
- }
- return false;
- }
- }
-
- /**
- * Returns whether any event filters are registered
- *
- * @return whether any event filters are registered
- */
- private boolean hasEventFilters() {
- return fEventFilters != null && fEventFilters.size() > 0;
- }
-
- /**
- * Sets whether debug events are being dispatched
- */
- private synchronized void setDispatching(boolean dispatching) {
- if (dispatching) {
- fDispatching++;
- } else {
- fDispatching--;
- }
- if (!isDispatching()) {
- if (fAsynchJob != null) {
- fAsynchJob.schedule();
- }
- }
- }
-
- /**
- * Returns whether debug events are being dispatched
- */
- private synchronized boolean isDispatching() {
- return fDispatching > 0;
- }
-
- /**
- * Executes runnables after event dispatch is complete.
- *
- * @since 3.0
- */
- class AsynchJob extends Job {
-
- public AsynchJob() {
- super(DebugCoreMessages.getString("DebugPlugin.Debug_async_queue_1")); //$NON-NLS-1$
- setPriority(Job.INTERACTIVE);
- setSystem(true);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.jobs.Job#shouldRun()
- */
- public boolean shouldRun() {
- return !fShuttingDown && !fRunnables.isEmpty();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
- */
- public IStatus run(IProgressMonitor monitor) {
- // Executes runnables and empties the queue
- Vector v = null;
- synchronized (fRunnables) {
- v = fRunnables;
- fRunnables = new Vector(5);
- }
- MultiStatus failed = null;
- monitor.beginTask(DebugCoreMessages.getString("DebugPlugin.Debug_async_queue_1"), v.size()); //$NON-NLS-1$
- Iterator iter = v.iterator();
- while (iter.hasNext() && !fShuttingDown && !monitor.isCanceled()) {
- Runnable r = (Runnable)iter.next();
- try {
- r.run();
- } catch (Exception e) {
- if (failed == null) {
- failed = new MultiStatus(DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, DebugCoreMessages.getString("DebugPlugin.0"), null); //$NON-NLS-1$
- }
- failed.add(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, DebugCoreMessages.getString("DebugPlugin.0"), e)); //$NON-NLS-1$
- }
- monitor.worked(1);
- }
- monitor.done();
- if (failed == null) {
- return Status.OK_STATUS;
- }
- return failed;
- }
-
- }
-
- /**
- * Returns an event notifier.
- *
- * @return an event notifier
- */
- private EventNotifier getEventNotifier() {
- return new EventNotifier();
- }
-
- /**
- * Filters and dispatches events in a safe runnable to handle any
- * exceptions.
- */
- class EventNotifier implements ISafeRunnable {
-
- private DebugEvent[] fEvents;
- private IDebugEventSetListener fListener;
- private IDebugEventFilter fFilter;
- private int fMode;
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- switch (fMode) {
- case NOTIFY_FILTERS:
- IStatus status = new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, DebugCoreMessages.getString("DebugPlugin.An_exception_occurred_while_filtering_debug_events._3"), exception); //$NON-NLS-1$
- log(status);
- break;
- case NOTIFY_EVENTS:
- status = new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, DebugCoreMessages.getString("DebugPlugin.An_exception_occurred_while_dispatching_debug_events._2"), exception); //$NON-NLS-1$
- log(status);
- break;
- }
- }
-
- /**
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- switch (fMode) {
- case NOTIFY_FILTERS:
- fEvents = fFilter.filterDebugEvents(fEvents);
- break;
- case NOTIFY_EVENTS:
- fListener.handleDebugEvents(fEvents);
- break;
- }
- }
-
- /**
- * Filter and dispatch the given events. If an exception occurs in one
- * listener, events are still fired to subsequent listeners.
- *
- * @param events debug events
- */
- public void dispatch(DebugEvent[] events) {
- fEvents = events;
- try {
- setDispatching(true);
-
- if (hasEventFilters()) {
- fMode = NOTIFY_FILTERS;
- Object[] filters = fEventFilters.getListeners();
- for (int i = 0; i < filters.length; i++) {
- fFilter = (IDebugEventFilter)filters[i];
- Platform.run(this);
- if (fEvents == null || fEvents.length == 0) {
- return;
- }
- }
- }
-
- fMode = NOTIFY_EVENTS;
- Object[] listeners= getEventListeners();
- for (int i= 0; i < listeners.length; i++) {
- fListener = (IDebugEventSetListener)listeners[i];
- Platform.run(this);
- }
-
- } finally {
- setDispatching(false);
- }
- fEvents = null;
- fFilter = null;
- fListener = null;
- }
-
- }
-
- /**
- * Creates and returns a new XML document.
- *
- * @return a new XML document
- * @throws CoreException if unable to create a new document
- * @since 3.0
- */
- public static Document newDocument()throws CoreException {
- try {
- return LaunchManager.getDocument();
- } catch (ParserConfigurationException e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.3"), e); //$NON-NLS-1$
- }
- return null;
- }
-
- /**
- * Serializes the given XML document into a string.
- *
- * @param document XML document to serialize
- * @return a string representing the given document
- * @throws CoreException if unable to serialize the document
- * @since 3.0
- */
- public static String serializeDocument(Document document) throws CoreException {
- try {
- return LaunchManager.serializeDocument(document);
- } catch (TransformerException e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.4"), e); //$NON-NLS-1$
- } catch (IOException e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.5"), e); //$NON-NLS-1$
- }
- return null;
- }
-
- /**
- * Parses the given string representing an XML document, returning its
- * root element.
- *
- * @param document XML document as a string
- * @return the document's root element
- * @throws CoreException if unable to parse the document
- * @since 3.0
- */
- public static Element parseDocument(String document) throws CoreException {
- Element root = null;
- InputStream stream = null;
- try{
- DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
- stream = new ByteArrayInputStream(document.getBytes());
- root = parser.parse(stream).getDocumentElement();
- } catch (ParserConfigurationException e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.6"), e); //$NON-NLS-1$
- } catch (FactoryConfigurationError e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.7"), e); //$NON-NLS-1$
- } catch (SAXException e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.8"), e); //$NON-NLS-1$
- } catch (IOException e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.9"), e); //$NON-NLS-1$
- } finally {
- try{
- stream.close();
- } catch(IOException e) {
- abort(SourceLookupMessages.getString("SourceLookupUtils.10"), e); //$NON-NLS-1$
- }
- }
- return root;
- }
-
- /**
- * Throws an exception with the given message and underlying exception.
- *
- * @param message error message
- * @param exception underlying exception, or <code>null</code>
- * @throws CoreException
- */
- private static void abort(String message, Throwable exception) throws CoreException {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, message, exception);
- throw new CoreException(status);
- }
-
- /**
- * Utility class to parse command line arguments.
- *
- * @since 3.1
- */
- private static class ArgumentParser {
- private String fArgs;
- private int fIndex= 0;
- private int ch= -1;
-
- public ArgumentParser(String args) {
- fArgs= args;
- }
-
- public String[] parseArguments() {
- List v= new ArrayList();
-
- ch= getNext();
- while (ch > 0) {
- if (Character.isWhitespace((char)ch)) {
- ch= getNext();
- } else {
- if (ch == '"') {
- StringBuffer buf = new StringBuffer();
- if (Platform.getOS().equals(Constants.OS_WIN32)) {
- buf.append('"');
- }
- buf.append(parseString());
- if (Platform.getOS().equals(Constants.OS_WIN32)) {
- buf.append('"');
- } else if (buf.length() == 0) {
- // empty string on non-windows platform
- buf.append("\"\""); //$NON-NLS-1$
- }
- v.add(buf.toString());
- } else {
- v.add(parseToken());
- }
- }
- }
-
- String[] result= new String[v.size()];
- v.toArray(result);
- return result;
- }
-
- private int getNext() {
- if (fIndex < fArgs.length())
- return fArgs.charAt(fIndex++);
- return -1;
- }
-
- private String parseString() {
- ch= getNext();
- if (ch == '"') {
- ch= getNext();
- return ""; //$NON-NLS-1$
- }
- StringBuffer buf= new StringBuffer();
- while (ch > 0 && ch != '"') {
- if (ch == '\\') {
- ch= getNext();
- if (ch != '"') { // Only escape double quotes
- buf.append('\\');
- } else {
- if (Platform.getOS().equals(Constants.OS_WIN32)) {
- // @see Bug 26870. Windows requires an extra escape for embedded strings
- buf.append('\\');
- }
- }
- }
- if (ch > 0) {
- buf.append((char)ch);
- ch= getNext();
- }
- }
- ch= getNext();
- return buf.toString();
- }
-
- private String parseToken() {
- StringBuffer buf= new StringBuffer();
-
- while (ch > 0 && !Character.isWhitespace((char)ch)) {
- if (ch == '\\') {
- ch= getNext();
- if (Character.isWhitespace((char)ch)) {
- // end of token, don't lose trailing backslash
- buf.append('\\');
- return buf.toString();
- }
- if (ch > 0) {
- if (ch != '"') { // Only escape double quotes
- buf.append('\\');
- } else {
- if (Platform.getOS().equals(Constants.OS_WIN32)) {
- // @see Bug 26870. Windows requires an extra escape for embedded strings
- buf.append('\\');
- }
- }
- buf.append((char)ch);
- ch= getNext();
- } else if (ch == -1) { // Don't lose a trailing backslash
- buf.append('\\');
- }
- } else if (ch == '"') {
- buf.append(parseString());
- } else {
- buf.append((char)ch);
- ch= getNext();
- }
- }
- return buf.toString();
- }
- }
-
- /**
- * Prarses the given command line into seperate arguments that can be passed to
- * <code>DebugPlugin.exec(String[], File)</code>. Embedded quotes and slashes
- * are escaped.
- *
- * @param args command line arguments as a single string
- * @return individual arguments
- * @since 3.1
- */
- public static String[] parseArguments(String args) {
- if (args == null)
- return new String[0];
- ArgumentParser parser= new ArgumentParser(args);
- String[] res= parser.parseArguments();
-
- return res;
- }
-
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointListener.java
deleted file mode 100644
index 050ac294a..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointListener.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-
-import org.eclipse.core.resources.IMarkerDelta;
-import org.eclipse.debug.core.model.IBreakpoint;
-
-/**
- * A breakpoint listener is notified of breakpoint additions,
- * removals, and changes. Listeners register and deregister with the
- * breakpoint manager.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IBreakpointManager
- */
-
-public interface IBreakpointListener {
-
- /**
- * Notifies this listener that the given breakpoint has been added
- * to the breakpoint manager.
- *
- * @param breakpoint the added breakpoint
- * @since 2.0
- */
- public void breakpointAdded(IBreakpoint breakpoint);
- /**
- * Notifies this listener that the given breakpoint has been removed
- * from the breakpoint manager.
- * If the given breakpoint has been removed because it has been deleted,
- * the associated marker delta is also provided.
- *
- * @param breakpoint the removed breakpoint
- * @param delta the associated marker delta, or <code>null</code> when
- * the breakpoint is removed from the breakpoint manager without
- * being deleted
- *
- * @see org.eclipse.core.resources.IMarkerDelta
- * @since 2.0
- */
- public void breakpointRemoved(IBreakpoint breakpoint, IMarkerDelta delta);
-
- /**
- * Notifies this listener that an attribute of the given breakpoint has
- * changed, as described by the delta.
- *
- * @param breakpoint the changed breakpoint
- * @param delta the marker delta that describes the changes
- * with the marker associated with the given breakpoint, or
- * <code>null</code> when the breakpoint change does not generate
- * a marker delta
- *
- * @see org.eclipse.core.resources.IMarkerDelta
- * @since 2.0
- */
- public void breakpointChanged(IBreakpoint breakpoint, IMarkerDelta delta);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManager.java
deleted file mode 100644
index 6f2ad1a0a..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManager.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.model.IBreakpoint;
-
-/**
- * The breakpoint manager manages the collection of breakpoints
- * in the workspace. A breakpoint suspends the execution of a
- * program being debugged. The kinds of breakpoints supported by each
- * debug architecture and the information required to create those
- * breakpoints is defined by each debug architecture.
- * Breakpoint creation is a client responsibility.
- * <p>
- * Clients interested in breakpoint change notification may
- * register with the breakpoint manager - see
- * <code>IBreakpointListener</code> and <code>IBreakpointsListener</code>
- * </p>
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * @see org.eclipse.debug.core.IBreakpointListener
- * @see org.eclipse.debug.core.IBreakpointsListener
- */
-public interface IBreakpointManager {
- /**
- * Adds the given breakpoint to the collection of registered breakpoints
- * in the workspace and notifies all registered listeners. This has no effect
- * if the given breakpoint is already registered.
- *
- * @param breakpoint the breakpoint to add
- *
- * @exception DebugException if adding fails. Reasons include:<ul>
- * <li>CONFIGURATION_INVALID - the required <code>MODEL_IDENTIFIER</code> attribute
- * is not set on the breakpoint marker.</li>
- * <li>A <code>CoreException</code> occurred while verifying the <code>MODEL_IDENTIFIER</code>
- * attribute.</li>
- * </ul>
- * @since 2.0
- */
- public void addBreakpoint(IBreakpoint breakpoint) throws CoreException;
-
- /**
- * Adds the given breakpoints to the collection of registered breakpoints
- * in the workspace and notifies all registered listeners. Has no effect
- * on breakpoints that are already registered.
- *
- * @param breakpoints the breakpoints to add
- *
- * @exception DebugException if adding fails. Reasons include:<ul>
- * <li>CONFIGURATION_INVALID - the required <code>MODEL_IDENTIFIER</code> attribute
- * is not set on a breakpoint marker.</li>
- * <li>A <code>CoreException</code> occurred while verifying a <code>MODEL_IDENTIFIER</code>
- * attribute.</li>
- * </ul>
- * @since 2.1
- */
- public void addBreakpoints(IBreakpoint[] breakpoints) throws CoreException;
-
- /**
- * Returns the breakpoint associated with the given marker or
- * <code>null</code> if no such breakpoint exists
- *
- * @param marker the marker
- * @return the breakpoint associated with the marker
- * or <code>null</code> if none exists
- * @since 2.0
- */
- public IBreakpoint getBreakpoint(IMarker marker);
-
- /**
- * Returns a collection of all registered breakpoints.
- * Returns an empty array if no breakpoints are registered.
- *
- * @return an array of breakpoints
- * @since 2.0
- */
- public IBreakpoint[] getBreakpoints();
-
- /**
- * Returns whether there are any registered breakpoints.
- *
- * @return whether there are any registered breakpoints
- * @since 2.0
- */
- public boolean hasBreakpoints();
-
- /**
- * Returns a collection of all breakpoints registered for the
- * given debug model. Answers an empty array if no breakpoints are registered
- * for the given debug model.
- *
- * @param modelIdentifier identifier of a debug model plug-in
- * @return an array of breakpoints
- * @since 2.0
- */
- public IBreakpoint[] getBreakpoints(String modelIdentifier);
-
- /**
- * Returns whether the given breakpoint is currently
- * registered with this breakpoint manager.
- *
- * @return whether the breakpoint is registered
- * @since 2.0
- */
- public boolean isRegistered(IBreakpoint breakpoint);
-
- /**
- * Notifies all registered listeners that the given
- * breakpoint has changed. Has no effect if the given
- * breakpoint is not currently registered.
- *
- * This method is intended to be used when a breakpoint
- * attribute is changed that does not alter the breakpoint's
- * underlying marker, that is, when notification will not occur
- * via the marker delta mechanism.
- *
- * @param breakpoint the breakpoint that has changed.
- * @since 2.0
- */
- public void fireBreakpointChanged(IBreakpoint breakpoint);
-
- /**
- * Removes the given breakpoint from the breakpoint manager, deletes
- * the marker associated with the breakpoint if the <code>delete</code> flag
- * is <code>true</code>, and notifies all registered
- * listeners. Has no effect if the given breakpoint is not currently
- * registered.
- *
- * @param breakpoint the breakpoint to remove
- * @param delete whether to delete the marker associated with the
- * breakpoint
- * @exception CoreException if an exception occurs while deleting the
- * underlying marker.
- * @since 2.0
- */
- public void removeBreakpoint(IBreakpoint breakpoint, boolean delete) throws CoreException;
-
- /**
- * Removes the given breakpoints from the breakpoint manager, deletes
- * the markers associated with the breakpoints if the <code>delete</code> flag
- * is <code>true</code>, and notifies all registered
- * listeners. Has no effect on breakpoints not currently
- * registered.
- *
- * @param breakpoints the breakpoints to remove
- * @param delete whether to delete the markers associated with the
- * breakpoints
- * @exception CoreException if an exception occurs while deleting an
- * underlying marker.
- * @since 2.1
- */
- public void removeBreakpoints(IBreakpoint[] breakpoints, boolean delete) throws CoreException;
-
- /**
- * Adds the given listener to the collection of registered breakpoint listeners.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener the listener to add
- */
- public void addBreakpointListener(IBreakpointListener listener);
-
- /**
- * Removes the given listener from the collection of registered breakpoint listeners.
- * Has no effect if an identical listener is not already registered.
- *
- * @param listener the listener to remove
- */
- public void removeBreakpointListener(IBreakpointListener listener);
-
- /**
- * Adds the given listener to the collection of registered breakpoint listeners.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener the listener to add
- * @since 2.1
- */
- public void addBreakpointListener(IBreakpointsListener listener);
-
- /**
- * Removes the given listener from the collection of registered breakpoint listeners.
- * Has no effect if an identical listener is not already registered.
- *
- * @param listener the listener to remove
- * @since 2.1
- */
- public void removeBreakpointListener(IBreakpointsListener listener);
-
- /**
- * Adds the given listener to the collection of registered breakpoint manager
- * listeners. Has no effect if an identical listener is already registered.
- *
- * @param listener the listener to add
- * @since 3.0
- */
- public void addBreakpointManagerListener(IBreakpointManagerListener listener);
-
- /**
- * Removes the given listener from the collection of registered breakpoint manager
- * listeners. Has no effect if an identical listener is not already registered.
- *
- * @param listener the listener to remove
- * @since 3.0
- */
- public void removeBreakpointManagerListener(IBreakpointManagerListener listener);
-
- /**
- * Returns whether or not this breakpoint manager is enabled.
- * When a breakpoint manager is enabled, all breakpoints
- * should be honored. When it is disabled, breakpoints should
- * not be honored, regardless of each breakpoint's enabled state.
- *
- * @return whether or not this breakpoint manager is enabled
- * @since 3.0
- */
- public boolean isEnabled();
-
- /**
- * Sets the enabled state of this breakpoint manager. When
- * enabled, breakpoints should be honored. When disabled, all
- * breakpoints should be ignored.
- *
- * @param enabled whether this breakpoint manager should be
- * enabled
- * @since 3.0
- */
- public void setEnabled(boolean enabled);
-
- /**
- * Returns the name (user presentable String) of the given
- * breakpoint's type or <code>null</code> if none has been
- * specified.
- *
- * @param breakpoint the breakpoint
- * @return the name of the given breakpoint's type or <code>null</code>
- * @since 3.1
- */
- public String getTypeName(IBreakpoint breakpoint);
-
- /**
- * Sets the group which breakpoints will be automatically
- * added to when they're added to this manager. If <code>null</code>,
- * breakpoints will not be automatically added to any group.
- * @param group the group to automatically add breakpoints to
- * or <code>null</code>
- * @see IBreakpoint#setGroup(String)
- * @since 3.1
- */
- public void setAutoGroup(String group);
-
- /**
- * Returns the group which breakpoints will be automatically
- * added to when they're added to this manager or <code>null</code>
- * if none.
- * @return the group which breakpoints will be automatically added
- * to or <code>null</code>
- * @see IBreakpoint#getGroup()
- * @since 3.1
- */
- public String getAutoGroup();
-
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManagerListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManagerListener.java
deleted file mode 100644
index 0ad6127ab..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManagerListener.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-/**
- * A breakpoint manager listener is notified when the breakpoint manager's
- * enablement changes. When the breakpoint manager is disabled, no breakpoints
- * should be honored. When the breakpoint manager is enabled, breakpoints should
- * be honored as usual.
- * <p>
- * Clients are intended to implement this interface.
- * </p>
- * @see IBreakpointManager
- * @since 3.0
- */
-public interface IBreakpointManagerListener {
-
- /**
- * Notifies the listener that the breakpoint manager's enablement
- * has changed.
- *
- * @param enabled whether or not the breakpoint manager is enabled
- */
- public void breakpointManagerEnablementChanged(boolean enabled);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointsListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointsListener.java
deleted file mode 100644
index 7879b0188..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointsListener.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.core.resources.IMarkerDelta;
-import org.eclipse.debug.core.model.IBreakpoint;
-
-/**
- * A breakpoints listener is notified of breakpoint additions,
- * removals, and changes. Listeners register and deregister with the
- * breakpoint manager.
- * <p>
- * This interface is analagous to <code>IBreakpointListener</code> except
- * notifications are batched for more than one breakpoint when possible.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IBreakpointManager
- * @since 2.1
- */
-
-public interface IBreakpointsListener {
-
- /**
- * Notifies this listener that the given breakpoints have been added
- * to the breakpoint manager.
- *
- * @param breakpoints the added breakpoints
- */
- public void breakpointsAdded(IBreakpoint[] breakpoints);
- /**
- * Notifies this listener that the given breakpoints have been removed
- * from the breakpoint manager.
- * If a breakpoint has been removed because it has been deleted,
- * the associated marker delta is also provided.
- *
- * @param breakpoints the removed breakpoints
- * @param deltas the associated marker deltas. Entries may be
- * <code>null</code> when a breakpoint is removed from the breakpoint
- * manager without being deleted
- *
- * @see org.eclipse.core.resources.IMarkerDelta
- */
- public void breakpointsRemoved(IBreakpoint[] breakpoints, IMarkerDelta[] deltas);
-
- /**
- * Notifies this listener that the given breakpoints have
- * changed, as described by the corresponding deltas.
- *
- * @param breakpoints the changed breakpoints
- * @param deltas the marker deltas that describe the changes
- * with the markers associated with the given breakpoints. Entries
- * may be <code>null</code> when a breakpoint change does not generate
- * a marker delta
- *
- * @see org.eclipse.core.resources.IMarkerDelta
- */
- public void breakpointsChanged(IBreakpoint[] breakpoints, IMarkerDelta[] deltas);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventFilter.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventFilter.java
deleted file mode 100644
index 8654fa133..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventFilter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-/**
- * An event filter allows clients to intercept debug events.
- * Event filters are registered with the debug plug-in.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see DebugPlugin
- * @since 2.0
- */
-public interface IDebugEventFilter {
-
- /**
- * Filters the given set of debug events, and returns the set of debug
- * events that should be fired to registered listeners - <code>null</code>
- * or an empty collection if no debug events should be fired.
- * <p>
- * When multiple event filters are registered, events are passed through
- * all filters. That is, the events returned from the first filter are
- * passed through the second filter, and so on.
- * </p>
- *
- * @return the set of debug events to fire
- */
- public DebugEvent[] filterDebugEvents(DebugEvent[] events);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventSetListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventSetListener.java
deleted file mode 100644
index 7b56fed66..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventSetListener.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-/**
- * A debug event set listener registers with the debug plug-in
- * to receive event notification from programs being run or debugged.
- * <p>
- * When more than one event is reported, each event has occurred at the
- * same location in a target program. For example, a breakpoint may
- * reside at the same location at which a step request completes. In
- * this case the breakpoint event and step end event are reported together
- * in the same event set.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see DebugEvent
- * @since 2.0
- */
-public interface IDebugEventSetListener {
- /**
- * Notifies this listener of the given debug events.
- * All of the events in the given event collection occurred
- * at the same location the program be run or debugged.
- *
- * @param events the debug events
- */
- public void handleDebugEvents(DebugEvent[] events);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionListener.java
deleted file mode 100644
index 13a1e9126..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionListener.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-
-import org.eclipse.debug.core.model.IExpression;
-
-/**
- * An expression listener is notified of expression additions,
- * removals, and changes. Listeners register and deregister with the
- * expression manager.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IExpressionManager
- * @since 2.0
- */
-
-public interface IExpressionListener {
-
- /**
- * Notifies this listener that the given expression has been added
- * to the expression manager.
- *
- * @param expression the added expression
- */
- public void expressionAdded(IExpression expression);
- /**
- * Notifies this listener that the given expression has been removed
- * from the expression manager.
- *
- * @param expression the removed expression
- */
- public void expressionRemoved(IExpression expression);
-
- /**
- * Notifies this listener that the given expression has
- * changed.
- *
- * @param expression the changed expression
- */
- public void expressionChanged(IExpression expression);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionManager.java
deleted file mode 100644
index cf9b14b88..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionManager.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.debug.core.model.IExpression;
-import org.eclipse.debug.core.model.IWatchExpression;
-import org.eclipse.debug.core.model.IWatchExpressionDelegate;
-
-/**
- * The expression manager manages the collection of registered
- * expressions in the workspace. An expression is a snippet of code
- * that can be evaluated to produce a value. Expression creation
- * and evaluation are client responsibilities.
- * <p>
- * Clients interested in expression change notification may
- * register with the expression manager - see
- * <code>IExpressionListener</code> and <code>IExpressionsListener</code>.
- * </p>
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * @see org.eclipse.debug.core.model.IExpression
- * @see org.eclipse.debug.core.IExpressionListener
- * @see org.eclipse.debug.core.IExpressionsListener
- * @since 2.0
- */
-public interface IExpressionManager {
- /**
- * Adds the given expression to the collection of registered expressions
- * in the workspace and notifies all registered listeners. This has no effect
- * if the given expression is already registered.
- *
- * @param expression the expression to add
- */
- public void addExpression(IExpression expression);
-
- /**
- * Adds the given expressions to the collection of registered expressions
- * in the workspace and notifies all registered listeners. Has no effect
- * on expressions already registered.
- *
- * @param expressions the expressions to add
- * @since 2.1
- */
- public void addExpressions(IExpression[] expressions);
-
- /**
- * Creates and returns a new watch expression with the
- * given text. The returned expression is <b>not</b> added to
- * this manager.
- *
- * @param expressionText the text for the new expression
- * @since 3.0
- */
- public IWatchExpression newWatchExpression(String expressionText);
-
- /**
- * Returns a collection of all registered expressions,
- * possibly empty.
- *
- * @return an array of expressions
- */
- public IExpression[] getExpressions();
-
- /**
- * Returns whether there are any registered expressions
- *
- * @return whether there are any registered expressions
- */
- public boolean hasExpressions();
-
- /**
- * Returns a collection of all expressions registered for the
- * given debug model,possibly empty.
- *
- * @param modelIdentifier identifier of a debug model plug-in
- * @return an array of expressions
- */
- public IExpression[] getExpressions(String modelIdentifier);
-
- /**
- * Removes the given expression from the expression manager,
- * and notifies all registered listeners. Has no effect if the
- * given expression is not currently registered.
- *
- * @param expression the expression to remove
- */
- public void removeExpression(IExpression expression);
-
- /**
- * Removes the given expressions from the collection of registered expressions
- * in the workspace and notifies all registered listeners. Has no effect
- * on expressions not already registered.
- *
- * @param expressions the expressions to remove
- * @since 2.1
- */
- public void removeExpressions(IExpression[] expressions);
-
- /**
- * Adds the given listener to the collection of registered expression listeners.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener the listener to add
- */
- public void addExpressionListener(IExpressionListener listener);
-
- /**
- * Removes the given listener from the collection of registered expression listeners.
- * Has no effect if an identical listener is not already registered.
- *
- * @param listener the listener to remove
- */
- public void removeExpressionListener(IExpressionListener listener);
-
- /**
- * Adds the given listener to the collection of registered expression listeners.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener the listener to add
- * @since 2.1
- */
- public void addExpressionListener(IExpressionsListener listener);
-
- /**
- * Removes the given listener from the collection of registered expression listeners.
- * Has no effect if an identical listener is not already registered.
- *
- * @param listener the listener to remove
- * @since 2.1
- */
- public void removeExpressionListener(IExpressionsListener listener);
-
- /**
- * Returns a new watch expression delegate for the given debug
- * model or <code>null</code> if no delegate is available.
- *
- * @param id the unique identifier of a debug model for which a
- * watch expression delegate has been contributed
- * @return a watch expression delegate associated with the given model
- * or <code>null</code> if none
- * @since 3.0
- * @see IWatchExpressionDelegate
- */
- public IWatchExpressionDelegate newWatchExpressionDelegate(String id);
-
- /**
- * Returns whether a watch expression delegate has been contributed for
- * the given debug model.
- *
- * @param id the unique identifier of a debug model
- * @return whether a watch expression delegate has been contributed for
- * the given debug model
- * @since 3.1
- * @see IWatchExpressionDelegate
- */
- public boolean hasWatchExpressionDelegate(String id);
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionsListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionsListener.java
deleted file mode 100644
index d1039fa48..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionsListener.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.debug.core.model.IExpression;
-
-/**
- * An expression listener is notified of expression additions,
- * removals, and changes. Listeners register and deregister with the
- * expression manager.
- * <p>
- * This interface is analagous to <code>IExpressionListener</code>, except
- * notifications are batched for more than when expression when possible.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IExpressionManager
- * @since 2.1
- */
-
-public interface IExpressionsListener {
-
- /**
- * Notifies this listener that the given expressions have been added
- * to the expression manager.
- *
- * @param expressions the added expressions
- */
- public void expressionsAdded(IExpression[] expressions);
- /**
- * Notifies this listener that the given expressions has been removed
- * from the expression manager.
- *
- * @param expressions the removed expressions
- */
- public void expressionsRemoved(IExpression[] expressions);
-
- /**
- * Notifies this listener that the given expressions have
- * changed.
- *
- * @param expressions the changed expressions
- */
- public void expressionsChanged(IExpression[] expressions);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunch.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunch.java
deleted file mode 100644
index d7b8f4f9d..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunch.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.model.ISourceLocator;
-import org.eclipse.debug.core.model.ITerminate;
-
-/**
- * A launch is the result of launching a debug session
- * and/or one or more system processes.
- * <p>
- * This interface is not intended to be implemented by clients. Clients
- * should create instances of this interface by using the implementation
- * provided by the class <code>Launch</code>.
- * </p>
- * @see Launch
- */
-public interface ILaunch extends ITerminate, IAdaptable {
- /**
- * Returns the children of this launch - a collection
- * of one or more debug targets and processes, possibly empty.
- *
- * @return an array (element type:<code>IDebugTarget</code> or <code>IProcess</code>),
- * or an empty array
- */
- public Object[] getChildren();
- /**
- * Returns the primary (first) debug target associated with this launch, or <code>null</code>
- * if no debug target is associated with this launch. All debug targets
- * associated with this launch may be retrieved by
- * <code>getDebugTargets()</code>.
- *
- * @return the primary debug target associated with this launch, or <code>null</code>
- */
- public IDebugTarget getDebugTarget();
-
- /**
- * Returns the processes that were launched,
- * or an empty collection if no processes were launched.
- *
- * @return array of processes
- */
- public IProcess[] getProcesses();
-
- /**
- * Returns all the debug targets associated with this launch,
- * or an empty collection if no debug targets are associated
- * with this launch. The primary debug target is the first
- * in the collection (if any).
- *
- * @return array of debug targets
- * @since 2.0
- */
- public IDebugTarget[] getDebugTargets();
-
- /**
- * Adds the given debug target to this launch. Has no effect
- * if the given debug target is already associated with this
- * launch. Registered listeners are notified that this launch
- * has changed.
- *
- * @param target debug target to add to this launch
- * @since 2.0
- */
- public void addDebugTarget(IDebugTarget target);
-
- /**
- * Removes the given debug target from this launch. Has no effect
- * if the given debug target is not already associated with this
- * launch. Registered listeners are notified that this launch
- * has changed.
- *
- * @param target debug target to remove from this launch
- * @since 2.0
- */
- public void removeDebugTarget(IDebugTarget target);
-
- /**
- * Adds the given process to this launch. Has no effect
- * if the given process is already associated with this
- * launch. Registered listeners are notified that this launch
- * has changed.
- *
- * @param process the process to add to this launch
- * @since 2.0
- */
- public void addProcess(IProcess process);
-
- /**
- * Removes the given process from this launch. Has no effect
- * if the given process is not already associated with this
- * launch. Registered listeners are notified that this launch
- * has changed.
- *
- * @param process the process to remove from this launch
- * @since 2.0
- */
- public void removeProcess(IProcess process);
-
- /**
- * Returns the source locator to use for locating source elements for
- * the debug target associated with this launch, or <code>null</code>
- * if source lookup is not supported.
- *
- * @return the source locator
- */
- public ISourceLocator getSourceLocator();
-
- /**
- * Sets the source locator to use for locating source elements for
- * the debug target associated with this launch, or <code>null</code>
- * if source lookup is not supported.
- *
- * @param sourceLocator source locator or <code>null</code>
- * @since 2.0
- */
- public void setSourceLocator(ISourceLocator sourceLocator);
-
- /**
- * Returns the mode of this launch - one of the mode constants defined by
- * the launch manager.
- *
- * @return the launch mode
- * @see ILaunchManager
- */
- public String getLaunchMode();
-
- /**
- * Returns the configuration that was launched, or <code>null</code>
- * if no configuration was launched.
- *
- * @return the launched configuration or <code>null</code>
- * @since 2.0
- */
- public ILaunchConfiguration getLaunchConfiguration();
-
- /**
- * Sets the value of a client defined attribute.
- *
- * @param key the attribute key
- * @param value the attribute value
- * @since 2.0
- */
- public void setAttribute(String key, String value);
-
- /**
- * Returns the value of a client defined attribute.
- *
- * @param key the attribute key
- * @return value the attribute value, or <code>null</code> if undefined
- * @since 2.0
- */
- public String getAttribute(String key);
-
- /**
- * Returns whether this launch contains at least one process
- * or debug target.
- *
- * @return whether this launch contains at least one process
- * or debug target
- * @since 2.0
- */
- public boolean hasChildren();
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfiguration.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfiguration.java
deleted file mode 100644
index c66b224af..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfiguration.java
+++ /dev/null
@@ -1,466 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * A launch configuration describes how to launch an application.
- * Each launch configuration is an instance of a type of launch
- * configuration as described by a launch configuration type
- * extension. Each launch configuration has a launch configuration
- * delegate which performs the actual launching of a
- * configuration.
- * <p>
- * A launch configuration may be shared in a repository via
- * standard VCM mechanisms, or may be stored locally, essentially
- * making the launch configuration private for a single user.
- * Thus, a launch configuration may stored as a file in the
- * workspace (shared), or as a file in the debug plug-in's state
- * location.
- * </p>
- * A launch configuration is a handle to its underlying storage.
- * Methods annotated as "handle-only" do not require a configuration
- * to exist. Methods that require an underlying configuration to exist
- * throw a <code>CoreException</code> when an underlying configuration
- * is missing.
- * </p>
- * <p>
- * A launch configuration is modified by obtaining a working copy
- * of a launch configuration, modifying the working copy, and then
- * saving the working copy.
- * </p>
- * <p>
- * This interface is not intended to be implemented by clients. Clients
- * that define a launch configuration delegate extension implement the
- * <code>ILaunchConfigurationDelegate</code> interface.
- * </p>
- * @see ILaunchConfigurationType
- * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate
- * @see ILaunchConfigurationWorkingCopy
- * @since 2.0
- */
-public interface ILaunchConfiguration extends IAdaptable {
-
- /**
- * The file extension for launch configuration files
- * (value <code>"launch"</code>).
- */
- public static final String LAUNCH_CONFIGURATION_FILE_EXTENSION = "launch"; //$NON-NLS-1$
-
- /**
- * Launch configuration attribute storing an identifier of
- * a persistable source locator extension. When this attribute is
- * specified, a new source locator will be created automatically and
- * associated with the launch for this configuration.
- *
- * @see org.eclipse.debug.core.model.IPersistableSourceLocator
- */
- public static final String ATTR_SOURCE_LOCATOR_ID = DebugPlugin.getUniqueIdentifier() + ".source_locator_id"; //$NON-NLS-1$
-
- /**
- * Launch configuration attribute storing a memento of a
- * source locator. When this attribute is specified in
- * conjunction with a source locator id, the source locator
- * created for a launch will be initialized with this memento.
- * When not specified, but a source locator id is specified,
- * the source locator will be initialized to default values.
- *
- * @see org.eclipse.debug.core.model.IPersistableSourceLocator
- */
- public static final String ATTR_SOURCE_LOCATOR_MEMENTO = DebugPlugin.getUniqueIdentifier() + ".source_locator_memento"; //$NON-NLS-1$
-
- /**
- * Launches this configuration in the specified mode by delegating to
- * this configuration's launch configuration delegate, and returns the
- * resulting launch.
- * <p>
- * Equivalent to calling <code>launch(String, IProgressMontitor, boolean)</code>
- * with a <code>build</code> flag of <code>false</code>.
- * </p>
- * @param mode the mode in which to launch, one of the mode constants
- * defined by <code>ILaunchManager</code> - <code>RUN_MODE</code> or <code>DEBUG_MODE</code>.
- * @param monitor progress monitor, or <code>null</code>. Since 3.0, this
- * parameter is ignored. A cancellable progress monitor is provided by the Job
- * framework.
- * @return the resulting launch
- * @exception CoreException if this method fails. Reasons include:<ul>
- * <li>unable to instantiate the underlying launch configuration delegate</li>
- * <li>the launch fails (in the delegate)</code>
- * </ul>
- */
- public ILaunch launch(String mode, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Launches this configuration in the specified mode by delegating to
- * this configuration's launch configuration delegate, and returns the
- * resulting launch.
- * <p>
- * If this configuration's launch delegate implements
- * <code>ILaunchConfigurationDelegate2</code>, the launch delegate will
- * be consulted to provide a launch object for the launch,
- * perform pre-launch checks, and build before the launch.
- * If <code>build</code> is <code>true</code> and the associated launch
- * delegate does not implement <code>ILaunchConfigurationDelegate2</code>
- * an incremental workspace build will be performed before the launch
- * by the debug platform.
- * </p>
- * <p>
- * The resulting launch object is registered with the launch manager
- * before passing it to this configuration's delegate launch method, for
- * contributions (debug targets and processes).
- * </p>
- * <p>
- * If the delegate contributes a source locator to the launch, that
- * source locator is used. Otherwise an appropriate source locator is
- * contributed to the launch based on the values of
- * <code>ATTR_SOURCE_LOCATOR_ID</code> and
- * <code>ATTR_SOURCE_LOCATOR_MEMENTO</code>. If the launch is cancelled (via
- * the given progress monitor), the launch is removed from the launch
- * manager. The launch is returned whether cancelled or not. Invoking this
- * method causes the underlying launch configuration delegate to be
- * instantiated (if not already).
- * </p>
- * @param mode the mode in which to launch, one of the mode constants
- * defined by <code>ILaunchManager</code> - <code>RUN_MODE</code> or <code>DEBUG_MODE</code>.
- * @param monitor progress monitor, or <code>null</code>. Since 3.0, this
- * parameter is ignored. A cancellable progress monitor is provided by the Job
- * framework.
- * @param build whether the workspace should be built before the launch
- * @return resulting launch
- * @throws CoreException if an exception occurrs during the launch sequence
- * @since 3.0
- */
- public ILaunch launch(String mode, IProgressMonitor monitor, boolean build) throws CoreException;
-
- /**
- * Launches this configuration in the specified mode by delegating to
- * this configuration's launch configuration delegate, and returns the
- * resulting launch.
- * <p>
- * If this configuration's launch delegate implements
- * <code>ILaunchConfigurationDelegate2</code>, the launch delegate will
- * be consulted to provide a launch object for the launch,
- * perform pre-launch checks, and build before the launch.
- * If <code>build</code> is <code>true</code> and the associated launch
- * delegate does not implement <code>ILaunchConfigurationDelegate2</code>
- * an incremental workspace build will be performed before the launch
- * by the debug platform.
- * </p>
- * <p>
- * When <code>register</code> is <code>true</code>, the resulting launch object
- * is registered with the launch manager before passing it to this configuration's delegate
- * launch method, for contributions (debug targets and processes). When
- * <code>register</code> is <code>false</code>, the launch is not registered with
- * the launch manager. Clients that launch configurations without registering
- * a launch should register appropiate debug event filters to intercept events
- * from unregistered launches.
- * </p>
- * <p>
- * If the delegate contributes a source locator to the launch, that
- * source locator is used. Otherwise an appropriate source locator is
- * contributed to the launch based on the values of
- * <code>ATTR_SOURCE_LOCATOR_ID</code> and
- * <code>ATTR_SOURCE_LOCATOR_MEMENTO</code>. If the launch is cancelled (via
- * the given progress monitor), the launch is removed from the launch
- * manager. The launch is returned whether cancelled or not. Invoking this
- * method causes the underlying launch configuration delegate to be
- * instantiated (if not already).
- * </p>
- * @param mode the mode in which to launch, one of the mode constants
- * defined by <code>ILaunchManager</code> - <code>RUN_MODE</code> or <code>DEBUG_MODE</code>.
- * @param monitor progress monitor, or <code>null</code>. Since 3.0, this
- * parameter is ignored. A cancellable progress monitor is provided by the Job
- * framework.
- * @param build whether the workspace should be built before the launch
- * @param register whether to register the resulting launch with the launch manager
- * @return resulting launch
- * @throws CoreException if an exception occurrs during the launch sequence
- * @since 3.1
- */
- public ILaunch launch(String mode, IProgressMonitor monitor, boolean build, boolean register) throws CoreException;
-
- /**
- * Returns whether this launch configuration supports the
- * specified mode. This is a handle-only method.
- *
- * @param mode a mode in which a configuration can be launched, one of
- * the mode constants defined by <code>ILaunchManager</code> - <code>RUN_MODE</code> or
- * <code>DEBUG_MODE</code>.
- * @return whether this launch configuration supports the
- * specified mode
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>Unable to retrieve this launch configuration's type.</li>
- * </ul>
- */
- public boolean supportsMode(String mode) throws CoreException;
-
- /**
- * Returns the name of this launch configuration. This is
- * a handle-only method.
- *
- * @return the name of this launch configuration
- */
- public String getName();
-
- /**
- * Returns the location of this launch configuration as a
- * path. This is a handle-only method.
- *
- * @return the location of this launch configuration as a
- * path
- */
- public IPath getLocation();
-
- /**
- * Returns whether this launch configuration's underlying
- * storage exists. This is a handle-only method.
- *
- * @return whether this launch configuration's underlying
- * storage exists
- */
- public boolean exists();
-
- /**
- * Returns the integer-valued attribute with the given name.
- * Returns the given default value if the attribute is undefined.
- *
- * @param attributeName the name of the attribute
- * @param defaultValue the value to use if no value is found
- * @return the value or the default value if no value was found.
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while retrieving the attribute from
- * underlying storage.</li>
- * <li>An attribute with the given name exists, but does not
- * have an integer value</li>
- * </ul>
- */
- public int getAttribute(String attributeName, int defaultValue) throws CoreException;
- /**
- * Returns the string-valued attribute with the given name.
- * Returns the given default value if the attribute is undefined.
- *
- * @param attributeName the name of the attribute
- * @param defaultValue the value to use if no value is found
- * @return the value or the default value if no value was found.
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while retrieving the attribute from
- * underlying storage.</li>
- * <li>An attribute with the given name exists, but does not
- * have a String value</li>
- * </ul>
- */
- public String getAttribute(String attributeName, String defaultValue) throws CoreException;
- /**
- * Returns the boolean-valued attribute with the given name.
- * Returns the given default value if the attribute is undefined.
- *
- * @param attributeName the name of the attribute
- * @param defaultValue the value to use if no value is found
- * @return the value or the default value if no value was found.
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while retrieving the attribute from
- * underlying storage.</li>
- * <li>An attribute with the given name exists, but does not
- * have a boolean value</li>
- * </ul>
- */
- public boolean getAttribute(String attributeName, boolean defaultValue) throws CoreException;
- /**
- * Returns the <code>java.util.List</code>-valued attribute with the given name.
- * Returns the given default value if the attribute is undefined.
- *
- * @param attributeName the name of the attribute
- * @param defaultValue the value to use if no value is found
- * @return the value or the default value if no value was found.
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while retrieving the attribute from
- * underlying storage.</li>
- * <li>An attribute with the given name exists, but does not
- * have a List value</li>
- * </ul>
- */
- public List getAttribute(String attributeName, List defaultValue) throws CoreException;
- /**
- * Returns the <code>java.util.Map</code>-valued attribute with the given name.
- * Returns the given default value if the attribute is undefined.
- *
- * @param attributeName the name of the attribute
- * @param defaultValue the value to use if no value is found
- * @return the value or the default value if no value was found.
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while retrieving the attribute from
- * underlying storage.</li>
- * <li>An attribute with the given name exists, but does not
- * have a Map value</li>
- * </ul>
- */
- public Map getAttribute(String attributeName, Map defaultValue) throws CoreException;
-
- /**
- * Returns the file this launch configuration is stored
- * in, or <code>null</code> if this configuration is stored
- * locally with the workspace. This is a handle-only method.
- *
- * @return the file this launch configuration is stored
- * in, or <code>null</code> if this configuration is stored
- * locally with the workspace
- */
- public IFile getFile();
-
- /**
- * Returns the type of this launch configuration. This is a
- * handle-only method.
- *
- * @return the type of this launch configuration
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>Unable to retrieve or instantiate this launch configuration's type.</li>
- * </ul>
- * @see ILaunchConfigurationType
- */
- public ILaunchConfigurationType getType() throws CoreException;
-
- /**
- * Returns whether this launch configuration is stored
- * locally with the workspace. This is a handle-only method.
- *
- * @return whether this launch configuration is stored
- * locally with the workspace
- */
- public boolean isLocal();
-
- /**
- * Returns a working copy of this launch configuration.
- * Changes to the working copy will be applied to this
- * launch configuration when saved. The working copy will
- * refer to this launch configuration as its original
- * launch configuration.
- *
- * @return a working copy of this launch configuration
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while initializing the contents of the
- * working copy from this configuration's underlying storage.</li>
- * </ul>
- * @see ILaunchConfigurationWorkingCopy#getOriginal()
- */
- public ILaunchConfigurationWorkingCopy getWorkingCopy() throws CoreException;
-
- /**
- * Returns a copy of this launch configuration, as a
- * working copy, with the specified name. The new
- * working copy does not refer back to this configuration
- * as its original launch configuration (the working copy
- * will return <code>null</code> for <code>getOriginal()</code>).
- * When the working copy is saved it will not effect this
- * launch configuration.
- *
- * @param name the name of the copy
- * @return a copy of this launch configuration
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while initializing the contents of the
- * working copy from this configuration's underlying storage.</li>
- * </ul>
- * @see ILaunchConfigurationWorkingCopy#getOriginal()
- */
- public ILaunchConfigurationWorkingCopy copy(String name) throws CoreException;
-
- /**
- * Returns whether this launch configuration is a working
- * copy. Launch configurations which return <code>true</code>
- * to this method can be safely cast to
- * <code>org.eclipse.debug.core.ILaunchConfigurationWorkingCopy</code>.
- * This is a handle-only method.
- *
- * @return whether this launch configuration is a working
- * copy
- */
- public boolean isWorkingCopy();
-
- /**
- * Deletes this launch configuration. This configuration's underlying
- * storage is deleted. Has no effect if this configuration
- * does not exist.
- *
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>An exception occurs while deleting this configuration's
- * underlying storage.</li>
- * </ul>
- */
- public void delete() throws CoreException;
-
- /**
- * Returns a memento for this launch configuration, or <code>null</code>
- * if unable to generate a memento for this configuration. A memento
- * can be used to re-create a launch configuration, via the
- * launch manager.
- *
- * @return a memento for this configuration
- * @see ILaunchManager#getLaunchConfiguration(String)
- * @exception CoreException if an exception occurs generating this
- * launch configuration's memento
- */
- public String getMemento() throws CoreException;
-
- /**
- * Returns whether the contents of this launch configuration are
- * equal to the contents of the given launch configuration.
- *
- * @return whether the contents of this launch configuration are equal to the contents
- * of the specified launch configuration.
- */
- public boolean contentsEqual(ILaunchConfiguration configuration);
-
- /**
- * Returns this launch configuration's type's category, or <code>null</code>
- * if unspecified. This is a handle-only method.
- *
- * @return this launch configuration's type's category, or <code>null</code>
- * @exception CoreException if this method fails. Reasons include:
- * <ul>
- * <li>Unable to retrieve or instantiate this launch configuration's type.</li>
- * </ul>
- * @since 2.1
- */
- public String getCategory() throws CoreException;
-
- /**
- * Returns a map containing the attributes in this launch configuration.
- * Returns an empty map if this configuration has no attributes.
- * <p>
- * Modifying the map does not affect this launch configuration's attributes.
- * A launch configuration is modified by obtaining a working copy of that
- * launch configuration, modifying the working copy, and then saving the working
- * copy.
- * </p>
- * @return a map of attribute keys and values
- * @exception CoreException unable to generate/retrieve an attribute map
- * @since 2.1
- */
- public Map getAttributes() throws CoreException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationListener.java
deleted file mode 100644
index 4f0332608..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationListener.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-/**
- * Notified when a launch configuration is created,
- * deleted, or changed.
- * <p>
- * This interface is intended to be implemented by clients.
- * </p>
- * @since 2.0
- */
-public interface ILaunchConfigurationListener {
-
- /**
- * The given launch configuration has been created.
- *
- * @param configuration the newly created launch configuration
- */
- public void launchConfigurationAdded(ILaunchConfiguration configuration);
-
- /**
- * The given launch configuration has changed in some way.
- * The configuration may be a working copy.
- *
- * @param configuration the launch configuration that has
- * changed
- */
- public void launchConfigurationChanged(ILaunchConfiguration configuration);
-
- /**
- * The given launch configuration has been deleted.
- * <p>
- * The launch configuration no longer exists. Data stored
- * in the configuration can no longer be accessed, however
- * handle-only attributes of the launch configuration
- * can be retrieved.
- * </p>
- *
- * @param configuration the deleted launch configuration
- */
- public void launchConfigurationRemoved(ILaunchConfiguration configuration);
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java
deleted file mode 100644
index 12f70e3ae..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.debug.core.model.ILaunchConfigurationDelegate;
-import org.eclipse.debug.core.sourcelookup.ISourcePathComputer;
-
-/**
- * Describes and creates instances of a specific type of
- * launch configuration. Launch configuration types are
- * defined by extensions.
- * <p>
- * A launch configuration type extension is defined in <code>plugin.xml</code>.
- * Following is an example definition of a launch configuration
- * type extension.
- * <pre>
- * &lt;extension point="org.eclipse.debug.core.launchConfigurationTypes"&gt;
- * &lt;launchConfigurationType
- * id="com.example.ExampleIdentifier"
- * delegate="com.example.ExampleLaunchConfigurationDelegate"
- * modes="run, debug"
- * name="Example Application"&gt;
- * &lt;/launchConfigurationType&gt;
- * &lt;/extension&gt;
- * </pre>
- * The attributes are specified as follows:
- * <ul>
- * <li><code>id</code> specifies a unique identifier for this launch configuration
- * type.</li>
- * <li><code>delegate</code> specifies the fully qualified name of the java class
- * that implements <code>ILaunchConfigurationDelegate</code>. Launch configuration
- * instances of this type will delegate to instances of this class
- * to perform launching.</li>
- * <li><code>modes</code> specifies a comma separated list of the modes this
- * type of launch configuration suports - <code>"run"</code> and/or <code>"debug"</code>.</li>
- * <li><code>name</code> specifies a human readable name for this type
- * of launch configuration.</li>
- * <li><code>category</code> is an optional attribute that specifies a category
- * for this launch configuration type. Categories are client defined. This
- * attribute was added in the 2.1 release.</li>
- * </ul>
- * </p>
- * TODO: add new attributes - sourcePathComputerId and sourceLocatorId
- * <p>
- * The <code>category</code> attribute has been added in release 2.1, such that other
- * tools may re-use the launch configuration framework for purposes other than
- * the standard running and debugging of programs under developement. Such that
- * clients may access arbitrary attribtes specified in launch configuration type
- * extension definitions, the method <code>getAttribute</code> has also been
- * added. Launch configurations that are to be recognized as standard run/debug
- * launch configurations should not specify the <code>category</code> attribute.
- * </p>
- * <p>
- * This interface is not intended to be implemented by clients. Clients
- * that define a launch configuration delegate extension implement the
- * <code>ILaunchConfigurationDelegate</code> interface.
- * </p>
- * @see ILaunchConfiguration
- * @since 2.0
- */
-public interface ILaunchConfigurationType extends IAdaptable {
-
- /**
- * Returns whether this type of launch configuration supports
- * the specified mode.
- *
- * @param mode a mode in which a configuration can be launched, one of
- * the mode constants defined by <code>ILaunchManager</code> - <code>RUN_MODE</code> or
- * <code>DEBUG_MODE</code>.
- * @return whether this kind of launch configuration supports the
- * specified mode
- */
- public boolean supportsMode(String mode);
-
- /**
- * Returns the name of this type of launch configuration.
- *
- * @return the name of this type of launch configuration
- */
- public String getName();
-
- /**
- * Returns the unique identifier for this type of launch configuration
- *
- * @return the unique identifier for this type of launch configuration
- */
- public String getIdentifier();
-
- /**
- * Returns whether this launch configuration type is public. Public configuration
- * types are available for use by the user, for example, the user can create new
- * configurations based on public types through the UI. Private types are not
- * accessbile in this way, but are still available through the methods on
- * <code>ILaunchManager</code>.
- *
- * @return whether this launch configuration type is public.
- */
- public boolean isPublic();
-
- /**
- * Returns a new launch configuration working copy of this type,
- * that resides in the specified container, with the given name.
- * When <code>container</code> is </code>null</code>, the configuration
- * will reside locally in the metadata area.
- * Note: a launch configuration is not actually created until the working copy is saved.
- *
- * @param container the container in which the new configuration will
- * reside, or <code>null</code> if the configuration should reside
- * locally with the metadata.
- * @param name name for the launch configuration
- * @return a new launch configuration working copy instance of this type
- * @exception CoreException if an instance of this type
- * of launch configuration could not be created for any
- * reason
- */
- public ILaunchConfigurationWorkingCopy newInstance(IContainer container, String name) throws CoreException;
-
- /**
- * Returns the launch configuration delegate for launch
- * configurations of this type, for <code>run</code> mode.
- * The first time this method is called, the delegate is instantiated.
- *
- * @return launch configuration delegate
- * @exception CoreException if unable to instantiate the
- * delegate
- * @deprecated use <code>getDelegate(String)</code> to specify mode
- */
- public ILaunchConfigurationDelegate getDelegate() throws CoreException;
-
- /**
- * Returns the launch configuration delegate for launch
- * configurations of this type, for the specified mode. The first time
- * this method is called for a mode, the delegate is instantiated.
- * Launch delegates may be contributed to a launch configuration type
- * via the extension point <code>org.eclipse.debug.core.launchDelegates</code>
- *
- * @param mode launch mode
- * @return launch configuration delegate
- * @exception CoreException if unable to instantiate the
- * delegate
- * @since 3.0
- */
- public ILaunchConfigurationDelegate getDelegate(String mode) throws CoreException;
-
- /**
- * Returns this launch configuration type's category, or <code>null</code>
- * if unspecified. This corresponds to the category attribute specified in
- * the extension definition.
- *
- * @return this launch configuration type's category, or <code>null</code>
- * @since 2.1
- */
- public String getCategory();
-
- /**
- * Returns the attribute with the given name, as specified by this launch
- * configuration type's extension definition, or <code>null</code> if
- * unspecified.
- *
- * @param attributeName attribute name
- * @return the specified extension attribute, or <code>null</code>
- * @since 2.1
- */
- public String getAttribute(String attributeName);
-
- /**
- * Returns the source path computer registered with this launch configuration
- * type or <code>null</code> if unspecified. A source path computer can be
- * registered with a launch configuration type in plug-in XML via the
- * <code>sourcePathComputerId</code> attribute.
- *
- * @return the source path computer registered with this launch configuration
- * type or <code>null</code> if unspecified
- * @since 3.0
- */
- public ISourcePathComputer getSourcePathComputer();
-
- /**
- * Returns the identifier of the persistable source locator registered with
- * this launch configurations type, or <code>null</code> if unspecified.
- * Launch configuration types optionally specify this attribue
- * in their plug-in XML via the <code>sourceLocatorId</code> attribute.
- *
- * @return the identifier of the persistable source locator registered with
- * this launch configurations type, or <code>null</code> if unspecified
- * @since 3.0
- */
- public String getSourceLocatorId();
-
- /**
- * Returns the identifier of the plug-in that contributes this launch configuration type.
- *
- * @return the identifier of the plug-in that contributes this launch configuration type
- * @since 3.0
- */
- public String getPluginIdentifier();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java
deleted file mode 100644
index 0fe69bb58..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * An editable copy of a launch configuration. Attributes of a
- * launch configuration are modified by modifying the attributes
- * of a working copy, and then saving the working copy.
- * <p>
- * This interface is not intended to be implemented by clients. Clients
- * that define a launch configuration delegate extension implement the
- * <code>ILaunchConfigurationDelegate</code> interface.
- * </p>
- * @see ILaunchConfiguration
- * @see ILaunchConfigurationType
- * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate
- * @since 2.0
- */
-public interface ILaunchConfigurationWorkingCopy extends ILaunchConfiguration, IAdaptable {
-
- /**
- * Returns whether this configuration has been modified
- * since it was last saved or created.
- *
- * @return whether this configuration has been modified
- * since it was last saved or created
- */
- public boolean isDirty();
-
- /**
- * Saves this working copy to its underlying file and returns
- * a handle to the resulting launch configuration.
- * Has no effect if this configuration does not need saving.
- * Creates the underlying file if not yet created.
- *
- * @exception CoreException if an exception occurs while
- * writing this configuration to its underlying file.
- */
- public ILaunchConfiguration doSave() throws CoreException;
-
- /**
- * Sets the integer-valued attribute with the given name.
- *
- * @param attributeName the name of the attribute, cannot be <code>null</code>
- * @param value the value
- */
- public void setAttribute(String attributeName, int value);
-
- /**
- * Sets the String-valued attribute with the given name.
- * If the value is <code>null</code>, the attribute is removed from
- * this launch configuration.
- *
- * @param attributeName the name of the attribute, cannot be <code>null</code>
- * @param value the value, or <code>null</code> if the attribute is to be undefined
- */
- public void setAttribute(String attributeName, String value);
-
- /**
- * Sets the <code>java.util.List</code>-valued attribute with the given name.
- * The specified List <em>must</em> contain only String-valued entries.
- * If the value is <code>null</code>, the attribute is removed from
- * this launch configuration.
- *
- * @param attributeName the name of the attribute, cannot be <code>null</code>
- * @param value the value, or <code>null</code> if the attribute is to be undefined
- */
- public void setAttribute(String attributeName, List value);
-
- /**
- * Sets the <code>java.util.Map</code>-valued attribute with the given name.
- * The specified Map <em>must</em> contain only String keys and String values.
- * If the value is <code>null</code>, the attribute is removed from
- * this launch configuration.
- *
- * @param attributeName the name of the attribute, cannot be <code>null</code>
- * @param value the value, or <code>null</code> if the attribute is to be undefined
- */
- public void setAttribute(String attributeName, Map value);
-
- /**
- * Sets the boolean-valued attribute with the given name.
- *
- * @param attributeName the name of the attribute, cannot be <code>null</code>
- * @param value the value
- */
- public void setAttribute(String attributeName, boolean value);
-
- /**
- * Returns the original launch configuration this working copy
- * was created from, or <code>null</code> if this is a new
- * working copy created from a launch configuration type.
- *
- * @return the original launch configuration, or <code>null</code>
- */
- public ILaunchConfiguration getOriginal();
-
- /**
- * Renames this launch configuration to the specified name.
- * The new name cannot be <code>null</code>. Has no effect if the name
- * is the same as the current name. If this working copy is based
- * on an existing launch configuration, this will cause
- * the underlying launch configuration file to be renamed when
- * this working copy is saved.
- *
- * @param name the new name for this configuration
- */
- public void rename(String name);
-
- /**
- * Sets the container this launch configuration will be stored
- * in when saved. When set to <code>null</code>, this configuration
- * will be stored locally with the workspace. The specified
- * container must exist, if specified.
- * <p>
- * If this configuration is changed from local to non-local,
- * a file will be created in the specified container when
- * saved. The local file associated with this configuration
- * will be deleted.
- * </p>
- * <p>
- * If this configuration is changed from non-local to local,
- * a file will be created locally when saved.
- * The original file associated with this configuration in
- * the workspace will be deleted.
- * </p>
- *
- * @param container the container in which to store this
- * launch configuration, or <code>null</code> if this
- * configuration is to be stored locally
- */
- public void setContainer(IContainer container);
-
- /**
- * Sets the attributes of this launch configuration to be the ones contained
- * in the given map. The values must be an instance of one of the following
- * classes: <code>String</code>, <code>Integer</code>, or
- * <code>Boolean</code>, <code>List</code>, <code>Map</code>. Attributes
- * previously set on this launch configuration but not included in the given
- * map are considered to be removals. Setting the given map to be
- * <code>null</code> is equivalent to removing all attributes.
- *
- * @param attributes a map of attribute names to attribute values.
- * Attribute names are not allowed to be <code>null</code>
- * @since 2.1
- */
- public void setAttributes(Map attributes);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchListener.java
deleted file mode 100644
index 5faa7207b..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchListener.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-/**
- * A launch listener is notified of launches as they
- * are added and removed from the launch manager. Also,
- * when a process or debug target is added to a launch,
- * listeners are notified of a change.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.debug.core.ILaunch
- * @see org.eclipse.debug.core.ILaunchesListener
- */
-public interface ILaunchListener {
- /**
- * Notifies this listener that the specified
- * launch has been removed.
- *
- * @param launch the removed launch
- * @since 2.0
- */
- public void launchRemoved(ILaunch launch);
- /**
- * Notifies this listener that the specified launch
- * has been added.
- *
- * @param launch the newly added launch
- * @since 2.0
- */
- public void launchAdded(ILaunch launch);
- /**
- * Notifies this listener that the specified launch
- * has changed. For example, a process or debug target
- * has been added to the launch.
- *
- * @param launch the changed launch
- * @since 2.0
- */
- public void launchChanged(ILaunch launch);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchManager.java
deleted file mode 100644
index cc399f081..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchManager.java
+++ /dev/null
@@ -1,421 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IPersistableSourceLocator;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.core.sourcelookup.ISourcePathComputer;
-
-/**
- * The launch manager manages the set of registered launches, maintaining
- * a collection of active processes and debug targets. Clients interested
- * in launch notification may register with the launch manager.
- * <p>
- * Clients are not intended to implement this interface.
- * </p>
- * @see ILaunch
- * @see ILaunchListener
- */
-public interface ILaunchManager {
- /**
- * A launch in a normal, non-debug mode(value <code>"run"</code>).
- */
- public static final String RUN_MODE= "run"; //$NON-NLS-1$
- /**
- * A launch in a special debug mode (value <code>"debug"</code>).
- */
- public static final String DEBUG_MODE= "debug"; //$NON-NLS-1$
- /**
- * A launch in a special profile mode (value <code>"profile"</code>).
- * @since 3.0
- */
- public static final String PROFILE_MODE= "profile"; //$NON-NLS-1$
-
- /**
- * Launch configuration attribute name. The value is a map of environment
- * variables passed into Runtime.exec(...) when a launch configuration is launched.
- * Default value is <code>null</code> which indicates the default environment
- * should be used.
- *
- * @since 3.0
- */
- public static final String ATTR_ENVIRONMENT_VARIABLES = DebugPlugin.getUniqueIdentifier() + ".environmentVariables"; //$NON-NLS-1$
-
- /**
- * Launch configuration attribute name. The value is a boolean value specifying
- * whether the environment variables in a launch configuration
- * should be appended to the native environment (i.e. when <code>true</code>),
- * or if they should replace the environment (i.e. <code>false</code>). The
- * default value is <code>true</code>.
- *
- * @since 3.0
- */
- public static final String ATTR_APPEND_ENVIRONMENT_VARIABLES = DebugPlugin.getUniqueIdentifier() + ".appendEnvironmentVariables"; //$NON-NLS-1$
-
- /**
- * Adds the given listener to the collection of registered launch listeners.
- * Has no effect if an identical listener is already registerd.
- *
- * @param listener the listener to register
- */
- public void addLaunchListener(ILaunchListener listener);
- /**
- * Adds the given listener to the collection of registered launch listeners.
- * Has no effect if an identical listener is already registerd.
- *
- * @param listener the listener to register
- * @since 2.1
- */
- public void addLaunchListener(ILaunchesListener listener);
- /**
- * Removes the specified launch and notifies listeners.
- * Has no effect if an identical launch is not already
- * registered.
- *
- * @param launch the launch to remove
- * @since 2.0
- */
- public void removeLaunch(ILaunch launch);
- /**
- * Removes the specified launch objects and notifies listeners.
- * Has no effect on identical launch objects that are not already
- * registered.
- *
- * @param launches the launch objects to remove
- * @since 2.1
- */
- public void removeLaunches(ILaunch[] launches);
- /**
- * Returns the collection of debug targets currently registered with this
- * launch manager.
- *
- * @return an array of debug targets
- */
- public IDebugTarget[] getDebugTargets();
- /**
- * Returns the collection of launches currently registered
- * with this launch manager.
- *
- * @return an array of launches
- */
- public ILaunch[] getLaunches();
- /**
- * Returns the collection of processes currently registered with this
- * launch manager.
- *
- * @return an array of processes
- */
- public IProcess[] getProcesses();
- /**
- * Adds the specified launch and notifies listeners. Has no
- * effect if an identical launch is already registered.
- *
- * @param launch the launch to add
- * @since 2.0
- */
- public void addLaunch(ILaunch launch);
- /**
- * Adds the specified launch objects and notifies listeners. Has no
- * effect on identical launch objects already registered.
- *
- * @param launches the launch objects to add
- * @since 2.1
- */
- public void addLaunches(ILaunch[] launches);
- /**
- * Removes the given listener from the collection of registered launch listeners.
- * Has no effect if an identical listener is not already registerd.
- *
- * @param listener the listener to deregister
- */
- public void removeLaunchListener(ILaunchListener listener);
- /**
- * Removes the given listener from the collection of registered launch listeners.
- * Has no effect if an identical listener is not already registerd.
- *
- * @param listener the listener to deregister
- * @since 2.1
- */
- public void removeLaunchListener(ILaunchesListener listener);
- /**
- * Returns all launch configurations defined in the workspace.
- *
- * @return all launch configurations defined in the workspace
- * @exception CoreException if an exception occurs retrieving configurations
- * @since 2.0
- */
- public ILaunchConfiguration[] getLaunchConfigurations() throws CoreException;
-
- /**
- * Returns all launch configurations of the specified type defined in the workspace
- *
- * @param type a launch configuration type
- * @return all launch configurations of the specified type defined in the workspace
- * @exception CoreException if an error occurs while retreiving
- * a launch configuration
- * @since 2.0
- */
- public ILaunchConfiguration[] getLaunchConfigurations(ILaunchConfigurationType type) throws CoreException;
-
- /**
- * Returns a handle to the launch configuration contained
- * in the specified file. The file is not verified to exist
- * or contain a launch configuration.
- *
- * @param file launch configuration file
- * @return a handle to the launch configuration contained
- * in the specified file
- * @since 2.0
- */
- public ILaunchConfiguration getLaunchConfiguration(IFile file);
-
- /**
- * Returns a handle to the launch configuration specified by
- * the given memento. The configuration may not exist.
- *
- * @return a handle to the launch configuration specified by
- * the given memento
- * @exception CoreException if the given memento is invalid or
- * an exception occurs parsing the memento
- * @see ILaunchConfiguration#getMemento()
- * @since 2.0
- */
- public ILaunchConfiguration getLaunchConfiguration(String memento) throws CoreException;
-
- /**
- * Returns all defined launch configuration type extensions
- *
- * @return all defined launch configuration type extensions
- * @since 2.0
- */
- public ILaunchConfigurationType[] getLaunchConfigurationTypes();
-
- /**
- * Returns the launch configuration type extension with the specified
- * id, or <code>null</code> if it does not exist.
- *
- * @param id unique identifier for a launch configuration type extension
- * @return the launch configuration type extension with the specified
- * id, or <code>null</code> if it does not exist
- * @since 2.0
- */
- public ILaunchConfigurationType getLaunchConfigurationType(String id);
-
- /**
- * Adds the given launch configuration listener to the list
- * of listeners notified when a launch configuration is
- * added, removed, or changed. Has no effect if the given listener
- * is already registered.
- *
- * @param listener launch configuration listener
- * @since 2.0
- */
- public void addLaunchConfigurationListener(ILaunchConfigurationListener listener);
-
- /**
- * Removes the given launch configuration listener from the list
- * of listeners notified when a launch configuration is
- * added, removed, or changed. Has no effect if the given listener
- * is not already registered.
- *
- * @param listener launch configuration listener
- * @since 2.0
- */
- public void removeLaunchConfigurationListener(ILaunchConfigurationListener listener);
-
- /**
- * Return <code>true</code> if there is a launch configuration with the specified name,
- * <code>false</code> otherwise.
- *
- * @param name the name of the launch configuration whose existence is being checked
- * @exception CoreException if unable to retrieve existing launch configuration names
- * @since 2.0
- */
- public boolean isExistingLaunchConfigurationName(String name) throws CoreException;
-
- /**
- * Return a String that can be used as the name of a launch configuration. The name
- * is guaranteed to be unique (no existing launch configurations will have this name).
- * The name that is returned uses the <code>namePrefix</code> as a starting point. If
- * there is no existing launch configuration with this name, then <code>namePrefix</code>
- * is returned. Otherwise, the value returned consists of the specified prefix plus
- * some suffix that guarantees uniqueness.
- *
- * @param namePrefix the String that the returned name must begin with
- * @since 2.0
- */
- public String generateUniqueLaunchConfigurationNameFrom(String namePrefix);
-
- /**
- * Creates and returns a new source locator of the specified
- * type.
- *
- * @param identifier the identifier associated with a
- * persistable source locator extension
- * @return a source locator
- * @exception CoreException if an exception occurs creating
- * the source locator
- * @since 2.0
- */
- public IPersistableSourceLocator newSourceLocator(String identifier) throws CoreException;
-
- /**
- * When a launch configuration is created or moved, registered launch
- * configuration listeners (see <code>ILaunchConfigurationListener</code>)
- * are notified of an add notification for the new configuration. If the
- * notification is the result of a move this method will return a handle to
- * the launch configuration that the added launch configuration was moved
- * from. This method returns <code>null</code> if the added launch
- * configuration was not the result of a rename or move. This information is
- * only available during the add notification call back
- * <code>launchConfigurationAdded</code>.
- * <p>
- * Renaming a configuration is considered the same as moving a
- * configuration.
- * </p>
- *
- * @param addedConfiguration a launch configuration for which an add
- * notification is being broadcast
- * @return the launch configuration that the added launch configuration was
- * moved from, or <code>null</code> if the add notification is not the
- * result of a move
- * @since 2.1
- */
- public ILaunchConfiguration getMovedFrom(ILaunchConfiguration addedConfiguration);
-
- /**
- * When a launch configuration is deleted or moved, registered launch
- * configuration listeners (see <code>ILaunchConfigurationListener</code>)
- * are notified of a remove notification for launch configuration that has
- * been deleted. If the notification is the result of a move this method
- * will return a handle to the launch configuration that the removed launch
- * configuration was moved to. This method returns <code>null</code> if the
- * removed launch configuration was not the result of a rename or move. This
- * information is only available during the add notification call back
- * <code>launchConfigurationRemoved</code>.
- * <p>
- * Renaming a configuration is considered the same as moving a
- * configuration.
- * </p>
- *
- * @param removedConfiguration a launch configuration for which a
- * remove notification is being broadcast
- * @return the launch configuration that the removed launch configuration
- * was moved to, or <code>null</code> if the add notification is not the
- * result of a move
- * @since 2.1
- */
- public ILaunchConfiguration getMovedTo(ILaunchConfiguration removedConfiguration);
-
- /**
- * Returns all registered launch modes.
- *
- * @return all registered launch modes
- * @since 3.0
- */
- public ILaunchMode[] getLaunchModes();
-
- /**
- * Returns the launch mode registered with the given mode identifier,
- * or <code>null</code> if none.
- *
- * @param mode mode identifier
- * @return launch mode or <code>null</code>
- * @since 3.0
- */
- public ILaunchMode getLaunchMode(String mode);
-
- /**
- * Returns an array of environment variables to be used when
- * launching the given configuration or <code>null</code> if unspecified.
- *
- * @param configuration launch configuration
- * @throws CoreException if unable to access associated attribute or if
- * unable to resolve a variable in an environment variable's value
- * @since 3.0
- */
- public String[] getEnvironment(ILaunchConfiguration configuration) throws CoreException;
-
- /**
- * Returns a source path computer to compute a default source lookup path for
- * the given launch configuration, or <code>null</code> if a source path
- * computer has not been registered for the associated launch configuration
- * type.
- *
- * @param configuration a launch configuration
- * @return a source path computer registered for the associated launch
- * configurations type, or <code>null</code> if unspecified
- * @throws CoreException if an exception occurs while instantiating a source
- * path computer
- * @since 3.0
- */
- public ISourcePathComputer getSourcePathComputer(ILaunchConfiguration configuration) throws CoreException;
-
- /**
- * Returns the source path computer extension registered with the given
- * unique identifier, or <code>null</code> if none.
- *
- * @param id source path computer identifier
- * @return the source path computer extension registered with the given
- * unique identifier, or <code>null</code> if none
- * @since 3.0
- */
- public ISourcePathComputer getSourcePathComputer(String id);
-
- /**
- * Returns the native system environment variables as a map of
- * variable names and values (Strings). On WIN32,
- * all keys (variable names) are returned in uppercase. Note
- * that WIN32's environment is not case sensitive.
- *
- * @return the native system environment variables
- * @since 3.0
- */
- public Map getNativeEnvironment();
-
- /**
- * Returns all registered source container type extensions.
- *
- * @return all registered source container type extensions
- * @since 3.0
- */
- public ISourceContainerType[] getSourceContainerTypes();
-
- /**
- * Returns the source container type extension registered with the
- * given unique identifier, or <code>null</code> if none.
- *
- * @param id unique identifier of a source container type extension
- * @return the source container type extension registered with the
- * given unique identifier, or <code>null</code> if none
- * @since 3.0
- */
- public ISourceContainerType getSourceContainerType(String id);
-
- /**
- * Returns whether the given launch is currently registered.
- *
- * @param launch a launch
- * @return whether the launch is currently registered
- * @since 3.1
- */
- public boolean isRegistered(ILaunch launch);
-
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchMode.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchMode.java
deleted file mode 100644
index 265d8d3e9..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchMode.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-/**
- * A launch mode. The debug platform contributes launch modes
- * for run, debug, and profile. Clients may contribute additional launch
- * modes in plug-in XML via the <code>launchModes</code> extension point.
- * <p>
- * Following is an example launch mode contribution for profiling. A launch
- * mode has an unique identifer specified by the <code>mode</code> attribute
- * and a human readable label specified by the <code>label</code> attribute.
- * <pre>
- * &lt;extension point=&quot;org.eclipse.debug.core.launchModes&quot;&gt;
- * &lt;launchMode
- * mode=&quot;profile&quot;
- * label=&quot;Profile&quot;&gt;
- * &lt;/launchMode&gt;
- * &lt;/extension&gt;
- * </pre>
- * </p>
- * <p>
- * Clients are not intended to implement this interface.
- * </p>
- * @since 3.0
- */
-public interface ILaunchMode {
-
- /**
- * Returns the unique identifier for this launch mode.
- *
- * @return the unique identifier for this launch mode
- */
- public String getIdentifier();
-
- /**
- * Returns a human readable label for this launch mode.
- *
- * @return a human readable label for this launch mode
- */
- public String getLabel();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener.java
deleted file mode 100644
index 1e5b9812e..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-/**
- * A launches listener is notified of launches as they
- * are added and removed from the launch manager. Also,
- * when a process or debug target is added to a launch,
- * listeners are notified of a change.
- * <p>
- * This interface is analagous to <code>ILaunchListerner</code>, except
- * notifications are batched to include more than one launch object
- * when possible.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.debug.core.ILaunch
- * @see org.eclipse.debug.core.ILaunchManager
- * @since 2.1
- */
-public interface ILaunchesListener {
- /**
- * Notifies this listener that the specified
- * launches have been removed.
- *
- * @param launches the removed launch objects
- */
- public void launchesRemoved(ILaunch[] launches);
- /**
- * Notifies this listener that the specified launches
- * have been added.
- *
- * @param launches the newly added launch objects
- */
- public void launchesAdded(ILaunch[] launches);
- /**
- * Notifies this listener that the specified launches
- * have changed. For example, a process or debug target
- * has been added to a launch.
- *
- * @param launches the changed launch object
- */
- public void launchesChanged(ILaunch[] launches);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener2.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener2.java
deleted file mode 100644
index 38dfc0924..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener2.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-/**
- * Enhancements to the launches listener interface. Provides notification
- * when one or more launches terminate.
- * <p>
- * Clients implementing launches listener may implement
- * this interface.
- * </p>
- * @since 3.0
- */
-public interface ILaunchesListener2 extends ILaunchesListener {
-
- /**
- * Notification that the given launches have terminated.
- *
- * @param launches the launches that have terminated
- */
- public void launchesTerminated(ILaunch[] launches);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureProvider.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureProvider.java
deleted file mode 100644
index 2bd68f31e..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureProvider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-import org.eclipse.debug.core.model.IValue;
-
-/**
- * Provides logical structure types applicable to a raw implementation value from
- * a debug model. Associated with a logical structure provider extension.
- * <p>
- * Clients contributing logical structure providers should implement this
- * interface.
- * </p>
- * @since 3.1
- * @see org.eclipse.debug.core.ILogicalStructureType
- */
-public interface ILogicalStructureProvider {
-
- /**
- * Returns the logical structure types which are applicable to the given value.
- *
- * @param value value for which logical structure types are being requested
- * @return the logical structure types which are applicable to the given value
- */
- public ILogicalStructureType[] getLogicalStructureTypes(IValue value);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureType.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureType.java
deleted file mode 100644
index 653ef6b21..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureType.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-import org.eclipse.debug.core.model.ILogicalStructureTypeDelegate;
-import org.eclipse.debug.core.model.ILogicalStructureTypeDelegate2;
-
-/**
- * Provides a value representing the logical structure of a raw implementation value
- * from a debug model. Logical structures are useful for navigating complex data
- * structures. Logical structure types are contributed via extensions in plug-in XML,
- * and provide a delegate for performing logical value computation. Logical
- * structure types can be retrieved from the <code>DebugPlugin</code>.
- * <p>
- * Following is example plug-in XML to define a logical structure type.
- * </p>
- * <pre>
- * &lt;extension point=&quot;org.eclipse.debug.core.logicalStructureTypes&quot;&gt;
- * &lt;logicalStructureType
- * id=&quot;com.example.ExampleLogicalStructure&quot;
- * class=&quot;com.example.ExampleLogicalStructureDelegate&quot;
- * modelIdentifier=&quot;com.example.debug.model&quot;
- * description=&quot;Ordered Collection&quot;&gt;
- * &lt;/logicalStructureType&gt;
- * &lt;/extension&gt;
- * </pre>
- * <p>
- * The attributes are specified as follows:
- * <ul>
- * <li>id - unique identifier for this logical structure type</li>
- * <li>class - fully qualified name of class that implements
- * <code>ILogicalStructureTypeDelegate</code></li>
- * <li>modelIdentifier - identifier of the debug model this logical structure
- * type is associated with</li>
- * <li>description - description of the logical structure provided</li>
- * </ul>
- * </p>
- * <p>
- *
- * TODO: review the doc for the new provider extension point
- *
- *
- * Clients are not intended to implement this interface. Instead clients
- * providing logical strucutre types provide and implement an
- * <code>ILogicalStructureTypeDelegate</code>. Clients may optionally implement
- * <code>ILogicalStructureTypeDelegate2</code> to provide dynamic descriptions
- * of logical structures.
- * </p>
- * @since 3.0
- * @see org.eclipse.debug.core.model.ILogicalStructureTypeDelegate
- */
-public interface ILogicalStructureType extends ILogicalStructureTypeDelegate, ILogicalStructureTypeDelegate2 {
-
- /**
- * Returns a simple description of the logical structure provided by this
- * structure type.
- * <p>
- * Since 3.1, this method can return <code>null</code> if this logical structure
- * type's delegate implements <code>ILogicalStructureTypeDelegate2</code>.
- * </p>
- *
- * @return a simple description of the logical structure provided by this
- * structure type, possibly <code>null</code>
- */
- public String getDescription();
-
- /**
- * Returns this logical structure type's unique identifier, as defined
- * in plug-in XML.
- *
- * @return this logical structure type's unique identifier
- */
- public String getId();
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockListener.java
deleted file mode 100644
index 9afbde6c5..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockListener.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.debug.core;
-
-import org.eclipse.debug.core.model.IMemoryBlock;
-
-/**
- * A memory block listener is notified of the addition and removal
- * of memory blocks with the memory block manager. Listeners must
- * register with the memory block manager for notification.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @since 3.1
- */
-public interface IMemoryBlockListener {
-
- /**
- * Notification the given memory blocks ahve been added to the
- * memory block manager.
- *
- * @param memory blocks added to the memory block manager
- */
- void memoryBlocksAdded(IMemoryBlock[] memory);
-
- /**
- * Notification the given memory blocks have been removed from
- * the memory block manager.
- *
- * @param memory blocks removed from the memory block manager
- */
- void memoryBlocksRemoved(IMemoryBlock[] memory);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockManager.java
deleted file mode 100644
index 862a2ef3f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockManager.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.debug.core;
-
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IMemoryBlock;
-import org.eclipse.debug.core.model.IMemoryBlockRetrieval;
-
-
-/**
- * Manages registered memory blocks in the workspace. Clients
- * interested in notification of the addition and removal of
- * memory blocks may register as a memory block listener with
- * the memory block manager.
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * @see org.eclipse.debug.core.model.IMemoryBlock
- * @see org.eclipse.debug.core.IMemoryBlockListener
- * @since 3.1
- */
-public interface IMemoryBlockManager {
-
- /**
- * Adds the given memory blocks to the memory block manager.
- * Registered memory block listeners are notified of the additions.
- * Has no effect on memory blocks that are already registered.
- *
- * @param memoryBlocks memory blocks to add
- */
- public void addMemoryBlocks(IMemoryBlock[] memoryBlocks);
-
- /**
- * Removes the given memory blocks from the memory block manager.
- * Registered memory block listeners are notified of the removals.
- * Has no effect on memory blocks that are not currently registered.
- *
- * @param memoryBlocks memory blocks to remove
- */
- public void removeMemoryBlocks(IMemoryBlock[] memoryBlocks);
-
- /**
- * Registers the given listener for memory block addition and
- * removal notification. Has no effect if an identical listener
- * is already registered.
- *
- * @param listener the listener to add
- */
- public void addListener(IMemoryBlockListener listener);
-
- /**
- * Deregisters the givem listener for memory block addition and
- * removal notficiation. Has no effect if an identical listener
- * is not already registered.
- *
- * @param listener the listener to remove
- */
- public void removeListener(IMemoryBlockListener listener);
-
- /**
- * Returns all registered memory blocks.
- *
- * @return all registered memory blocks
- */
- public IMemoryBlock[] getMemoryBlocks();
-
- /**
- * Returns all registered memory blocks assocaited with the
- * given debug target. That is, all registered memory blocks
- * whose <code>getDebugTarget()</code> method returns the
- * specified debug target.
- *
- * @param debugTarget target for which memory blocks have been requested
- * @return all registered memory blocks associated with the given debug
- * target
- */
- public IMemoryBlock[] getMemoryBlocks(IDebugTarget debugTarget);
-
- /**
- * Returns all registered memory blocks that originated from the
- * given memory retrieval source.
- *
- * @param source source for which memory blocks have been requested
- * @return all registered memory blocks that originated from the
- * given memory retrieval source
- */
- public IMemoryBlock[] getMemoryBlocks(IMemoryBlockRetrieval source);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IProcessFactory.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IProcessFactory.java
deleted file mode 100644
index 8cf8e3521..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IProcessFactory.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-import java.util.Map;
-
-import org.eclipse.debug.core.model.IProcess;
-
-/**
- * A process factory is used to override default process (<code>IProcess</code>)
- * creation by the debug plug-in, and can be contributed via plug-in XML. When a
- * new process is created via <code>DebugPlugin.newProcess(..)</code>, the
- * launch configuration associated with the specified launch is consulted for
- * a process factory attribute (<code>ATTR_PROCESS_FACTORY_ID</code>). If
- * present, the associated process factory is consulted to create a process for
- * the launch. If not present a default process implementation is created and
- * returned by the debug plug-in.
- * <p>
- * Following is example plug-in XML that contributes a process factory.
- * <pre>
- * &lt;extension point="org.eclipse.debug.core.processFactories"&gt;
- * &lt;processFactory
- * id="com.example.ExampleIdentifier"
- * class="com.example.ExampleProcessFactory"&gt;
- * &lt;/processFactory&gt;
- * &lt;/extension&gt;
- * </pre>
- * The attributes are specified as follows:
- * <ul>
- * <li>id - a unique identifier for this extension point</li>
- * <li>class - the fully qualified name of a class the implements
- * <code>IProcessFactory</code></li>
- * </ul>
- * </p>
- * @since 3.0
- */
-
-public interface IProcessFactory {
-
- /**
- * Creates and returns a new process representing the given
- * <code>java.lang.Process</code>. A streams proxy is created
- * for the I/O streams in the system process. The process
- * is added to the given launch, and the process is initialized
- * with the given attribute map.
- *
- * @param launch the launch the process is contained in
- * @param process the system process to wrap
- * @param label the label assigned to the process
- * @param attributes initial values for the attribute map
- * @return the process
- * @see IProcess
- */
- public IProcess newProcess(ILaunch launch, Process process, String label, Map attributes);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IStatusHandler.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IStatusHandler.java
deleted file mode 100644
index fd7af0b64..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IStatusHandler.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * A status handler registers to handle a specific status - error
- * or otherwise. Provides a mechanism for separating core (headless)
- * function from UI interaction. The debug plug-in provides a
- * status handlers extension point, against which handlers can
- * register for specific status codes - identified by plug-in
- * identifier and plug-in specific status code. The interaction between
- * an object requiring a status handler (source), and the status handler
- * is defined by the source and handler.
- * <p>
- * For example, a launch configuration delegate might encounter a timeout
- * while launching an application. In this case the delegate could abort
- * or, via the use of a status handler, prompt the user to continue. This
- * allows the launcher to be implemented in a plug-in that does not require
- * UI support, and allows another (UI) plug-in to register a handler.
- * </p>
- * <p>
- * A status handler extension is defined in <code>plugin.xml</code>.
- * Following is an example definition of a status handler extension.
- * <pre>
- * &lt;extension point="org.eclipse.debug.core.statusHandlers"&gt;
- * &lt;statusHandler
- * id="com.example.ExampleIdentifier"
- * class="com.example.ExampleStatusHandler"
- * plugin="com.example.ExamplePluginId"
- * code="123"&gt;
- * &lt;/statusHandler&gt;
- * &lt;/extension&gt;
- * </pre>
- * The attributes are specified as follows:
- * <ul>
- * <li><code>id</code> specifies a unique identifier for this status handler.</li>
- * <li><code>class</code> specifies the fully qualified name of the Java class
- * that implements <code>IStatusHandler</code>.</li>
- * <li><code>plugin</code> plug-in identifier that corresponds to the
- * plug-in of the status this handler is registered for (i.e.
- * <code>IStatus.getPlugin()</code>).</li>
- * <li><code>code</code> specifies the status code this handler
- * is registered for.</li>
- * </ul>
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see DebugPlugin#getStatusHandler(IStatus)
- * @since 2.0
- */
-
-public interface IStatusHandler {
-
- /**
- * Notifies this status handler that the given status has been
- * generated by the specified source object and requires resolution.
- *
- * @param status the status to handle
- * @param source the object delegating to this status handler
- * the given status
- * @return an object representing the resolution of the status
- * @exception CoreException if unable to resolve the status
- */
- public Object handleStatus(IStatus status, Object source) throws CoreException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/IStreamListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/IStreamListener.java
deleted file mode 100644
index c9bd1b7f3..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IStreamListener.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import org.eclipse.debug.core.model.IStreamMonitor;
-
-/**
- * A stream listener is notified of changes
- * to a stream monitor.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IStreamMonitor
- */
-public interface IStreamListener {
- /**
- * Notifies this listener that text has been appended to
- * the given stream monitor.
- *
- * @param text the appended text
- * @param monitor the stream monitor to which text was appended
- */
- public void streamAppended(String text, IStreamMonitor monitor);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/Launch.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/Launch.java
deleted file mode 100644
index dd0eed525..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/Launch.java
+++ /dev/null
@@ -1,591 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * Pawel Piech - Bug 82003: The IDisconnect implementation by Launch module is too restrictive.
- *******************************************************************************/
-package org.eclipse.debug.core;
-
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.debug.core.model.IDebugTarget;
-import org.eclipse.debug.core.model.IDisconnect;
-import org.eclipse.debug.core.model.IProcess;
-import org.eclipse.debug.core.model.ISourceLocator;
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-import org.eclipse.debug.internal.core.LaunchManager;
-
-/**
- * A launch is the result of launching a debug session
- * and/or one or more system processes. This class provides
- * a public implementation of <code>ILaunch</code> for client
- * use.
- * <p>
- * Clients may instantiate this class. Clients may subclass this class.
- * Many of the methods in this class that are part of the <code>ILaunch</code> interface
- * are final. Clients that subclass this class are not intended to change the behavior
- * or implementation of the provided methods. Subclassing is only intended
- * to add additional information to a specific launch. For example, a client that
- * implements a launch object representing a Java launch might store a classpath
- * with the launch.
- * </p>
- * @see ILaunch
- * @see ILaunchManager
- */
-
-public class Launch extends PlatformObject implements ILaunch, IDisconnect, ILaunchListener, ILaunchConfigurationListener, IDebugEventSetListener {
-
- /**
- * The debug targets associated with this
- * launch (the primary target is the first one
- * in this collection), or empty if
- * there are no debug targets.
- */
- private List fTargets= new ArrayList();
-
- /**
- * The configuration that was launched, or null.
- */
- private ILaunchConfiguration fConfiguration= null;
-
- /**
- * The system processes associated with
- * this launch, or empty if none.
- */
- private List fProcesses= new ArrayList();
-
- /**
- * The source locator to use in the debug session
- * or <code>null</code> if not supported.
- */
- private ISourceLocator fLocator= null;
-
- /**
- * The mode this launch was launched in.
- */
- private String fMode;
-
- /**
- * Table of client defined attributes
- */
- private HashMap fAttributes;
-
- /**
- * Flag indiating that change notification should
- * be suppressed. <code>true</code> until this
- * launch has been initialzied.
- */
- private boolean fSuppressChange = true;
-
- /**
- * Constructs a launch with the specified attributes.
- *
- * @param launchConfiguration the configuration that was launched
- * @param mode the mode of this launch - run or debug (constants
- * defined by <code>ILaunchManager</code>)
- * @param locator the source locator to use for this debug session, or
- * <code>null</code> if not supported
- */
- public Launch(ILaunchConfiguration launchConfiguration, String mode, ISourceLocator locator) {
- setLaunchConfiguration(launchConfiguration);
- setSourceLocator(locator);
- setLaunchMode(mode);
- fSuppressChange = false;
- getLaunchManager().addLaunchListener(this);
- getLaunchManager().addLaunchConfigurationListener(this);
- DebugPlugin.getDefault().addDebugEventListener(this);
- }
-
- /**
- * @see org.eclipse.debug.core.model.ITerminate#canTerminate()
- */
- public final boolean canTerminate() {
- List processes = getProcesses0();
- for (int i = 0; i < processes.size(); i++) {
- IProcess process = (IProcess)processes.get(i);
- if (process.canTerminate()) {
- return true;
- }
- }
- List targets = getDebugTargets0();
- for (int i = 0; i < targets.size(); i++) {
- IDebugTarget target = (IDebugTarget)targets.get(i);
- if (target.canTerminate() || target.canDisconnect()) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * @see ILaunch#getChildren()
- */
- public final Object[] getChildren() {
- ArrayList children = new ArrayList(getDebugTargets0());
- children.addAll(getProcesses0());
- return children.toArray();
- }
-
- /**
- * @see ILaunch#getDebugTarget()
- */
- public final IDebugTarget getDebugTarget() {
- if (!getDebugTargets0().isEmpty()) {
- return (IDebugTarget)getDebugTargets0().get(0);
- }
- return null;
- }
-
- /**
- * Sets the configuration that was launched
- *
- * @param configuration the configuration that was launched
- */
- private void setLaunchConfiguration(ILaunchConfiguration configuration) {
- fConfiguration = configuration;
- }
-
- /**
- * @see ILaunch#getProcesses()
- */
- public final IProcess[] getProcesses() {
- return (IProcess[])getProcesses0().toArray(new IProcess[getProcesses0().size()]);
- }
-
- /**
- * Returns the processes associated with this
- * launch, in its internal form - a list.
- *
- * @return list of processes
- */
- protected List getProcesses0() {
- return fProcesses;
- }
-
- /**
- * @see ILaunch#getSourceLocator()
- */
- public final ISourceLocator getSourceLocator() {
- return fLocator;
- }
-
- /**
- * @see ILaunch#setSourceLocator(ISourceLocator)
- */
- public final void setSourceLocator(ISourceLocator sourceLocator) {
- fLocator = sourceLocator;
- }
-
- /**
- * @see org.eclipse.debug.core.model.ITerminate#isTerminated()
- */
- public final boolean isTerminated() {
- if (getProcesses0().isEmpty() && getDebugTargets0().isEmpty()) {
- return false;
- }
-
- Iterator processes = getProcesses0().iterator();
- while (processes.hasNext()) {
- IProcess process = (IProcess)processes.next();
- if (!process.isTerminated()) {
- return false;
- }
- }
-
- Iterator targets = getDebugTargets0().iterator();
- while (targets.hasNext()) {
- IDebugTarget target = (IDebugTarget)targets.next();
- if (!(target.isTerminated() || target.isDisconnected())) {
- return false;
- }
- }
-
- return true;
- }
-
- /**
- * @see org.eclipse.debug.core.model.ITerminate#terminate()
- */
- public final void terminate() throws DebugException {
- MultiStatus status=
- new MultiStatus(DebugPlugin.getUniqueIdentifier(), DebugException.REQUEST_FAILED, DebugCoreMessages.getString("Launch.terminate_failed"), null); //$NON-NLS-1$
-
- // terminate the system processes
- IProcess[] processes = getProcesses();
- for (int i = 0; i < processes.length; i++) {
- IProcess process = processes[i];
- if (process.canTerminate()) {
- try {
- process.terminate();
- } catch (DebugException e) {
- status.merge(e.getStatus());
- }
- }
- }
-
- // terminate or disconnect debug target if it is still alive
- IDebugTarget[] targets = getDebugTargets();
- for (int i = 0; i < targets.length; i++) {
- IDebugTarget target= targets[i];
- if (target != null) {
- if (target.canTerminate()) {
- try {
- target.terminate();
- } catch (DebugException e) {
- status.merge(e.getStatus());
- }
- } else {
- if (target.canDisconnect()) {
- try {
- target.disconnect();
- } catch (DebugException de) {
- status.merge(de.getStatus());
- }
- }
- }
- }
- }
- if (status.isOK()) {
- return;
- }
- IStatus[] children= status.getChildren();
- if (children.length == 1) {
- throw new DebugException(children[0]);
- }
- throw new DebugException(status);
- }
-
- /**
- * @see ILaunch#getLaunchMode()
- */
- public final String getLaunchMode() {
- return fMode;
- }
-
- /**
- * Sets the mode in which this launch was
- * launched.
- *
- * @param mode the mode in which this launch
- * was launched - one of the constants defined
- * by <code>ILaunchManager</code>.
- */
- private void setLaunchMode(String mode) {
- fMode = mode;
- }
-
- /**
- * @see ILaunch#getLaunchConfiguration()
- */
- public ILaunchConfiguration getLaunchConfiguration() {
- return fConfiguration;
- }
-
- /**
- * @see ILaunch#setAttribute(String, String)
- */
- public void setAttribute(String key, String value) {
- if (fAttributes == null) {
- fAttributes = new HashMap(5);
- }
- fAttributes.put(key, value);
- }
-
- /**
- * @see ILaunch#getAttribute(String)
- */
- public String getAttribute(String key) {
- if (fAttributes == null) {
- return null;
- }
- return (String)fAttributes.get(key);
- }
-
- /**
- * @see ILaunch#getDebugTargets()
- */
- public IDebugTarget[] getDebugTargets() {
- return (IDebugTarget[])fTargets.toArray(new IDebugTarget[fTargets.size()]);
- }
-
- /**
- * Returns the debug targets associated with this
- * launch, in its internal form - a list
- *
- * @return list of debug targets
- */
- protected List getDebugTargets0() {
- return fTargets;
- }
-
- /**
- * @see ILaunch#addDebugTarget(IDebugTarget)
- */
- public final void addDebugTarget(IDebugTarget target) {
- if (target != null) {
- if (!getDebugTargets0().contains(target)) {
- getDebugTargets0().add(target);
- fireChanged();
- }
- }
- }
-
- /**
- * @see ILaunch#removeDebugTarget(IDebugTarget)
- */
- public final void removeDebugTarget(IDebugTarget target) {
- if (target != null) {
- if (getDebugTargets0().remove(target)) {
- fireChanged();
- }
- }
- }
-
- /**
- * @see ILaunch#addProcess(IProcess)
- */
- public final void addProcess(IProcess process) {
- if (process != null) {
- if (!getProcesses0().contains(process)) {
- getProcesses0().add(process);
- fireChanged();
- }
- }
- }
-
- /**
- * @see ILaunch#removeProcess(IProcess)
- */
- public final void removeProcess(IProcess process) {
- if (process != null) {
- if (getProcesses0().remove(process)) {
- fireChanged();
- }
- }
- }
-
- /**
- * Adds the given processes to this launch.
- *
- * @param processes processes to add
- */
- protected void addProcesses(IProcess[] processes) {
- if (processes != null) {
- for (int i = 0; i < processes.length; i++) {
- addProcess(processes[i]);
- fireChanged();
- }
- }
- }
-
- /**
- * Notifies listeners that this launch has changed.
- * Has no effect of this launch has not yet been
- * properly created/initialized.
- */
- protected void fireChanged() {
- if (!fSuppressChange) {
- ((LaunchManager)getLaunchManager()).fireUpdate(this, LaunchManager.CHANGED);
- ((LaunchManager)getLaunchManager()).fireUpdate(new ILaunch[] {this}, LaunchManager.CHANGED);
- }
- }
-
- /**
- * Notifies listeners that this launch has terminated.
- * Has no effect of this launch has not yet been
- * properly created/initialized.
- */
- protected void fireTerminate() {
- if (!fSuppressChange) {
- ((LaunchManager)getLaunchManager()).fireUpdate(this, LaunchManager.TERMINATE);
- ((LaunchManager)getLaunchManager()).fireUpdate(new ILaunch[] {this}, LaunchManager.TERMINATE);
- }
- }
-
- /**
- * @see ILaunch#hasChildren()
- */
- public boolean hasChildren() {
- return getProcesses0().size() > 0 || (getDebugTargets0().size() > 0);
- }
-
- /**
- * Returns whether any processes or targets can be disconnected.
- * Ones that are already terminated or disconnected are ignored.
- *
- * @see org.eclipse.debug.core.model.IDisconnect#canDisconnect()
- */
- public boolean canDisconnect() {
- List processes = getProcesses0();
- for (int i = 0; i < processes.size(); i++) {
- if (processes.get(i) instanceof IDisconnect) {
- IDisconnect process = (IDisconnect)processes.get(i);
- if (process.canDisconnect()) {
- return true;
- }
- }
- }
- List targets = getDebugTargets0();
- for (int i = 0; i < targets.size(); i++) {
- if ( ((IDebugTarget)targets.get(i)).canDisconnect() ) {
- return true;
- }
- }
- return false;
- }
-
-
- /**
- * @see org.eclipse.debug.core.model.IDisconnect#disconnect()
- */
- public void disconnect() throws DebugException {
- List processes = getProcesses0();
- for (int i = 0; i < processes.size(); i++) {
- if (processes.get(i) instanceof IDisconnect) {
- IDisconnect disconnect = (IDisconnect)processes.get(i);
- if (disconnect.canDisconnect()) {
- disconnect.disconnect();
- }
- }
- }
- List targets = getDebugTargets0();
- for (int i = 0; i < targets.size(); i++) {
- IDebugTarget debugTarget = (IDebugTarget)targets.get(i);
- if (debugTarget.canDisconnect()) {
- debugTarget.disconnect();
- }
- }
- }
-
- /**
- * Returns whether all of the contained targets and processes are
- * disconnected. Processes that don't support disconnecting are not
- * counted.
- *
- * @see org.eclipse.debug.core.model.IDisconnect#isDisconnected()
- */
- public boolean isDisconnected() {
- List processes = getProcesses0();
- for (int i = 0; i < processes.size(); i++) {
- if (processes.get(i) instanceof IDisconnect) {
- IDisconnect process = (IDisconnect)processes.get(i);
- if (!process.isDisconnected()) {
- return false;
- }
- }
- }
- List targets = getDebugTargets0();
- for (int i = 0; i < targets.size(); i++) {
- if ( !((IDebugTarget)targets.get(i)).isDisconnected() ) {
- return false;
- }
- }
- // only return true if there are processes or targets that are disconnected
- return hasChildren();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchListener#launchRemoved(org.eclipse.debug.core.ILaunch)
- */
- public void launchRemoved(ILaunch launch) {
- if (this.equals(launch)) {
- getLaunchManager().removeLaunchListener(this);
- getLaunchManager().removeLaunchConfigurationListener(this);
- DebugPlugin.getDefault().removeDebugEventListener(this);
- }
- }
-
- /**
- * Returns the launch manager.
- *
- * @return the launch manager.
- */
- protected ILaunchManager getLaunchManager() {
- return DebugPlugin.getDefault().getLaunchManager();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchListener#launchAdded(org.eclipse.debug.core.ILaunch)
- */
- public void launchAdded(ILaunch launch) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchListener#launchChanged(org.eclipse.debug.core.ILaunch)
- */
- public void launchChanged(ILaunch launch) {
- }
-
- /* (non-Javadoc)
- *
- * If the launch configuration this launch is associated with is
- * moved, update the underlying handle to the new location.
- *
- * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationAdded(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void launchConfigurationAdded(ILaunchConfiguration configuration) {
- ILaunchConfiguration from = getLaunchManager().getMovedFrom(configuration);
- if (from != null && from.equals(getLaunchConfiguration())) {
- setLaunchConfiguration(configuration);
- fireChanged();
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationChanged(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void launchConfigurationChanged(ILaunchConfiguration configuration) {
- }
-
- /* (non-Javadoc)
- *
- * Update the launch configuration associated with this launch if the
- * underlying configuration is deleted.
- *
- * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationRemoved(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void launchConfigurationRemoved(ILaunchConfiguration configuration) {
- if (configuration.equals(getLaunchConfiguration())) {
- if (getLaunchManager().getMovedTo(configuration) == null) {
- setLaunchConfiguration(null);
- fireChanged();
- }
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.IDebugEventSetListener#handleDebugEvents(org.eclipse.debug.core.DebugEvent[])
- */
- public void handleDebugEvents(DebugEvent[] events) {
- for (int i = 0; i < events.length; i++) {
- DebugEvent event = events[i];
- if (event.getKind() == DebugEvent.TERMINATE) {
- Object object = event.getSource();
- ILaunch launch = null;
- if (object instanceof IProcess) {
- launch = ((IProcess)object).getLaunch();
- } else if (object instanceof IDebugTarget) {
- launch = ((IDebugTarget)object).getLaunch();
- }
- if (this.equals(launch)) {
- if (isTerminated()) {
- fireTerminate();
- }
- }
- }
- }
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java
deleted file mode 100644
index 83f983cef..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceRuleFactory;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IBreakpointManager;
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-
-/**
- * Abstract implementation of a breakpoint. This class is
- * intended to be subclassed by implementations
- * of breakpoints.
- *
- * @see IBreakpoint
- * @since 2.0
- */
-
-public abstract class Breakpoint extends PlatformObject implements IBreakpoint {
-
- static {
- // making sure that the BreakpointManager is correctly initialized
- // before any breakpoint marker related operation (see bug 54993)
- DebugPlugin.getDefault().getBreakpointManager().getBreakpoints();
- }
-
- /**
- * Underlying marker.
- */
- private IMarker fMarker= null;
-
- /**
- * @see IBreakpoint#setMarker(IMarker)
- */
- public void setMarker(IMarker marker) throws CoreException {
- fMarker= marker;
- }
-
- /**
- * @see Object#equals(Object)
- */
- public boolean equals(Object item) {
- if (item instanceof IBreakpoint) {
- return getMarker().equals(((IBreakpoint)item).getMarker());
- }
- return false;
- }
-
- /**
- * @see Object#hashCode()
- */
- public int hashCode() {
- return getMarker().hashCode();
- }
-
- /**
- * @see IBreakpoint#setEnabled(boolean)
- */
- public void setEnabled(boolean enabled) throws CoreException {
- if (enabled != isEnabled()) {
- setAttribute(ENABLED, enabled);
- }
- }
-
- /**
- * @see IBreakpoint#isEnabled()
- */
- public boolean isEnabled() throws CoreException {
- return getMarker().getAttribute(ENABLED, false);
- }
-
- /**
- * @see IBreakpoint#isRegistered()
- */
- public boolean isRegistered() throws CoreException {
- IMarker marker= getMarker();
- return marker.exists() && marker.getAttribute(REGISTERED, true);
- }
-
- /**
- * @see IBreakpoint#setRegistered(boolean)
- */
- public void setRegistered(boolean registered) throws CoreException {
- if (isRegistered() != registered) {
- setAttribute(REGISTERED, registered);
- IBreakpointManager mgr = DebugPlugin.getDefault().getBreakpointManager();
- if (registered) {
- mgr.addBreakpoint(this);
- } else {
- mgr.removeBreakpoint(this, false);
- }
- }
- }
-
- /**
- * @see IBreakpoint#delete()
- */
- public void delete() throws CoreException {
- DebugPlugin.getDefault().getBreakpointManager().removeBreakpoint(this, false);
- getMarker().delete();
- }
-
- /**
- * @see IBreakpoint#getMarker()
- */
- public IMarker getMarker() {
- return fMarker;
- }
-
- /**
- * @see IBreakpoint#isPersisted()
- */
- public boolean isPersisted() throws CoreException {
- return getMarker().getAttribute(PERSISTED, true);
- }
-
- /**
- * @see IBreakpoint#setPersisted(boolean)
- */
- public void setPersisted(boolean persisted) throws CoreException {
- if (isPersisted() != persisted) {
- setAttributes(new String[] {PERSISTED, IMarker.TRANSIENT}, new Object[] {new Boolean(persisted), new Boolean(!persisted)});
- }
- }
-
- /**
- * @see IBreakpoint#getGroup()
- */
- public String getGroup() throws CoreException {
- return getMarker().getAttribute(GROUP, null);
- }
-
- /**
- * @see IBreakpoint#setGroup(String)
- */
- public void setGroup(String group) throws CoreException {
- if (group != null && group.length() == 0) {
- group= null;
- }
- setAttribute(GROUP, group);
- }
-
- /**
- * Convenience method to set the given boolean attribute of
- * this breakpoint's underlying marker in a workspace
- * runnable. Setting marker attributes in a workspace runnable
- * prevents deadlock.
- *
- * @param attributeName attribute name
- * @param value attribute value
- * @exception CoreException is setting the attribute fails
- * @see IMarker#setAttribute(java.lang.String, boolean)
- */
- protected void setAttribute(final String attributeName, final boolean value) throws CoreException {
- IWorkspace workspace= ResourcesPlugin.getWorkspace();
- IWorkspaceRunnable runnable= new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- ensureMarker().setAttribute(attributeName, value);
- }
- };
-
- workspace.run(runnable, getMarkerRule(), 0, null);
- }
-
- /**
- * Convenience method to set the given integer attribute of
- * this breakpoint's underlying marker in a workspace
- * runnable. Setting marker attributes in a workspace runnable
- * prevents deadlock.
- *
- * @param attributeName attribute name
- * @param value attribute value
- * @exception CoreException is setting the attribute fails
- * @see IMarker#setAttribute(java.lang.String, int)
- */
- protected void setAttribute(final String attributeName, final int value) throws CoreException {
- IWorkspace workspace= ResourcesPlugin.getWorkspace();
- IWorkspaceRunnable runnable= new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- ensureMarker().setAttribute(attributeName, value);
- }
- };
-
- workspace.run(runnable, getMarkerRule(), 0, null);
- }
-
- /**
- * Convenience method to set the given attribute of
- * this breakpoint's underlying marker in a workspace
- * runnable. Setting marker attributes in a workspace runnable
- * prevents deadlock.
- *
- * @param attributeName attribute name
- * @param value attribute value
- * @exception CoreException is setting the attribute fails
- * @see IMarker#setAttribute(java.lang.String, java.lang.Object)
- */
- protected void setAttribute(final String attributeName, final Object value) throws CoreException {
- IWorkspace workspace= ResourcesPlugin.getWorkspace();
- IWorkspaceRunnable runnable= new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- ensureMarker().setAttribute(attributeName, value);
- }
- };
-
- workspace.run(runnable, getMarkerRule(), 0, null);
- }
-
- /**
- * Convenience method to set the given attributes of
- * this breakpoint's underlying marker in a workspace
- * runnable. Setting marker attributes in a workspace runnable
- * prevents deadlock.
- *
- * @param attributeNames attribute names
- * @param values attribute values
- * @exception CoreException is setting the attributes fails
- * @see IMarker#setAttributes(java.lang.String[], java.lang.Object[])
- */
- protected void setAttributes(final String[] attributeNames, final Object[] values) throws CoreException {
- IWorkspace workspace= ResourcesPlugin.getWorkspace();
- IWorkspaceRunnable runnable= new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- ensureMarker().setAttributes(attributeNames, values);
- }
- };
-
- workspace.run(runnable, getMarkerRule(), IWorkspace.AVOID_UPDATE, null);
- }
-
- /**
- * Convenience method to set the attributes of
- * this breakpoint's underlying marker in a workspace
- * runnable. Setting marker attributes in a workspace runnable
- * prevents deadlock.
- *
- * @param attributes attribute map
- * @exception CoreException is setting the attributes fails
- * @see IMarker#setAttributes(java.util.Map)
- */
- protected void setAttributes(final Map attributes) throws CoreException{
- IWorkspace workspace= ResourcesPlugin.getWorkspace();
- IWorkspaceRunnable runnable= new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- ensureMarker().setAttributes(attributes);
- }
- };
-
- workspace.run(runnable, getMarkerRule(), IWorkspace.AVOID_UPDATE, null);
- }
-
- /**
- * Returns the marker associated with this breakpoint.
- *
- * @return breakpoint marker
- * @exception DebugException if no marker is associated with
- * this breakpoint or the associated marker does not exist
- */
- protected IMarker ensureMarker() throws DebugException {
- IMarker m = getMarker();
- if (m == null || !m.exists()) {
- throw new DebugException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugException.REQUEST_FAILED,
- DebugCoreMessages.getString("Breakpoint.no_associated_marker"), null)); //$NON-NLS-1$
- }
- return m;
- }
-
- /**
- * Returns whether this breakpoint has an associated marker that exists.
- *
- * @return returns whether this breakpoint has an associated marker that exists
- * @since 2.1
- */
- protected boolean markerExists() {
- IMarker m = getMarker();
- return (m != null && m.exists());
- }
-
- /**
- * Returns a scheduling rule to use when modifying markers on the given resource,
- * possibly <code>null</code>.
- *
- * @param resource a resource on which a marker will be created, modified, or deleted
- * @return a scheduling rule to use when modifying markers on the given resource
- * possibly <code>null</code>
- * @since 3.1
- */
- protected ISchedulingRule getMarkerRule(IResource resource) {
- ISchedulingRule rule = null;
- if (resource != null) {
- IResourceRuleFactory ruleFactory = ResourcesPlugin.getWorkspace().getRuleFactory();
- rule = ruleFactory.markerRule(resource);
- }
- return rule;
- }
-
- /**
- * Returns a scheduling rule to use when modifying or deleting this breakpoint's marker,
- * possibly <code>null</code>. This method is only valid when this breakpoint's
- * marker has already been created. When creating a marker on a specific resource,
- * use <code>getMarkerRule(IResource)</code> instead.
- *
- * @return a scheduling rule to use when modifying or deleting this breakpoint's marker
- * @since 3.1
- */
- protected ISchedulingRule getMarkerRule() {
- ISchedulingRule rule = null;
- IMarker marker = getMarker();
- if (marker != null) {
- IResource resource = marker.getResource();
- if (resource != null) {
- IResourceRuleFactory ruleFactory = ResourcesPlugin.getWorkspace().getRuleFactory();
- rule = ruleFactory.markerRule(resource);
- }
- }
- return rule;
- }
-
- /**
- * Execute the given workspace runnable with the scheduling rule to use when running the operation.
- *
- * @param rule the rule to use when running the operation
- * @param wr the runnable operation
- * @throws DebugException If a core exception occurs performing the operation
- * @since 3.1
- */
- protected void run(ISchedulingRule rule, IWorkspaceRunnable wr) throws DebugException {
- try {
- ResourcesPlugin.getWorkspace().run(wr, rule, 0, null);
- } catch (CoreException e) {
- throw new DebugException(e.getStatus());
- }
- }
-
-} \ No newline at end of file
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java
deleted file mode 100644
index 30d6c5dd5..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.debug.core.DebugPlugin;
-
-/**
- * A breakpoint is capable of suspending the execution of a
- * program at a specific location when a program is running
- * in debug mode. Each breakpoint has an associated marker which
- * stores and persists all attributes associated with a breakpoint.
- * <p>
- * A breakpoint is defined in two parts:
- * <ol>
- * <li>By an extension of kind <code>"org.eclipse.debug.core.breakpoints"</code></li>
- * <li>By a marker definition that corresponds to the above breakpoint extension</li>
- * </ol>
- * <p>
- * For example, following is a definition of corresponding breakpoint
- * and breakpoint marker definitions. Note that the <code>markerType</code>
- * attribute defined by the breakpoint extension corresponds to the
- * type of the marker definition.
- * <pre>
- * &lt;extension point="org.eclipse.debug.core.breakpoints"&gt;
- * &lt;breakpoint
- * id="com.example.Breakpoint"
- * class="com.example.Breakpoint"
- * markerType="com.example.BreakpointMarker"&gt;
- * &lt;/breakpoint&gt;
- * &lt;/extension&gt;
- * &lt;extension point="org.eclipse.core.resources.markers"&gt;
- * &lt;marker
- * id="com.example.BreakpointMarker"
- * super type="org.eclipse.debug.core.breakpointMarker"
- * attribute name ="exampleAttribute"&gt;
- * &lt;/marker&gt;
- * &lt;/extension&gt;
- * </pre>
- * <p>
- * The breakpoint manager instantiates persisted breakpoints by
- * traversing all markers that are a subtype of
- * <code>"org.eclipse.debug.core.breakpointMarker"</code>, and
- * instantiating the class defined by the <code>class</code> attribute
- * on the associated breakpoint extension. The method <code>setMarker</code>
- * is then called to associate a marker with the breakpoint.
- * </p>
- * <p>
- * Breakpoints may or may not be registered with the breakpoint manager, and
- * are persisted and restored as such. Since marker definitions only allow
- * all or none of a specific marker type to be persisted, breakpoints define
- * a <code>PERSISTED</code> attribute for selective persistence of breakpoints
- * of the same type.
- * </p>
- *
- * @since 2.0
- */
-
-public interface IBreakpoint extends IAdaptable {
-
- /**
- * Root breakpoint marker type
- * (value <code>"org.eclipse.debug.core.breakpointMarker"</code>).
- */
- public static final String BREAKPOINT_MARKER = DebugPlugin.getUniqueIdentifier() + ".breakpointMarker"; //$NON-NLS-1$
-
- /**
- * Line breakpoint marker type
- * (value <code>"org.eclipse.debug.core.lineBreakpoint"</code>).
- */
- public static final String LINE_BREAKPOINT_MARKER = DebugPlugin.getUniqueIdentifier() + ".lineBreakpointMarker"; //$NON-NLS-1$
-
- /**
- * Enabled breakpoint marker attribute (value <code>"org.eclipse.debug.core.enabled"</code>).
- * The attribute is a <code>boolean</code> corresponding to the
- * enabled state of a breakpoint.
- *
- * @see org.eclipse.core.resources.IMarker#getAttribute(String, boolean)
- */
- public static final String ENABLED= "org.eclipse.debug.core.enabled"; //$NON-NLS-1$
-
- /**
- * Debug model identifier breakpoint marker attribute (value <code>"org.eclipse.debug.core.id"</code>).
- * The attribute is a <code>String</code> corresponding to the
- * identifier of the debug model a breakpoint is associated with.
- */
- public static final String ID= "org.eclipse.debug.core.id"; //$NON-NLS-1$
-
- /**
- * Registered breakpoint marker attribute (value <code>"org.eclipse.debug.core.registered"</code>).
- * The attribute is a <code>boolean</code> corresponding to
- * whether a breakpoint has been registered with the breakpoint manager.
- *
- * @see org.eclipse.core.resources.IMarker#getAttribute(String, boolean)
- */
- public static final String REGISTERED= "org.eclipse.debug.core.registered"; //$NON-NLS-1$
-
- /**
- * Persisted breakpoint marker attribute (value <code>"org.eclipse.debug.core.persisted"</code>).
- * The attribute is a <code>boolean</code> corresponding to
- * whether a breakpoint is to be persisted accross workspace
- * invocations.
- *
- * @see org.eclipse.core.resources.IMarker#getAttribute(String, boolean)
- */
- public static final String PERSISTED= "org.eclipse.debug.core.persisted"; //$NON-NLS-1$
-
- /**
- * Breakpoint group marker attribute (value <code>"org.eclipse.debug.core.group"</code>).
- * The attribute is a <code>String</code> corresponding to the group
- * name.
- *
- * @since 3.1
- */
- public static final String GROUP= "org.eclipse.debug.core.group"; //$NON-NLS-1$
-
- /**
- * Breakpoint skip attribute (value <code>"org.eclipse.debug.core.skip"</code>).
- * The attribute is a <code>boolean</code> corresponding to whether the breakpoint
- * should be skipped.
- * <p>
- * This attribute is not intended to be modified by clients. The breakpoint manager
- * toggles this attribute as it is enabled/disabled.
- * </p>
- * @since 3.1
- */
- public static final String SKIP= "org.eclipse.debug.core.skip"; //$NON-NLS-1$
-
- /**
- * Deletes this breakpoint's underlying marker, and removes
- * this breakpoint from the breakpoint manager.
- *
- * @exception CoreException if unable to delete this breakpoint's
- * underlying marker
- */
- public void delete() throws CoreException;
-
- /**
- * Returns the marker associated with this breakpoint, or
- * <code>null</code> if no marker is associated with this breakpoint.
- *
- * @return associated marker, or <code>null</code> if there is
- * no associated marker.
- */
- public IMarker getMarker();
- /**
- * Sets the marker associated with this breakpoint. This method is
- * called once at breakpoint creation.
- *
- * @param marker the marker to associate with this breakpoint
- * @exception CoreException if an error occurs accessing the marker
- */
- public void setMarker(IMarker marker) throws CoreException;
- /**
- * Returns the identifier of the debug model this breakpoint is
- * associated with.
- *
- * @return the identifier of the debug model this breakpoint is
- * associated with
- */
- public String getModelIdentifier();
- /**
- * Returns whether this breakpoint is enabled
- *
- * @return whether this breakpoint is enabled
- * @exception CoreException if unable to access the associated
- * attribute from this breakpoint's underlying marker
- */
- public boolean isEnabled() throws CoreException;
- /**
- * Sets the enabled state of this breakpoint. This has no effect
- * if the current enabled state is the same as specified by the
- * enabled parameter.
- *
- * @param enabled whether this breakpoint should be enabled
- * @exception CoreException if unable to set the associated attribute on
- * this breakpoint's underlying marker.
- */
- public void setEnabled(boolean enabled) throws CoreException;
-
- /**
- * Returns whether this breakpoint is currently registered with
- * the breakpoint manager.
- *
- * @return whether this breakpoint is currently registered with
- * the breakpoint manager
- * @exception CoreException if unable to access the associated
- * attribute on this breakpoint's underlying marker
- */
- public boolean isRegistered() throws CoreException;
-
- /**
- * Sets whether this breakpoint is currently registered with the
- * breakpoint manager.
- *
- * @param registered whether this breakpoint is registered with the
- * breakpoint manager
- * @exception CoreException if unable to set the associated attribute
- * on this breakpoint's underlying marker.
- */
- public void setRegistered(boolean registered) throws CoreException;
-
- /**
- * Returns whether this breakpoint is to be persisted across
- * workspace invocations, or when a project is closed and re-opened.
- * Since marker definitions only allow all/none of a specific type
- * of marker to be persisted (rather than selected markers of a
- * specific type), breakpoints define this functionality.
- *
- * @return whether this breakpoint is to be persisted
- * @exception CoreException if unable to access the associated attribute
- * on this breakpoint's underlying marker
- */
- public boolean isPersisted() throws CoreException;
-
- /**
- * Sets whether this breakpoint is to be persisted across
- * workspace invocations, or when a project is closed and re-opened.
- * Has no effect if this breakpoint's marker definition is defined as not
- * persisted. Sets the underlying <code>TRANSIENT</code> attribute on this
- * breakpoint's marker to <code>true</code>.
- *
- * @param registered whether this breakpoint is to be persisted across
- * workspace invocations
- * @exception CoreException if unable to set the associated attribute on
- * this breakpoint's underlying marker.
- */
- public void setPersisted(boolean registered) throws CoreException;
-
- /**
- * Returns the name of the group this breakpoint belongs to
- * or <code>null</code> if none.
- *
- * @return the name of the group this breakpoint belongs to or
- * <code>null</code>.
- * @exception CoreException if unable to access the associated attribute
- * on this breakpoint's underlying marker
- * @since 3.1
- */
- public String getGroup() throws CoreException;
-
- /**
- * Sets this breakpoint's group to the group with the given name or
- * <code>null</code> to set the group to none.
- *
- * @param groupName the name of the group to which this breakpoint belongs
- * @exception CoreException if unable to set the associated attribute on
- * this breakpoint's underlying marker.
- * @since 3.1
- */
- public void setGroup(String groupName) throws CoreException;
-
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java
deleted file mode 100644
index de85d117e..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.debug.core.ILaunch;
-
-/**
- * A debug element represents an artifact in a program being
- * debugged.
- * <p>
- * Some methods on debug elements require communication
- * with the target program. Such methods may throw a <code>DebugException</code>
- * with a status code of <code>TARGET_REQUEST_FAILED</code>
- * when unable to complete a request due to a failure on the target.
- * Methods that require communication with the target program or require
- * the target to be in a specific state (for example, suspended), are declared
- * as such.
- * </p>
- * <p>
- * Debug elements are language independent. However, language specific
- * features can be made available via the adapter mechanism provided by
- * <code>IAdaptable</code>, or by extending the debug element interfaces.
- * A debug model is responsible for declaring any special adapters
- * its debug elements implement.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- */
-public interface IDebugElement extends IAdaptable {
-
- /**
- * Returns the unique identifier of the plug-in
- * this debug element originated from.
- *
- * @return the plug-in identifier
- */
- public String getModelIdentifier();
- /**
- * Returns the debug target this element is contained in.
- *
- * @return the debug target this element is contained in
- */
- public IDebugTarget getDebugTarget();
- /**
- * Returns the launch this element is contained in.
- *
- * @return the launch this element is contained in
- */
- public ILaunch getLaunch();
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugModelProvider.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugModelProvider.java
deleted file mode 100644
index d3291a830..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugModelProvider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-/**
- * A debug model provider provides debug model identifiers.
- * This interface is used as an adapter to determine what
- * debug models are associated with an adaptable object.
- * Generally, when debugging one language, only one debug
- * model is associated with a debug element. However,
- * a debug model that provides cross language debugging
- * may represent several debug models.
- * <p>
- * Clients are intended to implement this interface.
- * </p>
- * @since 3.0
- */
-public interface IDebugModelProvider {
-
- /**
- * Returns a collection of debug model identifiers.
- *
- * @return a collection of debug model identifiers
- */
- public String[] getModelIdentifiers();
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java
deleted file mode 100644
index d1e8db15f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.IBreakpointListener;
-
-/**
- * A debug target is a debuggable execution context. For example, a debug target
- * may represent a debuggable process or a virtual machine. A debug target is the root
- * of the debug element hierarchy. A debug target contains threads. Minimally, a debug
- * target supports the following:
- * <ul>
- * <li>terminate
- * <li>suspend/resume
- * <li>breakpoints
- * <li>disconnect
- * </ul>
- * <p>
- * Generally, launching a debug session results in the creation of a
- * debug target. Launching is a client responsibility, as is debug target
- * creation.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see ITerminate
- * @see ISuspendResume
- * @see IBreakpointListener
- * @see IDisconnect
- * @see IMemoryBlockRetrieval
- * @see org.eclipse.debug.core.ILaunch
- */
-public interface IDebugTarget extends IDebugElement, ITerminate, ISuspendResume, IBreakpointListener, IDisconnect, IMemoryBlockRetrieval {
- /**
- * Returns the system process associated with this debug target.
- *
- * @return the system process associated with this debug target
- */
- public IProcess getProcess();
- /**
- * Returns the threads contained in this debug target. An
- * empty collection is returned if this debug target contains
- * no threads.
- *
- * @return a collection of threads
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li></ul>
- * @since 2.0
- */
- public IThread[] getThreads() throws DebugException;
-
- /**
- * Returns whether this debug target currently contains any threads.
- *
- * @return whether this debug target currently contains any threads
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li></ul>
- * @since 2.0
- */
- public boolean hasThreads() throws DebugException;
-
- /**
- * Returns the name of this debug target. Name format is debug model
- * specific, and should be specified by a debug model.
- *
- * @return this target's name
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li></ul>
- */
- public String getName() throws DebugException;
-
- /**
- * Returns whether this target can install the given breakpoint.
- *
- * @return whether this target can install the given breakpoint
- */
- public boolean supportsBreakpoint(IBreakpoint breakpoint);
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java
deleted file mode 100644
index f4eaf1adc..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * The ability to end a debug session with a target program
- * and allow the target to continue running.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IDebugTarget
- */
-public interface IDisconnect {
- /**
- * Returns whether this element can currently disconnect.
- *
- * @return whether this element can currently disconnect
- */
- public boolean canDisconnect();
- /**
- * Disconnects this element from its target. Generally, disconnecting
- * ends a debug session with a debug target, but allows the target
- * program to continue running.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- */
- public void disconnect() throws DebugException;
- /**
- * Returns whether this element is disconnected.
- *
- * @return whether this element is disconnected
- */
- public boolean isDisconnected();
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IErrorReportingExpression.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IErrorReportingExpression.java
deleted file mode 100644
index 108588c01..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IErrorReportingExpression.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-/**
- * An expression that can report errors which occurred during the
- * expression's evaluation.
- *
- * @since 3.0
- */
-public interface IErrorReportingExpression extends IExpression {
- /**
- * Returns whether this expression has errors to report. An expression
- * can have errors if errors were generated the last time its value was
- * computed
- *
- * @return whether this expression's result has errors
- */
- public boolean hasErrors();
- /**
- * Returns this expression's error messages, if any. An expression can
- * have errors if errors were generated the last time its value was
- * computed.
- *
- * @return this expression's error messages
- */
- public String[] getErrorMessages();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java
deleted file mode 100644
index 7f2acbf38..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-/**
- * An expression is a snippet of code that can be evaluated
- * to produce a value. When and how an expression is evaluated
- * is implementation specific. The context/binding required to
- * evaluate an expression varies by debug model, and by
- * user intent. Furthermore, an expression may need to be evaluated
- * at a specific location in a program (for example, at a
- * breakpoint/line where certain variables referenced in the
- * expression are visible/allocated). A user may want to
- * evaluate an expression once to produce a value that can
- * be inspected iteratively, or they may wish to evaluate an
- * expression iteratively producing new values each time
- * (i.e. as in a watch list).
- * <p>
- * Clients are intended to implement this interface.
- * </p>
- * @since 2.0
- */
-public interface IExpression extends IDebugElement {
-
- /**
- * Returns this expression's snippet of code.
- *
- * @return the expression
- */
- public abstract String getExpressionText();
-
- /**
- * Returns the current value of this expression or
- * <code>null</code> if this expression does not
- * currently have a value.
- *
- * @return value or <code>null</code>
- */
- public abstract IValue getValue();
-
- /**
- * Returns the debug target this expression is associated
- * with, or <code>null</code> if this expression is not
- * associated with a debug target.
- *
- * @return debug target or <code>null</code>
- * @see IDebugElement#getDebugTarget()
- */
- public abstract IDebugTarget getDebugTarget();
-
- /**
- * Notifies this expression that it has been removed
- * from the expression manager. Any required clean up
- * is be performed such that this expression can be
- * garbage collected.
- */
- public abstract void dispose();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFilteredStep.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFilteredStep.java
deleted file mode 100644
index 3c4c2faa5..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFilteredStep.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * Provides the ability to perform a filtered step. Implementations must be non-
- * blocking. Filter implementation is debug model specific and may not be
- * supported by all debug models.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @since 2.1
- * @deprecated clients should implement <code>IStepFilters</code> instead
- */
-public interface IFilteredStep extends IStep {
- /**
- * Returns whether this element can currently perform a filtered step into.
- *
- * @return whether this element can currently perform a filtered step into
- */
- public boolean canStepWithFilters();
- /**
- * Steps into the current statement, generating <code>RESUME</code>
- * and <code>SUSPEND</code> events for the associated thread, applying step
- * filters, as applicable for the associated thread. Can only be called when
- * the associated thread is suspended. Implementations must implement
- * stepping as non- blocking.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target</li>
- * <li>NOT_SUPPORTED - The capability is not supported by the target</li>
- * </ul>
- */
- public void stepWithFilters() throws DebugException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFlushableStreamMonitor.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFlushableStreamMonitor.java
deleted file mode 100644
index 3999f6370..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFlushableStreamMonitor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-
-/**
- * A stream monitor who's contents can be flushed. As well, a client may
- * turn buffering on/off in a flushable stream monitor.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @since 2.1
- */
-public interface IFlushableStreamMonitor extends IStreamMonitor {
-
- /**
- * Empties the contents of this stream monitor's underlying buffer.
- */
- public void flushContents();
-
- /**
- * Sets whether the contents of this monitor's underlying stream should be
- * buffered. When <code>false</code>, contents appended to this stream monitor
- * are not stored in a buffer, and are thus not available from
- * <code>getContents()</code>. Registered listeners are notified of appended
- * text, and must buffer the contents if desired.
- *
- * @param buffer whether the contents of this monitor's underlying stream
- * should be buffered
- */
- public void setBuffered(boolean buffer);
-
- /**
- * Returns whether the contents of this monitor's underlying stream is
- * buffered.
- *
- * @return whether the contents of this monitor's underlying stream is
- * buffered
- */
- public boolean isBuffered();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IIndexedValue.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IIndexedValue.java
deleted file mode 100644
index 54f920626..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IIndexedValue.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A value containing an indexed collection of variables - for example,
- * an array.
- * <p>
- * The indexed collection value has been added to the debug model to support
- * automatic partitioning of large arrays in the debug UI. Clients are not required
- * to implement this interface for values representing indexed collections,
- * however, doing so will provide enhanced display options in the debug UI.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @since 3.0
- */
-public interface IIndexedValue extends IValue {
-
- /**
- * Returns the variable at the given offset in this collection.
- * The offset is zero based.
- * @param offset zero based offset into this collection
- * @return returns the variable in this collection at the given
- * offset
- * @throws DebugException if unable to retrieve the variable at the
- * given offset
- */
- public IVariable getVariable(int offset) throws DebugException;
-
- /**
- * Returns a subset of the elements in this collection of variables as
- * specified by the given offset and length.
- *
- * @param offset beginning offset of the subset of elements to return
- * @param length the number of elements to return
- * @return a subset of the elements in this collection of variables as
- * specified by the given offset and length
- * @throws DebugException if unable to retrieve the variables
- */
- public IVariable[] getVariables(int offset, int length) throws DebugException;
-
- /**
- * Returns the number of entries in this indexed collection.
- *
- * @return the number of entries in this indexed collection
- * @throws DebugException if unable to determine the number
- * of entries in this collection
- */
- public int getSize() throws DebugException;
-
- /**
- * Returns the index of the first variable contained in this value.
- * Generally, indexed values are zero based, but this allows for
- * an arbitrary base offset.
- *
- * @return the index of the first variable contained in this value
- */
- public int getInitialOffset();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java
deleted file mode 100644
index 70755652f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-
-/**
- * A launch configuration delegate performs launching for a
- * specific type of launch configuration. A launch configuration
- * delegate is defined by the <code>delegate</code> attribute
- * of a <code>launchConfigurationType</code> extension.
- * <p>
- * This interface is intended to be implemented by clients.
- * </p>
- * @see org.eclipse.debug.core.ILaunchConfigurationType
- * @see ILaunchConfiguration
- * @since 2.0
- */
-public interface ILaunchConfigurationDelegate {
-
- /**
- * Launches the given configuration in the specified mode, contributing
- * debug targets and/or processes to the given launch object. The
- * launch object has already been registered with the launch manager.
- *
- * @param configuration the configuration to launch
- * @param mode the mode in which to launch, one of the mode constants
- * defined by <code>ILaunchManager</code> -
- * <code>RUN_MODE</code> or <code>DEBUG_MODE</code>.
- * @param monitor progress monitor, or <code>null</code>
- * @param launch the launch object to contribute processes and debug
- * targets to
- * @exception CoreException if launching fails
- */
- public void launch(ILaunchConfiguration configuration, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException;
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate2.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate2.java
deleted file mode 100644
index 3491a40ab..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate2.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-
-/**
- * Optional enhancements to the launch configuration delegate interface.
- * Allows launch delegates to abort a launch, build relevant projects in
- * the workspace before a launch, and create the launch object to be used
- * in a launch.
- * <p>
- * Clients implementing <code>ILaunchConfigurationDelegate</code> may also
- * implement this interface.
- * </p>
- * @since 3.0
- */
-public interface ILaunchConfigurationDelegate2 extends ILaunchConfigurationDelegate {
-
- /**
- * Returns a launch object to use when launching the given launch
- * configuration in the given mode, or <code>null</code> if a new default
- * launch object should be created by the debug platform. If a launch object
- * is returned, its launch mode must match that of the mode specified in
- * this method call.
- *
- * @param configuration the configuration being launched
- * @param mode the mode the configuration is being launched in
- * @return a launch object or <code>null</code>
- * @throws CoreException if unable to launch
- */
- public ILaunch getLaunch(ILaunchConfiguration configuration, String mode) throws CoreException;
-
- /**
- * Optionally performs any required building before launching the given
- * configuration in the specified mode, and returns whether the debug platform
- * should perform an incremental workspace build before the launch continues.
- * If <code>false</code> is returned the launch will proceed without further
- * building, and if <code>true</code> is returned an incremental build will
- * be performed on the workspace before launching.
- * <p>
- * This method is only called if the launch is invoked with flag indicating
- * building should take place before the launch. This is done via the
- * method
- * <code>ILaunchConfiguration.launch(String mode, IProgressMonitor monitor, boolean build)</code>.
- * </p>
- * @param configuration the configuration being launched
- * @param mode the mode the configuration is being launched in
- * @param monitor progress monitor
- * @return whether the debug platform should perform an incremental workspace
- * build before the launch
- * @throws CoreException if an exception occurrs while building
- */
- public boolean buildForLaunch(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Returns whether a launch should proceed. This method is called after
- * <code>preLaunchCheck()</code> and <code>buildForLaunch()</code> providing
- * a final chance for this launch delegate to abort a launch if required.
- * For example, a delegate could cancel a launch if it discovered compilation
- * errors that would prevent the launch from succeeding.
- *
- * @param configuration the configuration being launched
- * @param mode launch mode
- * @param monitor progress monitor
- * @return whether the launch should proceed
- * @throws CoreException if an exception occurs during final checks
- */
- public boolean finalLaunchCheck(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException;
-
- /**
- * Returns whether a launch should proceed. This method is called first
- * in the launch sequence providing an opportunity for this launch delegate
- * to abort the launch.
- *
- * @param configuration configuration being lanuched
- * @param mode launch mode
- * @param monitor progress monitor
- * @return whether the launch should proceed
- * @throws CoreException if an exception occurs while performing pre launch checks
- */
- public boolean preLaunchCheck(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILineBreakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILineBreakpoint.java
deleted file mode 100644
index 0f5369227..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILineBreakpoint.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A breakpoint that can be located at a specific line of source code.
- */
-public interface ILineBreakpoint extends IBreakpoint {
-
-/**
- * Returns the line number in the original source that corresponds
- * to the location of this breakpoint, or -1 if the attribute is not
- * present.
- *
- * @return this breakpoint's line number, or -1 if unknown
- * @exception CoreException if a <code>CoreException</code> is thrown
- * while accessing the underlying <code>IMarker.LINE_NUMBER</code> marker attribute
- */
-public int getLineNumber() throws CoreException;
-/**
- * Returns starting source index in the original source that corresponds
- * to the location of this breakpoint, or -1 if the attribute is not present.
- *
- * @return this breakpoint's char start value, or -1 if unknown
- * @exception CoreException if a <code>CoreException</code> is thrown
- * while accessing the underlying <code>IMarker.CHAR_START</code> marker attribute
- */
-public int getCharStart() throws CoreException;
-/**
- * Returns ending source index in the original source that corresponds
- * to the location of this breakpoint, or -1 if the attribute is not present.
- *
- * @return this breakpoint's char end value, or -1 if unknown
- * @exception CoreException if a <code>CoreException</code> is thrown
- * while accessing the underlying <code>IMarker.CHAR_END</code> marker attribute
- */
-public int getCharEnd() throws CoreException;
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate.java
deleted file mode 100644
index a3b7b1cbd..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A delegate that provides a value represengting the logical structure of a raw
- * implementation value from a debug model. Associated with a logical structure
- * type extension.
- * <p>
- * Clients contributing logical structure types should implement this
- * interface.
- * </p>
- * @since 3.0
- * @see org.eclipse.debug.core.ILogicalStructureType
- */
-public interface ILogicalStructureTypeDelegate {
-
- /**
- * Returns whether this structure type can provide a logical structure for
- * the given value.
- *
- * @param value value for which a logial structure is being requested
- * @return whether this structure type can provide a logical structure for
- * the given value
- */
- public boolean providesLogicalStructure(IValue value);
-
- /**
- * Returns a value representing a logical structure of the given value.
- *
- * @param value value for which a logical structure is being requested
- * @return value representing logical structure
- * @throws CoreException if an exception occurrs generating a logical
- * structure
- */
- public IValue getLogicalStructure(IValue value) throws CoreException;
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate2.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate2.java
deleted file mode 100644
index b3de90aab..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate2.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-/**
- * Optional extension to <code>ILogicalStructureTypeDelegate</code> that allows
- * a logical structure type delegate to provide a description for a value.
- * This allows a logical structure type to provide logical structures and
- * descriptions for more than one type of value.
- * <p>
- * If a logical structure type delegate implements this interface, it will
- * be consulted for a description rather than using the description attribute
- * provided in plub-in XML.
- * </p>
- * <p>
- * Clients contributing logical structure types can implement this
- * interface.
- * </p>
- * @since 3.1
- * @see org.eclipse.debug.core.ILogicalStructureType
- */
-public interface ILogicalStructureTypeDelegate2 {
-
- /**
- * Returns a simple description of the logical structure provided by this
- * structure type delegate, for the given value.
- * Cannot return <code>null</code>. This method is only called if this
- * logical strucure type delegate returns <code>true</code> for
- * <code>providesLogicalStructure(IValue)</code>.
- *
- * @return a simple description of the logical structure provided by this
- * structure type delegate, for the given value
- */
- public String getDescription(IValue value);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java
deleted file mode 100644
index 54d248cfb..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A contiguous segment of memory in an execution context.
- * A memory block is represented by a starting memory address
- * and a length. Not all debug architectures support the retrieval
- * of memory blocks.
- *
- * @see IMemoryBlockRetrieval
- * @since 2.0
- */
-public interface IMemoryBlock extends IDebugElement {
-
- /**
- * Returns the start address of this memory block.
- *
- * @return the start address of this memory block
- */
- public long getStartAddress();
-
- /**
- * Returns the length of this memory block in bytes.
- *
- * @return the length of this memory block in bytes
- */
- public long getLength();
-
- /**
- * Returns the values of the bytes currently contained
- * in this this memory block.
- *
- * @return the values of the bytes currently contained
- * in this this memory block
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- */
- public byte[] getBytes() throws DebugException;
-
- /**
- * Returns whether this memory block supports value modification
- *
- * @return whether this memory block supports value modification
- */
- public boolean supportsValueModification();
-
- /**
- * Sets the value of the bytes in this memory block at the specified
- * offset within this memory block to the spcified bytes.
- * The offset is zero based.
- *
- * @param offset the offset at which to set the new values
- * @param bytes the new values
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * <li>This memory block does not support value modification</li>
- * <li>The specified offset is greater than or equal to the length
- * of this memory block, or the number of bytes specified goes
- * beyond the end of this memory block (index of out of range)</li>
- * </ul>
- */
- public void setValue(long offset, byte[] bytes) throws DebugException;
-
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtension.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtension.java
deleted file mode 100644
index 0ec8c27a0..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtension.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-import java.math.BigInteger;
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * Represents a memory block.
- *
- * When the memory block is changed, fire a CHANGE Debug Event.
- *
- * When firing change event, be aware of the following:
- * - whenever a change event is fired, the content provider for Memory View / Memory Rendering
- * view checks to see if memory has actually changed.
- * - If memory has actually changed, a refresh will commence. Changes to the memory block
- * will be computed and will be shown with the delta icons.
- * - If memory has not changed, content will not be refreshed. However, previous delta information
- * will be erased. The screen will be refreshed to show that no memory has been changed. (All
- * delta icons will be removed.)
- *
- * Please note that these APIs will be called multiple times by the Memory View.
- * To improve performance, debug adapters need to cache the content of its memory block and only
- * retrieve updated data when necessary.
- * @since 3.1
- */
-public interface IMemoryBlockExtension extends IMemoryBlock {
-
- /**
- * Returns the expression of this memory block.
- * The expression will be used to construct the tab label of the memory view.
- *
- * @return expression of the memory block.
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the engine. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public String getExpression() throws DebugException;
-
- /**
- * Get the base address of this memory block in BigInteger
- * @return the base address of this memory block
- */
- public BigInteger getBigBaseAddress();
-
- /**
- * @return address size in number of bytes
- */
- public int getAddressSize();
-
-
- /**
- * Indicate if the base address of this memory block block could be modified
- * If return true, setBaseAddress will be used to change the base address
- * of this memory block.
- * * @return if the memory block supports base address modification
- */
- public boolean supportBaseAddressModification();
-
- /**
- * @return true to indicate that the memory block manages the changes in the
- * memory block. If the memory block manages changes, the memory block is
- * expected to cache the MemoryByte array returned by getBytesFromOffset and
- * getBytesFromAddress. The change information will not be calculated by
- * the memory view. Intead, the memory block keeps track of the bytes
- * and marks the bytes as changed/unchanged. Turn off both the CHANGE and UNCHANGED
- * bits if the memory block does not contain history for the address.
- *
- * If this function returns false, the Memory View will calculate
- * delta information for each byte based on its history.
- */
- public boolean supportsChangeManagement();
-
- /**
- * Set the base address of this memory block
- * @param address
- * @throws DebugException if the method fails. Reasons inlucde:
- * <ul><li>Failure communicating with the engine. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public void setBaseAddress(BigInteger address) throws DebugException;
-
-
- /**
- * Get bytes based on offset and length. Memory at base address + offset
- * should be returned.
- * Return an array of IMemory. Each IMemory object represents a section of the
- * memory block. The IMemory object allows debug adapters to provide more information
- * about a section of memory. Refer to IMemory for details.
- *
- * @param offset
- * @param length is the number of units of memory to return
- * @return an array of bytes from the memory block based on the given offset and length
- * The size of the array returned needs to be equal to
- * length * IMemoryBlockExtensionRetrieval.getAddressibleSize()
- * @throws DebugException if the method fails.
- */
- public MemoryByte[] getBytesFromOffset(long offset, long length) throws DebugException;
-
-
- /**
- * Get bytes based on a given address.
- *
- * Return an array of IMemory. Each IMemory object represents a section of the
- * memory block. The IMemory object allows debug adapters to provide more information
- * about a section of memory. Refer to IMemory for details.
- *
- * @param address
- * @param length is the number of units of memory to return
- * @return an array of bytes from the memory block based on the given offset and length
- * The size of the array returned needs to be equal to
- * length * IMemoryBlockExtensionRetrieval.getAddressibleSize()
- * @throws DebugException if method fails
- */
- public MemoryByte[] getBytesFromAddress(BigInteger address, long length) throws DebugException;
-
- /**
- * @return true if the platform is big endian, false otherwise
- */
- public boolean isBigEndian();
-
-
- /**
- * Connect a view to the memory block. Called by UI when a view that displays
- * the memory block is visible.
- * @param object
- */
- public void connect(Object object);
-
-
- /**
- * Disconnect a view from the memory block. Called by UI when a view
- * that displays the memory block is hidden.
- * @param object
- */
- public void disconnect(Object object);
-
- /**
- * @return objects that are currently connected to the memory block.
- * Return an empty array if nothing is connected
- */
- public Object[] getConnected();
-
-
- /**
- * Dispose this memory block.
- */
- public void dispose();
-
- /**
- * @return the IMemoryBlockRetrieval responsible for creating this memory block
- */
- public IMemoryBlockRetrieval getMemoryBlockRetrieval();
-
- /**
- * @return addssible size in number of bytes
- */
- int getAddressibleSize();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtensionRetrieval.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtensionRetrieval.java
deleted file mode 100644
index 9abc2b3bf..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtensionRetrieval.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.debug.core.model;
-
-import org.eclipse.debug.core.DebugException;
-
-
-/**
- * Extended capabilites for memory block retrieval.
- * @since 3.1
- */
-public interface IMemoryBlockExtensionRetrieval extends IMemoryBlockRetrieval {
-
- /**
- * Retrieves a memory block.
- *
- * @param expression - expression to be evalutated to an address, evaluation context can be retrieved
- * from the selected debug element
- * @param selected - selected debug element from Debug View
- * @return a memory block based on the given expression and selected debug element
- * @throws DebugException
- */
-
- public IMemoryBlockExtension getExtendedMemoryBlock(String expression, IDebugElement selected) throws DebugException;
-
- /**
- * @return the string to be used in place of this memory content when bytes
- * are not available.
- * Return null if the byte is available.
- */
- public String getPaddedString();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java
deleted file mode 100644
index 3efcb1aa5..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * Supports the retrieval of arbitrary blocks of memory.
- *
- * @see IMemoryBlock
- * @since 2.0
- */
-public interface IMemoryBlockRetrieval {
-
- /**
- * Returns whether this debug target supports the retrieval
- * of memory blocks.
- *
- * @return whether this debug target supports the retrieval
- * of memory blocks
- */
- public boolean supportsStorageRetrieval();
-
- /**
- * Returns a memory block that starts at the specified
- * memory address, with the specified length.
- *
- * @param startAddress starting address
- * @param length length of the memory block in bytes
- * @return a memory block that starts at the specified
- * memory address, with the specified length
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * <li>This debug target does not support memory block retrieval</li>
- * <li>The specified address and length are not within valid
- * ranges</li>
- * </ul>
- */
- public IMemoryBlock getMemoryBlock(long startAddress, long length) throws DebugException;
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java
deleted file mode 100644
index 83f651d0e..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-
-/**
- * A source locator that can be persisted and restored,
- * to be used with a specfic launch configuration.
- * The debug plug-in defines a source locator extension
- * point for persistable source locators.
- * <p>
- * A source locator extension is defined in <code>plugin.xml</code>.
- * Following is an example definition of a source locator extension.
- * <pre>
- * &lt;extension point="org.eclipse.debug.core.sourceLocators"&gt;
- * &lt;sourceLocator
- * id="com.example.ExampleIdentifier"
- * class="com.example.ExampleSourceLocator"
- * name="Example Source Locator"&gt;
- * &lt;/sourceLocator&gt;
- * &lt;/extension&gt;
- * </pre>
- * The attributes are specified as follows:
- * <ul>
- * <li><code>id</code> specifies a unique identifier for this source locator.</li>
- * <li><code>class</code> specifies the fully qualified name of the Java class
- * that implements <code>IPersistableSourceLocator</code>.</li>
- * <li><code>name</code> a human readable name, describing the type of
- * this source locator.</li>
- * </ul>
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.debug.core.ILaunch
- * @see IStackFrame
- * @see org.eclipse.debug.ui.IDebugModelPresentation
- * @since 2.0
- */
-public interface IPersistableSourceLocator extends ISourceLocator {
-
- /**
- * Returns a memento that can be used to reconstruct
- * this source locator
- *
- * @return a memento that can be used to reconstruct
- * this source locator
- * @exception CoreException if unable to construct a memento
- */
- public String getMemento() throws CoreException;
-
- /**
- * Initializes this source locator based on the given
- * memento.
- *
- * @param memento a memento to initialize this source locator
- * @exception CoreException on failure to initialize
- */
- public void initializeFromMemento(String memento) throws CoreException;
-
- /**
- * Initializes this source locator to perform default
- * source lookup for the given launch configuration.
- *
- * @param configuration launch configuration this source locator
- * will be performing souce lookup for
- * @exception CoreException on failure to initialize
- */
- public void initializeDefaults(ILaunchConfiguration configuration) throws CoreException;
-
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java
deleted file mode 100644
index 383847b7f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-
-/**
- * A process represents a program running in normal (non-debug) mode.
- * Processes support setting and getting of client defined attributes.
- * This way, clients can annotate a process with any extra information
- * important to them. For example, classpath annotations, or command
- * line arguments used to launch the process may be important to a client.
- * <p>
- * Clients may implement this interface, however, the debug plug-in
- * provides an implementation of this interface for a
- * <code>java.lang.Process</code>.
- * </p>
- * @see org.eclipse.debug.core.DebugPlugin#newProcess(ILaunch, Process, String)
- */
-public interface IProcess extends IAdaptable, ITerminate {
-
- /**
- * Attribute key for a common, optional, process property. The value of this
- * attribute is the command line a process was launched with.
- *
- * @since 2.1
- */
- public final static String ATTR_CMDLINE= DebugPlugin.getUniqueIdentifier() + ".ATTR_CMDLINE"; //$NON-NLS-1$
-
- /**
- * Attribute key for a common, optional, process property. The value of this
- * attribute is an identifier for the type of this process. Process types
- * are client defined - whoever creates a process may define its type. For
- * example, a process type could be "java", "javadoc", or "ant".
- *
- * @since 2.1
- */
- public final static String ATTR_PROCESS_TYPE = DebugPlugin.getUniqueIdentifier() + ".ATTR_PROCESS_TYPE"; //$NON-NLS-1$
-
- /**
- * Attribute key for a common, optional, process property. The value of this
- * attribute specifies an alternate dynamic label for a process, displayed by
- * the console.
- *
- * @since 3.0
- */
- public final static String ATTR_PROCESS_LABEL = DebugPlugin.getUniqueIdentifier() + ".ATTR_PROCESS_LABEL"; //$NON-NLS-1$
-
- /**
- * Returns a human-readable label for this process.
- *
- * @return a label for this process
- */
- public String getLabel();
- /**
- * Returns the launch this element originated from.
- *
- * @return the launch this process is contained in
- */
- public ILaunch getLaunch();
- /**
- * Returns a proxy to the standard input, output, and error streams
- * for this process, or <code>null</code> if not supported.
- *
- * @return a streams proxy, or <code>null</code> if not supported
- */
- public IStreamsProxy getStreamsProxy();
-
- /**
- * Sets the value of a client defined attribute.
- *
- * @param key the attribute key
- * @param value the attribute value
- */
- public void setAttribute(String key, String value);
-
- /**
- * Returns the value of a client defined attribute.
- *
- * @param key the attribute key
- * @return value the String attribute value, or <code>null</code> if undefined
- */
- public String getAttribute(String key);
-
- /**
- * Returns the exit value of this process. Conventionally, 0 indicates
- * normal termination.
- *
- * @return the exit value of this process
- * @exception DebugException if this process has not yet terminated
- */
- public int getExitValue() throws DebugException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java
deleted file mode 100644
index 6a2161be4..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A register is a special kind of variable that is contained
- * in a register group. Each register has a name and a value.
- * Not all debug architectures provide access to registers.
- *
- * @since 2.0
- */
-public interface IRegister extends IVariable {
-
- /**
- * Returns the register group this register is contained in.
- *
- * @return the register group this register is contained in
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public IRegisterGroup getRegisterGroup() throws DebugException;
-
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java
deleted file mode 100644
index 8c54c03e9..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A register group is a group of registers that are
- * assigned to a stack frame. Some debug architectures
- * provide access to registers, and registers are often
- * grouped logically. For example, a floating point
- * register group.
- *
- * @since 2.0
- */
-public interface IRegisterGroup extends IDebugElement {
-
-
- /**
- * Returns the name of this register group.
- *
- * @return this register group's name
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public String getName() throws DebugException;
-
- /**
- * Returns the registers in this register group.
- *
- * @return the registers in this register group
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public IRegister[] getRegisters() throws DebugException;
-
- /**
- * Returns whether this register group currently contains any registers.
- *
- * @return whether this register group currently contains any registers
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public boolean hasRegisters() throws DebugException;
-
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java
deleted file mode 100644
index 64de70582..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.model.IStackFrame;
-
-/**
- * A source locator locates source elements for stack frames. A launch (optionally)
- * specifies a source locator which is
- * used to locate source for that debug session. If a launch does not
- * provide a source locator, source cannot be displayed.
- * Abstraction of source lookup allows clients to hide implementation
- * details of source location and representation.
- * <p>
- * Generally, an implementor of a debug model will also implement launch configuration types,
- * delegates, and source locators that work together as a whole. That is, the implementation
- * of a source locator will have knowledge of how to locate a source element
- * for a stack frame. For example, a Java stack frame could define API which
- * specifies a source file name. A Java source locator would use this information
- * to locate the associated file in the workspace.
- * </p>
- * <p>
- * Source is displayed by the debug UI plug-in. The debug UI uses a source locator
- * to resolve an object representing the source for a stack frame, and then uses
- * a debug model presentation to determine the editor and editor input to use to
- * display the actual source in an editor.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.debug.core.ILaunch
- * @see org.eclipse.debug.core.model.IStackFrame
- * @see org.eclipse.debug.ui.IDebugModelPresentation
- * @see org.eclipse.debug.core.model.IPersistableSourceLocator
- */
-public interface ISourceLocator {
-
- /**
- * Returns a source element that corresponds to the given stack frame, or
- * <code>null</code> if a source element could not be located. The object returned
- * by this method will be used by the debug UI plug-in to display source.
- * The debug UI uses the debug model presentation associated
- * with the given stack frame's debug model to translate a source object into an
- * {editor input, editor id} pair in which to display source.
- * <p>
- * For example, a java source locator could return an object representing a
- * compilation unit or class file. The java debug model presentation would
- * then be responsible for providing an editor input and editor id for each
- * compilation unit and class file such that the debug UI could display source.
- * </p>
- *
- * @param stackFrame the stack frame for which to locate source
- * @return an object representing a source element.
- */
- public Object getSourceElement(IStackFrame stackFrame);
-
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java
deleted file mode 100644
index 430c58db3..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A stack frame represents an execution context in a suspended thread.
- * A stack frame contains variables representing visible locals and arguments at
- * the current execution location. Minimally, a stack frame supports
- * the following:
- * <ul>
- * <li>suspend/resume (convenience to resume this stack frame's thread)
- * <li>stepping
- * <li>termination (convenience to terminate this stack frame's thread or debug target)
- * </ul>
- * <p>
- * A debug model implementation may choose to re-use or discard
- * stack frames on iterative thread suspensions. Clients
- * cannot assume that stack frames are identical or equal across
- * iterative thread suspensions and must check for equality on iterative
- * suspensions if they wish to re-use the objects.
- * </p>
- * <p>
- * A debug model implementation that preserves equality
- * across iterative suspensions may display more desirable behavior in
- * some clients. For example, if stack frames are preserved
- * while stepping, a UI client would be able to update the UI incrementally,
- * rather than collapse and redraw the entire list.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IStep
- * @see ISuspendResume
- * @see ITerminate
- */
-public interface IStackFrame extends IDebugElement, IStep, ISuspendResume, ITerminate {
- /**
- * Returns the thread this stack frame is contained in.
- *
- * @return thread
- * @since 2.0
- */
- public IThread getThread();
- /**
- * Returns the visible variables in this stack frame. An empty
- * collection is returned if there are no visible variables.
- *
- * @return collection of visible variables
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public IVariable[] getVariables() throws DebugException;
-
- /**
- * Returns whether this stack frame currently contains any visible variables.
- *
- * @return whether this stack frame currently contains any visible variables
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public boolean hasVariables() throws DebugException;
-
- /**
- * Returns the line number of the instruction pointer in
- * this stack frame that corresponds to a line in an associated source
- * element, or <code>-1</code> if line number information
- * is unavailable.
- *
- * @return line number of instruction pointer in this stack frame, or
- * <code>-1</code> if line number information is unavailable
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- */
- public int getLineNumber() throws DebugException;
-
- /**
- * Returns the index of the first character in the associated source
- * element that corresponds to the current location of the instruction pointer
- * in this stack frame, or <code>-1</code> if the information is unavailable.
- * <p>
- * If a debug model supports expression level stepping, the start/end
- * character ranges are used to highlight the expression within a line
- * that is being executed.
- * </p>
- * @return index of the first character in the associated source
- * element that corresponds to the current location of the instruction pointer
- * in this stack frame, or <code>-1</code> if the information is unavailable
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public int getCharStart() throws DebugException;
-
- /**
- * Returns the index of the last character in the associated source
- * element that corresponds to the current location of the instruction pointer
- * in this stack frame, or <code>-1</code> if the information is unavailable.
- * <p>
- * If a debug model supports expression level stepping, the start/end
- * character ranges are used to highlight the expression within a line
- * that is being executed.
- * </p>
- * @return index of the last character in the associated source
- * element that corresponds to the current location of the instruction pointer
- * in this stack frame, or <code>-1</code> if the information is unavailable
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public int getCharEnd() throws DebugException;
-
- /**
- * Returns the name of this stack frame. Name format is debug model
- * specific, and should be specified by a debug model.
- *
- * @return this frame's name
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- */
- public String getName() throws DebugException;
-
- /**
- * Returns the register groups assigned to this stack frame,
- * or an empty collection if no register groups are assigned
- * to this stack frame.
- *
- * @return the register groups assigned to this stack frame
- * or an empty collection if no register groups are assigned
- * to this stack frame
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public IRegisterGroup[] getRegisterGroups() throws DebugException;
-
- /**
- * Returns whether this stack frame contains any register groups.
- *
- * @return whether this stack frame contains any visible register groups
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public boolean hasRegisterGroups() throws DebugException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java
deleted file mode 100644
index aef7935f3..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * Provides the ability to step into, over, and return
- * from the current execution location. Implementations
- * must be non-blocking.
- * <p>
- * Implementations should honor step filter settings in their
- * associated debug target, as defined by <code>IStepFilters</code>.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.debug.core.model.IStepFilters
- */
-public interface IStep {
- /**
- * Returns whether this element can currently perform a step into.
- *
- * @return whether this element can currently perform a step into
- */
- public boolean canStepInto();
- /**
- * Returns whether this element can currently perform a step over.
- *
- * @return whether this element can currently perform a step over
- */
- public boolean canStepOver();
- /**
- * Returns whether this element can currently perform a step return.
- *
- * @return whether this element can currently perform a step return
- */
- public boolean canStepReturn();
- /**
- * Returns whether this element is currently stepping.
- * <p>
- * For example, a thread is considered to be stepping
- * after the <code>stepOver</code> call until the step over is completed,
- * a breakpoint is reached, an exception is thrown, or the thread or debug target is
- * terminated.
- * </p>
- *
- * @return whether this element is currently stepping
- */
- public boolean isStepping();
- /**
- * Steps into the current statement, generating <code>RESUME</code>
- * and <code>SUSPEND</code> events for the associated thread. Can only be called
- * when the associated thread is suspended. Implementations must implement
- * stepping as non-blocking.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target</li>
- * <li>NOT_SUPPORTED - The capability is not supported by the target</li>
- * </ul>
- */
- public void stepInto() throws DebugException;
- /**
- * Steps over the current statement, generating <code>RESUME</code>
- * and <code>SUSPEND</code> events for the associated thread. Can only be called
- * when the associated thread is suspended. Implementations must implement
- * stepping as non-blocking.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target</li>
- * <li>NOT_SUPPORTED - The capability is not supported by the target</li>
- * </ul>
- */
- public void stepOver() throws DebugException;
- /**
- * Steps to the next return statement in the current scope,
- * generating <code>RESUME</code> and <code>SUSPEND</code> events for
- * the associated thread. Can only be called when the associated thread is suspended.
- * Implementations must implement stepping as non-blocking.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target</li>
- * <li>NOT_SUPPORTED - The capability is not supported by the target</li>
- * </ul>
- */
- public void stepReturn() throws DebugException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStepFilters.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStepFilters.java
deleted file mode 100644
index 204ccec20..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStepFilters.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-/**
- * Support for step filters for a debug target. A debug target
- * that supports step filters should implement this interface.
- * Step filters can be toggled on/off for a debug target via
- * this interface. When a step method is called (see
- * <code>IStep</code>), the step implementation must respect
- * the state of the step filters as defined by this interface.
- * This allows step filters to be toggled on/off for
- * all stepping operations (in, over, return).
- * <p>
- * Step filter management is debug model specific - this interface
- * is used only to turn them on/off.
- * </p>
- * <p>
- * In 2.1, the <code>IFilteredStep</code> interface was used
- * to implement step filtering. The <code>IFilteredStep</code>
- * interface is now deprecated, and this inteface should be used
- * in its place to allow filters to be applied to any step
- * function.
- * </p>
- * <p>
- * Clients may implement this interface. Debug targets that support
- * step filters should implement this interface.
- * </p>
- * @see org.eclipse.debug.core.model.IStep
- * @since 3.0
- */
-public interface IStepFilters {
-
- /**
- * Returns whether this debug target supports step filters.
- *
- * @return whether this debug target supports step filters
- */
- public boolean supportsStepFilters();
-
- /**
- * Returns whether step filters are currently enabled in this
- * debug target.
- *
- * @return whether step filters are currently enabled in this
- * debug target
- */
- public boolean isStepFiltersEnabled();
-
- /**
- * Sets whether step filters are enabled in this debug target.
- *
- * @param enabled whether step filters are enabled in this debug target
- */
- public void setStepFiltersEnabled(boolean enabled);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java
deleted file mode 100644
index 5051a80a8..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.IStreamListener;
-
-/**
- * A stream monitor manages the contents of the stream a process
- * is writing to, and notifies registered listeners of changes in
- * the stream.
- * <p>
- * Clients may implement this interface. Generally, a client that
- * provides an implementation of the <code>IStreamsProxy</code>
- * interface must also provide an implementation of this interface.
- * </p>
- * @see org.eclipse.debug.core.model.IStreamsProxy
- * @see org.eclipse.debug.core.model.IFlushableStreamMonitor
- */
-public interface IStreamMonitor {
- /**
- * Adds the given listener to this stream monitor's registered listeners.
- * Has no effect if an identical listener is already registered.
- *
- * @param listener the listener to add
- */
- public void addListener(IStreamListener listener);
- /**
- * Returns the entire current contents of the stream. An empty
- * String is returned if the stream is empty.
- *
- * @return the stream contents as a <code>String</code>
- */
- public String getContents();
- /**
- * Removes the given listener from this stream monitor's registered listeners.
- * Has no effect if the listener is not already registered.
- *
- * @param listener the listener to remove
- */
- public void removeListener(IStreamListener listener);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java
deleted file mode 100644
index b2f53f784..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import java.io.IOException;
-
-/**
- * A streams proxy acts as proxy between the streams of a
- * process and interested clients. This abstraction allows
- * implementations of <code>IProcess</code> to handle I/O related
- * to the standard input, output, and error streams associated
- * with a process.
- * <p>
- * Clients implementing the <code>IProcess</code> interface must also
- * provide an implementation of this interface.
- * </p>
- * @see IProcess
- */
-public interface IStreamsProxy {
- /**
- * Returns a monitor for the error stream of this proxy's process,
- * or <code>null</code> if not supported.
- * The monitor is connected to the error stream of the
- * associated process.
- *
- * @return an error stream monitor, or <code>null</code> if none
- */
- public IStreamMonitor getErrorStreamMonitor();
- /**
- * Returns a monitor for the output stream of this proxy's process,
- * or <code>null</code> if not supported.
- * The monitor is connected to the output stream of the
- * associated process.
- *
- * @return an output stream monitor, or <code>null</code> if none
- */
- public IStreamMonitor getOutputStreamMonitor();
- /**
- * Writes the given text to the output stream connected to the
- * standard input stream of this proxy's process.
- *
- * @param input the text to be written
- * @exception IOException when an error occurs writing to the
- * underlying <code>OutputStream</code>.
- *
- */
- public void write(String input) throws IOException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy2.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy2.java
deleted file mode 100644
index 8d954b80f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy2.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-import java.io.IOException;
-
-/**
- * Extension to a streams proxy that allows closing of the output stream
- * connected to the standard input stream of a proxy's process.
- * <p>
- * Clients should implement this interface, in addition to
- * <code>IStreamsProxy</code>, if interested closing the standard
- * input stream.
- * </p>
- * @since 3.1
- */
-public interface IStreamsProxy2 extends IStreamsProxy {
-
- /**
- * Closes the output stream connected to the standard input stream
- * of this proxy's process.
- *
- * @throws IOException if unable to close the stream
- */
- public void closeInputStream() throws IOException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java
deleted file mode 100644
index e45952ca2..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * Provides the ability to suspend and resume a thread
- * or debug target.
- * <p>
- * Clients may implement this interface.
- * </p>
- */
-public interface ISuspendResume {
- /**
- * Returns whether this element can currently be resumed.
- *
- * @return whether this element can currently be resumed
- */
- public boolean canResume();
- /**
- * Returns whether this element can currently be suspended.
- *
- * @return whether this element can currently be suspended
- */
- public boolean canSuspend();
- /**
- * Returns whether this element is currently suspended.
- *
- * @return whether this element is currently suspended
- */
- public boolean isSuspended();
- /**
- * Causes this element to resume its execution, generating a <code>RESUME</code> event.
- * Has no effect on an element that is not suspended. This call is non-blocking.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- */
- public void resume() throws DebugException;
- /**
- * Causes this element to suspend its execution, generating a <code>SUSPEND</code> event.
- * Has no effect on an already suspended element.
- * Implementations may be blocking or non-blocking.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- */
- public void suspend() throws DebugException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java
deleted file mode 100644
index bf8a44536..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * Provides the ability to terminate an execution
- * context - for example, a thread, debug target or process.
- * <p>
- * Clients may implement this interface.
- * </p>
- */
-public interface ITerminate {
- /**
- * Returns whether this element can be terminated.
- *
- * @return whether this element can be terminated
- */
- public boolean canTerminate();
- /**
- * Returns whether this element is terminated.
- *
- * @return whether this element is terminated
- */
- public boolean isTerminated();
- /**
- * Causes this element to terminate, generating a <code>TERMINATE</code> event.
- * Implementations may be blocking or non-blocking.
- *
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- */
- public void terminate() throws DebugException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java
deleted file mode 100644
index a737419e0..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A thread is a sequential flow of execution in a debug target.
- * A thread contains stack frames. Stack frames are only available when the
- * thread is suspended, and are returned in top-down order.
- * Minimally, a thread supports the following:
- * <ul>
- * <li>suspend/resume
- * <li>stepping
- * <li>terminate
- * </ul>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see ISuspendResume
- * @see IStep
- * @see ITerminate
- * @see IStackFrame
- */
-
-public interface IThread extends IDebugElement, ISuspendResume, IStep, ITerminate {
- /**
- * Returns the stack frames contained in this thread. An
- * empty collection is returned if this thread contains
- * no stack frames, or is not currently suspended. Stack frames
- * are returned in top down order.
- *
- * @return a collection of stack frames
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public IStackFrame[] getStackFrames() throws DebugException;
-
- /**
- * Returns whether this thread currently contains any stack
- * frames.
- *
- * @return whether this thread currently contains any stack frames
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public boolean hasStackFrames() throws DebugException;
-
- /**
- * Returns the priority of this thread. The meaning of this
- * number is operating-system dependent.
- *
- * @return thread priority
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public int getPriority() throws DebugException;
- /**
- * Returns the top stack frame or <code>null</code> if there is
- * currently no top stack frame.
- *
- * @return the top stack frame, or <code>null</code> if none
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public IStackFrame getTopStackFrame() throws DebugException;
- /**
- * Returns the name of this thread. Name format is debug model
- * specific, and should be specified by a debug model.
- *
- * @return this thread's name
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public String getName() throws DebugException;
-
- /**
- * Returns the breakpoints that caused this thread to suspend,
- * or an empty collection if this thread is not suspended or
- * was not suspended by a breakpoint. Usually a single breakpoint
- * will be returned, but this collection can contain more than
- * one breakpoint if two breakpoints are at the same location in
- * a program.
- *
- * @return the collection of breakpoints that caused this thread to suspend
- */
- public IBreakpoint[] getBreakpoints();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java
deleted file mode 100644
index ef167078e..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A value represents the value of a variable.
- * A value representing a complex data structure contains variables.
- * <p>
- * An implementation may choose to re-use or discard
- * values on iterative thread suspensions. Clients
- * cannot assume that values are identical or equal across
- * iterative thread suspensions and must check for equality on iterative
- * suspensions if they wish to re-use the objects.
- * </p>
- * <p>
- * An implementation that preserves equality
- * across iterative suspensions may display more desirable behavior in
- * some clients. For example, if variables are preserved
- * while stepping, a UI client would be able to update the UI incrementally,
- * rather than collapse and redraw the entire list or tree.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IVariable
- */
-
-
-public interface IValue extends IDebugElement {
-
- /**
- * Returns a description of the type of data this value contains
- * or references.
- *
- * @return the name of this value's reference type
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public String getReferenceTypeName() throws DebugException;
-
- /**
- * Returns this value as a <code>String</code>.
- *
- * @return a String representation of this value
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public String getValueString() throws DebugException;
-
- /**
- * Returns whether this value is currently allocated.
- * <p>
- * For example, if this value represents
- * an object that has been garbage collected, <code>false</code> is returned.
- * </p>
- * @return whether this value is currently allocated
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public boolean isAllocated() throws DebugException;
- /**
- * Returns the visible variables in this value. An empty
- * collection is returned if there are no visible variables.
- *
- * @return an array of visible variables
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public IVariable[] getVariables() throws DebugException;
-
- /**
- * Returns whether this value currently contains any visible variables.
- *
- * @return whether this value currently contains any visible variables
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the debug target. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- * </ul>
- * @since 2.0
- */
- public boolean hasVariables() throws DebugException;
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java
deleted file mode 100644
index d04c5ebaf..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * Provides the ability to modify the value of a variable in
- * a target.
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IVariable
- */
-public interface IValueModification {
-
- /**
- * Attempts to set the value of this variable to the
- * value of the given expression.
- *
- * @param expression an expression to generate a new value
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- */
- public void setValue(String expression) throws DebugException;
-
- /**
- * Sets the value of this variable to the given value.
- *
- * @param value a new value
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- * @since 2.0
- */
- public void setValue(IValue value) throws DebugException;
-
- /**
- * Returns whether this variable supports value modification.
- *
- * @return whether this variable supports value modification
- */
- public boolean supportsValueModification();
-
- /**
- * Returns whether the given expression is valid to be used in
- * setting a new value for this variable.
- *
- * @param expression an expression to generate a new value
- * @return whether the expression is valid
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- */
- public boolean verifyValue(String expression) throws DebugException;
-
- /**
- * Returns whether the given value can be used as
- * a new value for this variable.
- *
- * @param value a new value
- * @return whether the value is valid
- * @exception DebugException on failure. Reasons include:<ul>
- * <li>TARGET_REQUEST_FAILED - The request failed in the target
- * <li>NOT_SUPPORTED - The capability is not supported by the target
- * </ul>
- * @since 2.0
- */
- public boolean verifyValue(IValue value) throws DebugException;
-}
-
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java
deleted file mode 100644
index b67cbdcf3..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * A variable represents a visible data structure in a stack frame
- * or value.
- * Each variable has a value which may in turn contain more variables.
- * A variable may support value modification.
- * <p>
- * An implementation may choose to re-use or discard
- * variables on iterative thread suspensions. Clients
- * cannot assume that variables are identical or equal across
- * iterative thread suspensions and must check for equality on iterative
- * suspensions if they wish to re-use the objects.
- * </p>
- * <p>
- * An implementation that preserves equality
- * across iterative suspensions may display more desirable behavior in
- * some clients. For example, if variables are preserved
- * while stepping, a UI client would be able to update the UI incrementally,
- * rather than collapse and redraw the entire list or tree.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see IValue
- * @see IStackFrame
- * @see IValueModification
- */
-public interface IVariable extends IDebugElement, IValueModification {
- /**
- * Returns the value of this variable.
- *
- * @return this variable's value
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public IValue getValue() throws DebugException;
- /**
- * Returns the name of this variable. Name format is debug model
- * specific, and should be specified by a debug model.
- *
- * @return this variable's name
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public String getName() throws DebugException;
- /**
- * Returns a description of the type of data this variable is
- * declared to reference. Note that the declared type of a
- * variable and the concrete type of its value are not neccessarily
- * the same.
- *
- * @return the declared type of this variable
- * @exception DebugException if this method fails. Reasons include:
- * <ul><li>Failure communicating with the VM. The DebugException's
- * status code contains the underlying exception responsible for
- * the failure.</li>
- */
- public String getReferenceTypeName() throws DebugException;
-
- /**
- * Returns whether this variable's value has changed since the last suspend event.
- * Implementations may choose whether the last suspend event is the last suspend
- * event in this variable's debug target, or within the thread(s) in which this variable
- * is visible.
- * <p>
- * Implementations that choose not to implement this function should always
- * return <code>false</code>.
- * </p>
- *
- * @return whether this variable's value has changed since the last suspend event
- * @exception DebugException if an exception occurs determining if this variable's
- * value has changed since the last suspend event
- */
- public boolean hasValueChanged() throws DebugException;
-
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpression.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpression.java
deleted file mode 100644
index 3c9eb9e0f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpression.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-/**
- * A watch expression is an expression that is evaluated in the context
- * of a specific stack frame, thread, debug target, process, or launch.
- * Generally, a watch expression is a snippet of code that is evaluated
- * each time a debug target suspends, or when a user provides a context
- * for an evaluation by selecting a debug target or thread. An expression
- * updates its value when it is provided with a context in which it
- * can perform an evaluation.
- * <p>
- * Clients are not intended to implement this interface. An implementation
- * is provided by the debug platform. Clients that support watch expressions
- * should contribute and implement a watch exrepssion delegate. Watch
- * expressions can be created via the <code>IExpressionManager</code>.
- * </p>
- * @see org.eclipse.debug.core.model.IWatchExpressionDelegate
- * @see org.eclipse.debug.core.IExpressionManager
- * @since 3.0
- */
-public interface IWatchExpression extends IErrorReportingExpression {
-
- /**
- * Updates this watch expression's value based on the current evaluation
- * context. This watch expression fires a debug change event when the
- * evaluation is complete. A watch expression can be asked to
- * evaluate even when it is disabled. Note that implementations should
- * generally be asynchronous to avoid blocking the calling thread.
- */
- public void evaluate();
- /**
- * Sets the context for this watch expression, or <code>null</code> if none.
- * If the given context is valid for this expression, this expression may
- * update its value. When the value update is complete, a debug change event is
- * fired. When <code>null</code> is specified as a context, this expression
- * may choose to retain its previous value.
- * <p>
- * The context is usually one of (but not limited to):
- * <ul>
- * <li>a debug target (<code>IDebugTarget</code>)</li>
- * <li>a thread (<code>IThread</code>)</li>
- * <li>a stack frame (<code>IStackFrame</code>)</li>
- * </ul>
- * </p>
- *
- * @param context context in which to update this expression's value, or
- * <code>null</code> if none
- */
- public void setExpressionContext(IDebugElement context);
- /**
- * Sets this watch expression's snippet of code. This method
- * causes the new snippet to be evaluated immediately in
- * the expression's last context.
- *
- * @param expressionText the snippet which will be evaluated
- */
- public void setExpressionText(String expressionText);
- /**
- * Returns whether the result of this watch expression is pending.
- * An expression is pending if an evaluation has been requested, but
- * the value has not yet been returned.
- *
- * @return whether this expression's result is pending
- */
- public boolean isPending();
- /**
- * Returns whether this expression is enabled. An enabled expression will
- * update its value. A disabled expression will not.
- *
- * @return whether this expression is enabled
- */
- public boolean isEnabled();
- /**
- * Sets this expression's enabled state. This method
- * causes the new snippet to be evaluated immediately in
- * the expression's last context.
- *
- * @param enabled whether this expression should be enabled
- */
- public void setEnabled(boolean enabled);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionDelegate.java
deleted file mode 100644
index e34d22681..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionDelegate.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-/**
- * A delegate which computes the value of a watch expression
- * when provided a context. Watch delegates are provided on a
- * per debug model basis. Watch expressions query the appropriate
- * delegate based on the debug model of the context element.
- * Plug-ins that wish to contribute watch expression delegates may do so using the
- * <code>org.eclipse.debug.core.watchExpressionDelegates</code>
- * extension point.
- * <p>
- * For example, the following is the definition of a watch expression
- * delegate for the com.example.foo plug-in:
- * <pre>
- * &lt;extension point="org.eclipse.debug.core.watchExpressionDelegates"&gt;
- * &lt;watchExpressionDelegate
- * debugModel="org.eclipse.jdt.debug"
- * delegateClass="org.eclipse.jdt.internal.debug.ui.JavaWatchExpressionDelegate"/&gt;
- * &lt;/extension&gt;
- * </pre>
- * <p>
- * Clients are intended to implement this interface.
- * </p>
- * @see org.eclipse.debug.core.model.IWatchExpression
- * @see org.eclipse.debug.core.model.IWatchExpressionListener
- *
- * @since 3.0
- */
-public interface IWatchExpressionDelegate {
-
- /**
- * Evaluates the given expression in the given context asynchronously and
- * notifies the given listener when the evaluation finishes.
- *
- * @param expression the expression to evaluate
- * @param context the context for the evaluation
- * @param listener the listener to notify when the evaluation completes
- */
- public void evaluateExpression(String expression, IDebugElement context, IWatchExpressionListener listener);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionListener.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionListener.java
deleted file mode 100644
index 8b1baa0a5..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionListener.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-/**
- * A watch expression listener is notified when an
- * <code>org.eclipse.debug.core.model.IWatchExpressionDelegate</code>
- * completes an evaluation.
- *
- * @see org.eclipse.debug.core.model.IWatchExpressionDelegate
- * @see org.eclipse.debug.core.model.IWatchExpressionResult
- * @since 3.0
- */
-public interface IWatchExpressionListener {
-
- /**
- * Notifies the listener that an evaluation has completed.
- *
- * @param result the result of the evaluation
- */
- public void watchEvaluationFinished(IWatchExpressionResult result);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionResult.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionResult.java
deleted file mode 100644
index 90a1c315b..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionResult.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-import org.eclipse.debug.core.DebugException;
-
-/**
- * The result of an evaluation performed by an
- * <code>org.eclipse.debug.core.model.IWatchExpressionDelegate</code>.
- * A watch expression reports the value of the evaluation
- * and any errors or exceptions that occurred.
- *
- * @see org.eclipse.debug.core.model.IWatchExpressionDelegate
- * @since 3.0
- */
-public interface IWatchExpressionResult {
- /**
- * Returns the value representing the result of the
- * evaluation, or <code>null</code> if the
- * associated evaluation failed. If
- * the associated evaluation failed, there will
- * be problems, or an exception in this result.
- *
- * @return the resulting value, possibly
- * <code>null</code>
- */
- public IValue getValue();
-
- /**
- * Returns whether the evaluation had any problems
- * or if an exception occurred while performing the
- * evaluation.
- *
- * @return whether there were any problems.
- * @see #getErrorMessages()
- * @see #getException()
- */
- public boolean hasErrors();
-
- /**
- * Returns an array of problem messages. Each message describes a problem that
- * occurred while compiling the snippet.
- *
- * @return evaluation error messages, or an empty array if no errors occurred
- */
- public String[] getErrorMessages();
-
- /**
- * Returns the expression that was evaluated.
- *
- * @return The string expression.
- */
- public String getExpressionText();
-
- /**
- * Returns any exception that occurred while performing the evaluation
- * or <code>null</code> if an exception did not occur.
- * The exception will be a debug exception or a debug exception
- * that wrappers a debug model specific exception that indicates a problem communicating
- * with the target or with actually performing some action in the target.
- *
- * @return The exception that occurred during the evaluation
- * @see org.eclipse.debug.core.DebugException
- */
- public DebugException getException();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchpoint.java
deleted file mode 100644
index e106ceea7..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchpoint.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A breakpoint that suspends when an associated variable is
- * read or written.
- * <p>
- * Clients may implement this interface. Clients are not required to
- * implement this interface to implement watchpoints, but those that do inherit
- * default rendering of images for watchpoints from the debug platform's
- * default label provider and actions to toggle access and modification
- * properties of a watchpoint.
- * </p>
- * @since 3.1
- */
-public interface IWatchpoint extends IBreakpoint {
- /**
- * Returns whether this watchpoint will suspend execution when its associated
- * variable is accessed (read).
- *
- * @return whether this is an access watchpoint
- * @exception CoreException if unable to access the property
- * on this breakpoint's underlying marker
- */
- public boolean isAccess() throws CoreException;
- /**
- * Sets whether this breakpoint will suspend execution when its associated
- * variable is accessed.
- *
- * @param access whether to suspend on access
- * @exception CoreException if unable to set the property on this breakpoint's
- * underlying marker or if the capability is not supported
- */
- public void setAccess(boolean access) throws CoreException;
- /**
- * Returns whether this watchpoint will suspend execution when its associated
- * variable is written.
- *
- * @return whether this is a modification watchpoint
- * @exception CoreException if unable to access the property
- * on this breakpoint's underlying marker
- */
- public boolean isModification() throws CoreException;
- /**
- * Sets whether this breakpoint will suspend execution when its associated
- * variable is modified.
- *
- * @param modification whether to suspend on modification
- * @exception CoreException if unable to set the property on
- * this breakpoint's underlying marker or if the capability is not supported
- */
- public void setModification(boolean modification) throws CoreException;
- /**
- * Returns whether this breakpoints supports the capability to suspend
- * when an associated variable is read.
- *
- * @return whether this breakpoints supports the capability to suspend
- * when an associated variable is read
- */
- public boolean supportsAccess();
- /**
- * Returns whether this breakpoints supports the ability to suspend
- * when an associated variable is written.
- *
- * @return whether this breakpoints supports the ability to suspend
- * when an associated variable is written
- */
- public boolean supportsModification();
-
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LaunchConfigurationDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LaunchConfigurationDelegate.java
deleted file mode 100644
index 1dd3d558d..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LaunchConfigurationDelegate.java
+++ /dev/null
@@ -1,323 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IBreakpointManager;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.core.IStatusHandler;
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-
-/**
- * Default implementation of a launch configuration delegate. Provides
- * convenience methods for computing the build order of projects,
- * building projects, and searching for errors in the workspace. The
- * default pre-launch check prompts the user to launch in debug mode
- * if breakpoints are present in the workspace.
- * <p>
- * Clients implementing launch configration delegates should subclass
- * this class.
- * </p>
- * @since 3.0
- */
-public abstract class LaunchConfigurationDelegate implements ILaunchConfigurationDelegate2 {
-
- /**
- * Status code for which a UI prompter is registered.
- */
- protected static final IStatus promptStatus = new Status(IStatus.INFO, "org.eclipse.debug.ui", 200, "", null); //$NON-NLS-1$//$NON-NLS-2$
-
- /**
- * Status code for which a prompter is registered to ask the user if they
- * want to launch in debug mode when breakpoints are present.
- */
- protected static final IStatus switchToDebugPromptStatus = new Status(IStatus.INFO, "org.eclipse.debug.core", 201, "", null); //$NON-NLS-1$//$NON-NLS-2$
-
- /**
- * Status code for which a prompter is registered to ask the user if the
- * want to continue launch despite existing compile errors
- */
- protected static final IStatus complileErrorPromptStatus = new Status(IStatus.INFO, "org.eclipse.debug.core", 202, "", null); //$NON-NLS-1$ //$NON-NLS-2$
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate2#getLaunch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String)
- */
- public ILaunch getLaunch(ILaunchConfiguration configuration, String mode) throws CoreException {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate2#buildForLaunch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
- */
- public boolean buildForLaunch(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException {
- IProject[] projects = getBuildOrder(configuration, mode);
- if (projects == null) {
- return true;
- }
- buildProjects(projects, monitor);
- return false;
- }
-
- /**
- * Returns the projects to build before launching the given launch configuration
- * or <code>null</code> if the entire workspace should be built incrementally.
- * Subclasses should override as required.
- *
- * @param configuration the configuration being launched
- * @param mode launch mode
- * @return projects to build, in build order, or <code>null</code>
- * @throws CoreException if an exception occurrs
- */
- protected IProject[] getBuildOrder(ILaunchConfiguration configuration, String mode) throws CoreException {
- return null;
- }
-
- /**
- * Returns the set of projects to use when searching for errors or <code>null</code>
- * if no search is to be done.
- *
- * @param configuration the configuration being launched
- * @param mode launch mode
- * @return a list of projects or <code>null</code>
- * @throws CoreException if an exception occurrs
- */
- protected IProject[] getProjectsForProblemSearch(ILaunchConfiguration configuration, String mode) throws CoreException {
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate2#finalLaunchCheck(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
- */
- public boolean finalLaunchCheck(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException {
- IProject[] projects = getProjectsForProblemSearch(configuration, mode);
- if (projects == null) {
- return true; //continue launch
- }
- boolean continueLaunch = true;
-
- monitor.subTask(DebugCoreMessages.getString("LaunchConfigurationDelegate.6")); //$NON-NLS-1$
- for (int i = 0; i < projects.length; i++) {
- monitor.subTask(DebugCoreMessages.getString("LaunchConfigurationDelegate.7") + projects[i].getName()); //$NON-NLS-1$
- if (existsProblems(projects[i])) {
- IStatusHandler prompter = DebugPlugin.getDefault().getStatusHandler(promptStatus);
- if (prompter != null) {
- continueLaunch = ((Boolean) prompter.handleStatus(complileErrorPromptStatus, configuration)).booleanValue();
- break;
- }
- }
- }
-
- return continueLaunch;
- }
-
- /* (non-Javadoc)
- *
- * If launching in run mode, and the configuration supports debug mode, check
- * if there are any breakpoints in the workspace, and ask the user if they'd
- * rather launch in debug mode.
- *
- * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate2#preLaunchCheck(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
- */
- public boolean preLaunchCheck(ILaunchConfiguration configuration, String mode, IProgressMonitor monitor) throws CoreException {
- if (mode.equals(ILaunchManager.RUN_MODE) && configuration.supportsMode(ILaunchManager.DEBUG_MODE)) {
- IBreakpoint[] breakpoints= getBreakpoints(configuration);
- if (breakpoints == null) {
- return true;
- }
- for (int i = 0; i < breakpoints.length; i++) {
- if (breakpoints[i].isEnabled()) {
- IStatusHandler prompter = DebugPlugin.getDefault().getStatusHandler(promptStatus);
- if (prompter != null) {
- boolean launchInDebugModeInstead = ((Boolean)prompter.handleStatus(switchToDebugPromptStatus, configuration)).booleanValue();
- if (launchInDebugModeInstead) {
- return false; //kill this launch
- }
- }
- // if no user prompt, or user says to continue (no need to check other breakpoints)
- return true;
- }
- }
- }
- // no enabled breakpoints... continue launch
- return true;
- }
-
- /**
- * Returns the breakpoint collection that is relevant for this launch delegate.
- * By default this is all the breakpoints registered with the Debug breakpoint manager.
- *
- * @since 3.1
- * @return the breakpoints that are relevant for this launch delegate
- */
- protected IBreakpoint[] getBreakpoints(ILaunchConfiguration configuration) {
- IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager();
- if (!breakpointManager.isEnabled()) {
- // no need to check breakpoints individually.
- return null;
- }
- return breakpointManager.getBreakpoints();
- }
-
- /**
- * Returns an array of projects in their suggested build order
- * containing all of the projects specified by <code>baseProjects</code>
- * and all of their referenced projects.
- *
- * @param baseProjects a collection of projetcs
- * @return an array of projects in their suggested build order
- * containing all of the projects specified by <code>baseProjects</code>
- * @throws CoreException if an error occurs while computing referenced
- * projects
- */
- protected IProject[] computeReferencedBuildOrder(IProject[] baseProjects) throws CoreException {
- HashSet unorderedProjects = new HashSet();
- for(int i = 0; i< baseProjects.length; i++) {
- unorderedProjects.add(baseProjects[i]);
- addReferencedProjects(baseProjects[i], unorderedProjects);
- }
- IProject[] projectSet = (IProject[]) unorderedProjects.toArray(new IProject[unorderedProjects.size()]);
- return computeBuildOrder(projectSet);
- }
-
-
- /**
- * Adds all projects referenced by <code>project</code> to the given
- * set.
- *
- * @param project project
- * @param references set to which referenced projects are added
- * @throws CoreException if an error occurs while computing referenced
- * projects
- */
- protected void addReferencedProjects(IProject project, Set references) throws CoreException{
- if (project.isOpen()) {
- IProject[] projects = project.getReferencedProjects();
- for (int i = 0; i < projects.length; i++) {
- IProject refProject= projects[i];
- if (refProject.exists() && !references.contains(refProject)) {
- references.add(refProject);
- addReferencedProjects(refProject, references);
- }
- }
- }
- }
-
- /**
- * Returns a list of projects in their suggested build order from the
- * given unordered list of projects.
- *
- * @param projects the list of projects to sort into build order
- * @return a new array containing all projects from <code>projects</code> sorted
- * according to their build order.
- */
- protected IProject[] computeBuildOrder(IProject[] projects) {
- String[] orderedNames = ResourcesPlugin.getWorkspace().getDescription().getBuildOrder();
- if (orderedNames != null) {
- List orderedProjects = new ArrayList(projects.length);
- //Projects may not be in the build order but should be built if selected
- List unorderedProjects = new ArrayList(projects.length);
- for(int i = 0; i < projects.length; ++i) {
- unorderedProjects.add(projects[i]);
- }
-
- for (int i = 0; i < orderedNames.length; i++) {
- String projectName = orderedNames[i];
- for (Iterator iterator = unorderedProjects.iterator(); iterator.hasNext(); ) {
- IProject project = (IProject)iterator.next();
- if (project.getName().equals(projectName)) {
- orderedProjects.add(project);
- iterator.remove();
- break;
- }
- }
- }
- //Add anything not specified before we return
- orderedProjects.addAll(unorderedProjects);
- return (IProject[]) orderedProjects.toArray(new IProject[orderedProjects.size()]);
- }
-
- // Computing build order returned null, try the project prerequisite order
- IWorkspace.ProjectOrder po = ResourcesPlugin.getWorkspace().computeProjectOrder(projects);
- return po.projects;
- }
-
- /**
- * Returns whether the given project contains any problem markers of the
- * specified severity.
- *
- * @param proj the project to search
- * @return whether the given project contains any problems that should
- * stop it from launching
- * @throws CoreException if an error occurs while searching for
- * problem markers
- */
- protected boolean existsProblems(IProject proj) throws CoreException {
- IMarker[] markers = proj.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE);
- if (markers.length > 0) {
- for (int i = 0; i < markers.length; i++) {
- if (isLaunchProblem(markers[i])) {
- return true;
- }
- }
- }
- return false;
- }
-
- /**
- * Returns whether the given problem should potentially abort the launch.
- * By default if the problem has an error severity, the problem is considered
- * a potential launch problem. Subclasses may override to specialize error
- * detection.
- *
- * @param problemMarker candidate problem
- * @return whether the given problem should potentially abort the launch
- * @throws CoreException if any exceptions occurr while accessing marker attributes
- */
- protected boolean isLaunchProblem(IMarker problemMarker) throws CoreException {
- Integer severity = (Integer)problemMarker.getAttribute(IMarker.SEVERITY);
- if (severity != null) {
- return severity.intValue() >= IMarker.SEVERITY_ERROR;
- }
-
- return false;
- }
-
- /**
- * Performs an incremental build on each of the given projects.
- *
- * @param projects projects to build
- * @param monitor progress monitor
- * @throws CoreException if an exception occurrs while building
- */
- protected void buildProjects(IProject[] projects, IProgressMonitor monitor) throws CoreException {
- for (int i = 0; i < projects.length; i++ ) {
- projects[i].build(IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor);
- }
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LineBreakpoint.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LineBreakpoint.java
deleted file mode 100644
index c43f3555f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/LineBreakpoint.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-
-
-/**
- * Abstract implementation of a line breakpoint. This class is
- * intended to be subclassed by debug model specific implementations
- * of line breakpoints.
- *
- * @see ILineBreakpoint
- */
-
-public abstract class LineBreakpoint extends Breakpoint implements ILineBreakpoint {
-
-
- /**
- * @see ILineBreakpoint#getLineNumber()
- */
- public int getLineNumber() throws CoreException {
- IMarker m = getMarker();
- if (m != null) {
- return m.getAttribute(IMarker.LINE_NUMBER, -1);
- }
- return -1;
- }
-
- /**
- * @see ILineBreakpoint#getCharStart()
- */
- public int getCharStart() throws CoreException {
- IMarker m = getMarker();
- if (m != null) {
- return m.getAttribute(IMarker.CHAR_START, -1);
- }
- return -1;
- }
-
- /**
- * @see ILineBreakpoint#getCharEnd()
- */
- public int getCharEnd() throws CoreException {
- IMarker m = getMarker();
- if (m != null) {
- return m.getAttribute(IMarker.CHAR_END, -1);
- }
- return -1;
- }
-}
-
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/MemoryByte.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/MemoryByte.java
deleted file mode 100644
index d32811c9c..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/MemoryByte.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-/**
- * A byte of memory in a meomry block. Each byte of memory has a value and
- * attributes indicating if the byte is read-only, valid, or if its value has
- * changed.
- * <p>
- * Clients may instantiate this class. Clients may subclass this class to
- * add other attributes to a memory byte, as required.
- * </p>
- * @since 3.1
- */
-public class MemoryByte {
-
- /**
- * Bit mask used to indicate a byte is read-only.
- */
- public static final byte READONLY = 0x01;
-
- /**
- * Bit mask used to indicate a byte is valid.
- * A memory byte is valid when its value and attributes are retrievable.
- * Otherwise, a byte is considered invalid.
- */
- public static final byte VALID = 0x02;
-
- /**
- * Bit mask used to indicate a byte has changed since the last
- * suspend event.
- *
- * @see org.eclipse.debug.core.DebugEvent#SUSPEND
- */
- public static final byte CHANGED = 0x04;
-
- /**
- * Bit mask used to indicate a memory byte has history to
- * determine if its value has changed. When a memory byte's
- * history is unknown, the change state has no meaning.
- */
- public static final byte KNOWN = 0x08;
-
- /**
- * Value of this byte.
- */
- protected byte value;
-
- /**
- * Attribute flags.
- * <p>
- * To specify VALID: flags |= MemoryByte.VALID;
- * To specify READONLY: flags |= MemoryByte.READONLY;
- * </p>
- */
- protected byte flags;
-
- /**
- * Constructs a read-write, valid memory byte without a change history,
- * and a value of 0.
- */
- public MemoryByte() {
- this((byte)0, VALID);
- }
-
- /**
- * Constructs a read-write, valid memory byte without a change history,
- * with the given value.
- *
- * @param byteValue value of this memory byte
- *
- */
- public MemoryByte(byte byteValue) {
- this(byteValue, VALID);
- }
-
- /**
- * Constructs a memory byte with the given value and attributes.
- *
- * @param byteValue value of this memory byte
- * @param byteFlags attributes of the byte specified as a bit mask
- */
- public MemoryByte(byte byteValue, byte byteFlags) {
- value = byteValue;
- flags = byteFlags;
- }
-
- /**
- * Returns this memory byte's attribute as a bit mask.
- *
- * @return this memory byte's attribute as a bit mask
- */
- public byte getFlags() {
- return flags;
- }
- /**
- * Sets this memory byte's attributes based on the given bit mask.
- *
- * @param flags bit mask of attributes
- */
- public void setFlags(byte flags) {
- this.flags = flags;
- }
-
- /**
- * Returns the value of this memory byte.
- *
- * @return the value of this memory byte
- */
- public byte getValue() {
- return value;
- }
-
- /**
- * Sets the value of this memory byte.
- *
- * @param value the new value of this memory byte
- */
- public void setValue(byte value) {
- this.value = value;
- }
-
- /**
- * Sets whether this memory byte is valid. A memory byte
- * is considered valid when its value and attributes are
- * retrievable.
- *
- * @param valid whether this memory byte is valid
- */
- public void setValid(boolean valid) {
- flags |= MemoryByte.VALID;
- if (!valid)
- flags ^= MemoryByte.VALID;
- }
-
- /**
- * Returns whether this memory byte is valid. A memory byte
- * is considered valid when its value and attributes are
- * retrievable.
- *
- * @return whether this memory byte is valid
- */
- public boolean isValid() {
- return ((flags & MemoryByte.VALID) == MemoryByte.VALID);
- }
-
- /**
- * Sets whether this memory byte is read-only.
- *
- * @param readonly whether this memory byte is read-only.
- */
- public void setReadonly(boolean readonly) {
- flags |= MemoryByte.READONLY;
- if (!readonly)
- flags ^= MemoryByte.READONLY;
- }
-
- /**
- * Returns whether this memory byte is read-only.
- *
- * @return whether this memory byte is read-only
- */
- public boolean isReadonly() {
- return ((flags & MemoryByte.READONLY) == MemoryByte.READONLY);
- }
-
- /**
- * Sets whether this memory byte has changed.
- *
- * @param changed whether this memory byte has changed
- */
- public void setChanged(boolean changed) {
- flags |= MemoryByte.CHANGED;
- if (!changed)
- flags ^= MemoryByte.CHANGED;
- }
-
- /**
- * Returns whether this memory byte has changed.
- *
- * @return whether this memory byte has changed
- */
- public boolean isChanged() {
- return ((flags & MemoryByte.CHANGED) == MemoryByte.CHANGED);
- }
-
- /**
- * Sets whether the history of this byte is known. When history
- * is unknown, the change state of a memory byte has no meaning.
- *
- * @param known whether the change state of this byte is known
- */
- public void setKnown(boolean known) {
- flags |= MemoryByte.KNOWN;
- if (!known)
- flags ^= MemoryByte.KNOWN;
- }
-
- /**
- * Returns whether the history of this byte is known. When history
- * is unknown, the change state of a memory byte has no meaning.
- *
- * @return whether the change state of this byte is known
- */
- public boolean isKnown() {
- return ((flags & MemoryByte.KNOWN) == MemoryByte.KNOWN);
- }
-
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/RuntimeProcess.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/RuntimeProcess.java
deleted file mode 100644
index 34542206f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/RuntimeProcess.java
+++ /dev/null
@@ -1,436 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.model;
-
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugEvent;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.internal.core.DebugCoreMessages;
-import org.eclipse.debug.internal.core.NullStreamsProxy;
-import org.eclipse.debug.internal.core.StreamsProxy;
-
-
-/**
- * Standard implementation of an <code>IProcess</code> that wrappers a system
- * process (<code>java.lang.Process</code>).
- * <p>
- * Clients may subclass this class. Clients that need to replace the implementation
- * of a streams proxy associatd with an <code>IProcess</code> should subclass this
- * class. Generally clients should not instantiate this class directly, but should
- * instead call <code>DebugPlugin.newProcess(...)</code>, which can delegate to an
- * <code>IProcessFactory</code> if one is referenced by the associated launch configuration.
- * </p>
- * @see org.eclipse.debug.core.model.IProcess
- * @see org.eclipse.debug.core.IProcessFactory
- * @since 3.0
- */
-public class RuntimeProcess extends PlatformObject implements IProcess {
-
- private static final int MAX_WAIT_FOR_DEATH_ATTEMPTS = 10;
- private static final int TIME_TO_WAIT_FOR_THREAD_DEATH = 500; // ms
-
- /**
- * The launch this process is contained in
- */
- private ILaunch fLaunch;
-
- /**
- * The system process represented by this <code>IProcess</code>
- */
- private Process fProcess;
-
- /**
- * This process's exit value
- */
- private int fExitValue;
-
- /**
- * The monitor which listens for this runtime process' system process
- * to terminate.
- */
- private ProcessMonitorThread fMonitor;
-
- /**
- * The streams proxy for this process
- */
- private IStreamsProxy fStreamsProxy;
-
- /**
- * The name of the process
- */
- private String fName;
-
- /**
- * Whether this process has been terminated
- */
- private boolean fTerminated;
-
- /**
- * Table of client defined attributes
- */
- private Map fAttributes;
-
- /**
- * Whether output from the process should be captured or swallowed
- */
- private boolean fCaptureOutput = true;
-
- /**
- * Constructs a RuntimeProcess on the given system process
- * with the given name, adding this process to the given
- * launch.
- *
- * @param launch the launch this process will be parented by
- * @param process underlyig system process
- * @param name the label used for this process
- * @param attributes map of attributes used to initialize the attributes
- * of this process, or <code>null</code> if none
- */
- public RuntimeProcess(ILaunch launch, Process process, String name, Map attributes) {
- setLaunch(launch);
- initializeAttributes(attributes);
- fProcess= process;
- fName= name;
- fTerminated= true;
- try {
- process.exitValue();
- } catch (IllegalThreadStateException e) {
- fTerminated= false;
- }
-
- String captureOutput = launch.getAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT);
- fCaptureOutput = !("false".equals(captureOutput)); //$NON-NLS-1$
-
- fStreamsProxy= createStreamsProxy();
- fMonitor = new ProcessMonitorThread(this);
- fMonitor.start();
- launch.addProcess(this);
- fireCreationEvent();
- }
-
- /**
- * Initialize the attributes of this process to those in the given map.
- *
- * @param attributes attribute map or <code>null</code> if none
- */
- private void initializeAttributes(Map attributes) {
- if (attributes != null) {
- Iterator keys = attributes.keySet().iterator();
- while (keys.hasNext()) {
- String key = (String)keys.next();
- setAttribute(key, (String)attributes.get(key));
- }
- }
- }
-
- /**
- * @see ITerminate#canTerminate()
- */
- public boolean canTerminate() {
- return !fTerminated;
- }
-
- /**
- * @see IProcess#getLabel()
- */
- public String getLabel() {
- return fName;
- }
-
- /**
- * Sets the launch this process is contained in
- *
- * @param launch the launch this process is contained in
- */
- protected void setLaunch(ILaunch launch) {
- fLaunch = launch;
- }
-
- /**
- * @see IProcess#getLaunch()
- */
- public ILaunch getLaunch() {
- return fLaunch;
- }
-
- /**
- * Returns the underlying system process associated with this process.
- *
- * @return system process
- */
- protected Process getSystemProcess() {
- return fProcess;
- }
-
- /**
- * @see ITerminate#isTerminated()
- */
- public boolean isTerminated() {
- return fTerminated;
- }
-
- /**
- * @see ITerminate#terminate()
- */
- public void terminate() throws DebugException {
- if (!isTerminated()) {
- if (fStreamsProxy instanceof StreamsProxy) {
- ((StreamsProxy)fStreamsProxy).kill();
- }
- Process process = getSystemProcess();
- if (process != null) {
- process.destroy();
- }
- int attempts = 0;
- while (attempts < MAX_WAIT_FOR_DEATH_ATTEMPTS) {
- try {
- process = getSystemProcess();
- if (process != null) {
- fExitValue = process.exitValue(); // throws exception if process not exited
- }
- return;
- } catch (IllegalThreadStateException ie) {
- }
- try {
- Thread.sleep(TIME_TO_WAIT_FOR_THREAD_DEATH);
- } catch (InterruptedException e) {
- }
- attempts++;
- }
- // clean-up
- if (fMonitor != null) {
- fMonitor.killThread();
- fMonitor = null;
- }
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugException.TARGET_REQUEST_FAILED, DebugCoreMessages.getString("RuntimeProcess.terminate_failed"), null); //$NON-NLS-1$
- throw new DebugException(status);
- }
- }
-
- /**
- * Notification that the system process associated with this process
- * has terminated.
- */
- protected void terminated() {
- if (fStreamsProxy instanceof StreamsProxy) {
- ((StreamsProxy)fStreamsProxy).close();
- }
- fTerminated= true;
- try {
- fExitValue = fProcess.exitValue();
- } catch (IllegalThreadStateException ie) {
- }
- fProcess= null;
- fireTerminateEvent();
- }
-
- /**
- * @see IProcess#getStreamsProxy()
- */
- public IStreamsProxy getStreamsProxy() {
- if (!fCaptureOutput) {
- return null;
- }
- return fStreamsProxy;
- }
-
- /**
- * Returns the streams proxy associated with this process.
- *
- * @return streams proxy
- */
- protected IStreamsProxy createStreamsProxy() {
- if (!fCaptureOutput) {
- return new NullStreamsProxy(getSystemProcess());
- }
-
- return new StreamsProxy(getSystemProcess());
- }
-
- /**
- * Fires a creation event.
- */
- protected void fireCreationEvent() {
- fireEvent(new DebugEvent(this, DebugEvent.CREATE));
- }
-
- /**
- * Fires the given debug event.
- *
- * @param event debug event to fire
- */
- protected void fireEvent(DebugEvent event) {
- DebugPlugin manager= DebugPlugin.getDefault();
- if (manager != null) {
- manager.fireDebugEventSet(new DebugEvent[]{event});
- }
- }
-
- /**
- * Fires a terminate event.
- */
- protected void fireTerminateEvent() {
- fireEvent(new DebugEvent(this, DebugEvent.TERMINATE));
- }
-
- /**
- * Fires a change event.
- */
- protected void fireChangeEvent() {
- fireEvent(new DebugEvent(this, DebugEvent.CHANGE));
- }
-
- /**
- * @see IProcess#setAttribute(String, String)
- */
- public void setAttribute(String key, String value) {
- if (fAttributes == null) {
- fAttributes = new HashMap(5);
- }
- Object origVal = fAttributes.get(key);
- if (origVal != null && origVal.equals(value)) {
- return; //nothing changed.
- }
-
- fAttributes.put(key, value);
- fireChangeEvent();
- }
-
- /**
- * @see IProcess#getAttribute(String)
- */
- public String getAttribute(String key) {
- if (fAttributes == null) {
- return null;
- }
- return (String)fAttributes.get(key);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
- */
- public Object getAdapter(Class adapter) {
- if (adapter.equals(IProcess.class)) {
- return this;
- }
- if (adapter.equals(IDebugTarget.class)) {
- ILaunch launch = getLaunch();
- IDebugTarget[] targets = launch.getDebugTargets();
- for (int i = 0; i < targets.length; i++) {
- if (this.equals(targets[i].getProcess())) {
- return targets[i];
- }
- }
- return null;
- }
- return super.getAdapter(adapter);
- }
- /**
- * @see IProcess#getExitValue()
- */
- public int getExitValue() throws DebugException {
- if (isTerminated()) {
- return fExitValue;
- }
- throw new DebugException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugException.TARGET_REQUEST_FAILED, DebugCoreMessages.getString("RuntimeProcess.Exit_value_not_available_until_process_terminates._1"), null)); //$NON-NLS-1$
- }
-
- /**
- * Monitors a system process, waiting for it to terminate, and
- * then notifies the associated runtime process.
- */
- class ProcessMonitorThread extends Thread {
-
- /**
- * Whether the thread has been told to exit.
- */
- protected boolean fExit;
- /**
- * The underlying <code>java.lang.Process</code> being monitored.
- */
- protected Process fOSProcess;
- /**
- * The <code>IProcess</code> which will be informed when this
- * monitor detects that the underlying process has terminated.
- */
- protected RuntimeProcess fRuntimeProcess;
-
- /**
- * The <code>Thread</code> which is monitoring the underlying process.
- */
- protected Thread fThread;
-
- /**
- * A lock protecting access to <code>fThread</code>.
- */
- private final Object fThreadLock = new Object();
-
- /**
- * @see Thread#run()
- */
- public void run() {
- synchronized (fThreadLock) {
- if (fExit) {
- return;
- }
- fThread = Thread.currentThread();
- }
- while (fOSProcess != null) {
- try {
- fOSProcess.waitFor();
- } catch (InterruptedException ie) {
- // clear interrupted state
- Thread.interrupted();
- } finally {
- fOSProcess = null;
- fRuntimeProcess.terminated();
- }
- }
- fThread = null;
- }
-
- /**
- * Creates a new process monitor and starts monitoring the process for
- * termination.
- */
- public ProcessMonitorThread(RuntimeProcess process) {
- super(DebugCoreMessages.getString("ProcessMonitorJob.0")); //$NON-NLS-1$
- fRuntimeProcess= process;
- fOSProcess= process.getSystemProcess();
- }
-
- /**
- * Kills the monitoring thread.
- *
- * This method is to be useful for dealing with the error
- * case of an underlying process which has not informed this
- * monitor of its termination.
- */
- protected void killThread() {
- synchronized (fThreadLock) {
- if (fThread == null) {
- fExit = true;
- } else {
- fThread.interrupt();
- }
- }
- }
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html
deleted file mode 100644
index 6192e28d6..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html
+++ /dev/null
@@ -1,146 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Eclipse Debug Platform [org.eclipse.debug.core.model]</title>
-</head>
-
-<body bgcolor="#FFFFFF">
-
-<p>Defines interfaces for debug model elements, source lookup, and launching.</p>
-
-<h2>Package Specification</h2>
-
-<p>This package defines classes and interfaces known as the &quot;debug model&quot;
- which support an extensible set of debug architectures and languages. The debug
- model is a set of interfaces representing common artifacts in debuggable programs.
- The debug plug-in itself does not provide an implementation of a debug model.
- It is intended that third parties providing an integrated set of development
- tools for a specific language will also implement a debug model for that language,
- using an underlying debug architecture of their choice. For example, Java development
- tooling provides an implementation of a debug model based on the standard Java
- Platform Debug Architecture (JPDA).</p>
-
-<h4>The Debug Model</h4>
-
-<p>A client implements a debug model by
-providing an implementation of the interfaces defined in this package. (There is no explicit
-extension point that represents a debug model). Each debug model provides one or more
-launch configuration types capable of initiating a debug session.</p>
-
-<p>The common elements defined by the debug model are:
-
-<ul>
- <li>Debug Target - A debug target represents a debuggable program - for example, a virtual
- machine or a process.</li>
- <li>Thread - A debug target may contain one or more threads.</li>
- <li>Stack Frame - A suspended thread may contain one or more stack frames.</li>
- <li>Variable - A stack frame may contain variables.</li>
- <li>Value - Each variable has an associated value, and a value may contain more variables (to
- represent complex data structures and objects).</li>
- <li>Register Group - A stack frame may (optionally) be associated with one or more register
- groups.</li>
- <li>Register - A register group contains one or more registers.</li>
- <li>Memory Blocks - A debug target may (optionally) support the retrieval of
- arbitrary contiguous segments of memory.</li>
- <li>Breakpoint - Breakpoints suspend the execution of a program.</li>
- <li>Expression - An expression is a snippet of code that can be evaluated to
- produce a value.</li>
-</ul>
-
-<p>A debug model implementation is responsible for firing debug events. A debug event
-corresponds to an event in a program being debugged - for example the creation or
-termination of a thread.</p>
-
-<h4>Breakpoints</h4>
-
-<p>Breakpoints are used to suspend the execution of a program being debugged. There are
-many kinds of breakpoints - line breakpoints, conditional line breakpoints, hit count
-breakpoints, exception breakpoints, etc. The kinds of breakpoints supported by each debug
-architecture, and the information required to create those breakpoints
-is dictated by each debug architecture. The debug platform supports an extensible
-set of breakpoint via the breakpoints extension point.</p>
-
-<p>The debug platform provides a breakpoint manager that maintains the collection
- of all registered breakpoints. Clients add and remove breakpoints via this manager.
- Breakpoints are implemented by instances of <b>IBreakpoint</b>. Each breakpoint
- object has an associated marker, which provides persistence and presentation
- in editors. The debug platform defines a generic breakpoint and line breakpoint,
- as well as their corresponding marker definitions. Breakpoint creation is a
- client responsibility - that is, defining the attributes of a breakpoint and
- the resource to associate a breakpoint marker with.</p>
-
-<p>Breakpoints are persisted via their underlying marker. Breakpoint markers defined
- with the <b>persisted</b> attribute as <b>false</b> will not be persisted. Breakpoints
- are restored at workspace startup time by the breakpoint manager - that is,
- breakpoint objects are created for all persisted markers which are a subtype
- of the root breakpoint marker and are added to the breakpoint manager. To allow
- for selective persistence of breakpoints (of the same kind), the <b>IBreakpoint</b>
- interface and root breakpoint implementation defines a &quot;persisted&quot;
- attribute. If this value is set to false, the breakpoint will not be persisted
- across workspace invocations.</p>
-
-<p>As breakpoint markers are modified (created, removed, and changed), resource
- deltas are created by the platform. The breakpoint manager translates pertinent
- resource deltas into breakpoint change notifications (breakpoint added/removed/changed
- messages). Interested listeners may register with the breakpoint manager. The
- breakpoint manager only fires change notifications for registered breakpoints.
- This simplifies breakpoint processing for clients, as resource delta traversal
- and analysis is not required. Debug targets that support breakpoints should
- register for breakpoint change notifications.</p>
-<h4>New Features in the Debug Model, Eclipse 3.0</h4>
-<blockquote>
- <h4>Launch Delegate Enhancements<br>
- </h4>
- <p>Lanuch delegates can optionally implement the new interface <code>ILaunchConfigurationDelegate2</code>.
- This allows launch delegates to provide a launch object to be used for a launch.
- For example, when debugging on a server a delegate could create a new launch
- object or may reuse an existing launch object if the server is already running
- in debug mode. As well, the inteface provides a mechanism for performing a
- scoped build prior to launching (i.e. scoped to the projects in the workspace
- pertaining to the launch), and searching for errors in the workspace which
- may prevent the launch from succeeding (for example, compilation errors).</p>
- <p></p>
- <h4>Extensible Watch Expressions</h4>
- <p>The debug platform provides an implementation of watch expressions. Debug
- models can contribute watch expression delegates if they support watch expressions.
- When a stack frame is selected, the associated delegate is queried to provide
- a value for a watch expression in that context. The debug platform provides
- persistence, enabling, disabling, entering, and editing of watch expressions.</p>
- <h4>Automatic Array Partitioning<br>
- </h4>
- <p>The debug plug-in supports automatic partitioning of indexed collections,
- which partitions large arrays into sub-ranges in the variables view. This
- is supported with the introduction of a new interface in the debug model representing
- an indexed value - <code>IIndexedValue</code>. If a value implements this
- interface, the variables view will automatically partition its elements as
- required, into sub-ranges</p>
- <h4>Logical Structure Types<br>
- </h4>
- <p>Often, it is convenient to navigate complex data structures in terms of a
- logical structure, rather than an implementation structure. For example, no
- matter how a list is implemented (i.e. linked list, collection of arrays,
- etc.), it is often convenient to be able to view the list as an ordered collection.
- To facilitate the display of logical structures in the variables view, an
- extension point has been added (<code>org.eclipse.debug.core.logicalStructureTypes</code>)
- allowing debug models to contribute logical structures of its values, where
- applicable. Debug models may contribute delegates to translate raw implementation
- values into logical values. The variables view will display the logical values,
- when the option to display logical structures is turned on. More than one
- logical structure can be provided for a single value - the user can choose
- which structure to display.</p>
- <h4>Step Filters<br>
- </h4>
- <p>To support step filters on all stepping functions (into, over, return), a
- new interface has been added to the debug platform - <code>IStepFilters</code>
- - which can be implemented by debug targets. This interface replaces <code>IFilteredStep</code>,
- which is now deprecated. The debugger provides a global toggle that turns
- step filters on/off for all stepping functions. Debug targets should implement
- this new interface and honor the step filter enablement setting when stepping.</p>
- <p>This change maintains binary compatibility with previous releases. However,
- targets wishing to leverage the new function must implement the new interface.<br>
- </p>
-</blockquote>
-</body>
-</html>
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/package.html b/org.eclipse.debug.core/core/org/eclipse/debug/core/package.html
deleted file mode 100644
index 069ad320f..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/package.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Eclipse Debug Platform</title>
-</head>
-
-<body bgcolor="#FFFFFF">
-
-<p>Provides support for launching programs, breakpoint management, expression management,
-and debug events.</p>
-
-<h2>Package Specification</h2>
-
-<p>This package provides classes and interfaces to support facilities common among
- many debug architectures: launching programs, breakpoint management, expression
- management, and debug events. An extensible set of debug architectures and languages
- are supported by the definition of a &quot;debug model&quot; - a set of interfaces
- representing common artifacts in debuggable programs, which are defined in <b>org.eclipse.debug.core.model</b>.
- The debug plug-in itself does not provide an implementation of a debug model.
- It is intended that third parties providing an integrated set of development
- tools for a specific language will also implement a debug model for that language,
- using an underlying debug architecture of their choice. For example, Java development
- tooling provides an implementation of a debug model based on the standard Java
- Platform Debug Architecture (JPDA).</p>
-
-<h4>The Managers</h4>
-
-<p>The debug platform defines and provides an implementation of the following managers:
-<ul>
- <li>Launch Manager - The launch manager maintains the set of registered launches
- - that is, a collection of programs that have been launched in debuggable
- or non-debuggable (run) mode. Each launch contains its associated debug targets
- and system processes. A launch that represents a debuggable program may specify
- an associated source locator used to locate source elements associated with
- stack frames for a particular debug session. Clients may provide implementations
- of source locators, which are generally tied to the manner in which a program
- is launched.</li>
- <li>Breakpoint Manager - The breakpoint manager maintains, persists, and restores the collection
- of all registered breakpoints in the workspace. As well, it provides change notification for
- breakpoints.</li>
- <li>Expression Manager - The expression manager maintains a collection of registered expressions.
- Expressions are not automatically persisted, but a client could persist its own expressions
- if required.</li>
-</ul>
-<p></p>
-
-<h4>Launch Configurations</h4>
-
-<p>A launch configuration is a persistable description of how to launch an application.
- Each launch configuration is an instance of a type of launch configuration -
- for example, a Java Application. The debug plug-in defines a launch configuration
- type extension point that clients can contribute to. A launch configuration
- is a set of attributes describing how to launch a program. The launching of
- an application is performed by an associated implementation of a launch configuration
- delegate, contributed by each launch configuration type extension.</p>
-<p>A launch configuration may be stored as a file in the worksapce (and shared
- in a repository via standard team mechanisms), or may be stored locally, essentially
- making the launch configuration private for a single user.</p>
-<h4>New Features in the Debug Platform, Eclipse 3.0</h4>
-<blockquote>
- <h4>Extensible Launch Modes</h4>
- <p>The debug platform supports an extensible set of launch modes. Prior releases
- only supported two launch modes - run and debug. The debug platform defines
- an extension point for contributing new launch modes (<code>org.eclipse.debug.core.launchModes)</code>,
- and contributes three basic launch modes itself: run, debug, and profile.
- The launch manager has API to retrieve all launch modes, and a human readable
- label for each launch mode.</p>
- <p>The debug platform has an extension point to support the contribution of
- a launch delegate for a specific launch configuration type and launch mode
- - <code>org.eclipse.debug.core.launchDelegates</code>. This allows launch
- configurations to be extended by third parties, to support new launch modes.
- For example, a client could contribute a launch delegate that launches a Java
- Application in profile mode (currently, the SDK does not provide a Java profiler).</p>
- <p>For backwards compatibility, the launch delegate supplied by a launch configuration
- type extension is used for the launch modes specified by the launch configuration
- type. A launch delegate supplied for a specific mode, is used only for that
- mode.</p>
- <h4>Extensible Debug Events</h4>
- <p>The debug platform supports an extensible set of debug events. A debug event
- kind of <code>MODEL_SPECIFIC</code> has been added to indicate an application
- specific debug event. When a debug event of kind <code>MODEL_SPECIFIC</code>
- is created, the detail code in the event is client defined. The source of
- the event (debug element that generated the event) identifies the debug model
- from which the event was generated. The debug platform and user interface
- ignores model specific debug events.</p>
- <p>A data field has been added to debug events to allow clients to store application
- specific data in debug events.<br>
- </p>
- <h4>Process Factories<br>
- </h4>
- <p>The debug platform provides an extension point (<code>org.eclipse.debug.core.processFactories</code>)
- for contributing process factories. A process factory can be used to override
- default process creation for a launch configuration when the debug plug-in
- creates a new process. A launch configuration can specify a process factory
- to use when creating a process, via the launch configuration attribute<code>
- DebugPlugin.ATTR_PROCESS_FACTORY_ID</code>.</p>
- <h4>Launch Termination Notification<br>
- </h4>
- <p>The debug platform provides a mechanism for launch listeners to be notified
- when a launch terminates. A launch is a container of processes and debug targets.
- When all of the contained targets and processes terminate, a terminate notification
- is sent to those listeners implementing <code>ILaunchesListener2</code>.</p>
- <h4>Breakpoint Manager Enablement<br>
- </h4>
- <p>The breakpoint manager defines the methods <code>setEnabled(boolean)</code>
- and <code>isEnabled()</code>. When the breakpoint manager is disabled, debuggers
- should ignore all registered breakpoints. The debug platform also provides
- a new listener mechanism, <code>IBreakpointManagerListener</code> which allows
- clients to register with the breakpoint manager to be notified when its enablement
- changes.</p>
-</blockquote>
-</body>
-</html>
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupDirector.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupDirector.java
deleted file mode 100644
index 7765824fa..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupDirector.java
+++ /dev/null
@@ -1,717 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationListener;
-import org.eclipse.debug.core.ILaunchListener;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.core.IStatusHandler;
-import org.eclipse.debug.core.model.IStackFrame;
-import org.eclipse.debug.core.sourcelookup.containers.DefaultSourceContainer;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * Directs source lookup among a collection of source lookup participants,
- * and a common collection of source containers.
- * Each source lookup participant is a source locator itself, which allows
- * more than one source locator to participate in source lookup for a
- * launch. Each source lookup participant searches for source in the source
- * containers managed by this director, and each participant is notified
- * of changes in the source containers (i.e. when the set of source
- * containers changes).
- * <p>
- * When a source director is intilaized, it adds it self as a launch listener,
- * and automatically disposes itself when its associated launch is removed
- * from the launch manager. If a source director is instantiated by a client
- * that is not part of a launch, that client is responsible for disposing
- * the source director.
- * </p>
- * <p>
- * This class is yet experimental.
- * </p>
- * <p>
- * Clients may subclass this class.
- * </p>
- * @since 3.0
- * @see org.eclipse.debug.core.model.ISourceLocator
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainer
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainerType
- * @see org.eclipse.debug.core.sourcelookup.ISourcePathComputer
- * @see org.eclipse.debug.core.sourcelookup.ISourceLookupParticipant
- */
-public abstract class AbstractSourceLookupDirector implements ISourceLookupDirector, ILaunchConfigurationListener, ILaunchListener {
-
- // source locator type identifire
- protected String fId;
- //ISourceLocatorParticipants that are listening for container changes
- protected ArrayList fParticipants = new ArrayList();
- //list of current source containers
- protected ISourceContainer[] fSourceContainers = null;
- //the launch config associated with this director
- protected ILaunchConfiguration fConfig;
- //whether duplicates should be searched for or not
- protected boolean fDuplicates = false;
- // source path computer, or null if default
- protected ISourcePathComputer fComputer = null;
- /**
- * Cache of resolved source elements when duplicates exist.
- * Keys are the duplicates, values are the source element to use.
- */
- protected Map fResolvedElements = null;
-
- protected static final IStatus fPromptStatus = new Status(IStatus.INFO, "org.eclipse.debug.ui", 200, "", null); //$NON-NLS-1$//$NON-NLS-2$
- protected static final IStatus fResolveDuplicatesStatus = new Status(IStatus.INFO, "org.eclipse.debug.ui", 205, "", null); //$NON-NLS-1$//$NON-NLS-2$
-
- // XML nodes & attributes for persistence
- protected static final String DIRECTOR_ROOT_NODE = "sourceLookupDirector"; //$NON-NLS-1$
- protected static final String CONTAINERS_NODE = "sourceContainers"; //$NON-NLS-1$
- protected static final String DUPLICATES_ATTR = "duplicates"; //$NON-NLS-1$
- protected static final String CONTAINER_NODE = "container"; //$NON-NLS-1$
- protected static final String CONTAINER_TYPE_ATTR = "typeId"; //$NON-NLS-1$
- protected static final String CONTAINER_MEMENTO_ATTR = "memento"; //$NON-NLS-1$
-
- class SourceLookupQuery implements ISafeRunnable {
-
- private List fSourceElements = new ArrayList();
- private Object fElement = null;
-
- SourceLookupQuery(Object element) {
- fElement = element;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
- */
- public void handleException(Throwable exception) {
- DebugPlugin.log(exception);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.runtime.ISafeRunnable#run()
- */
- public void run() throws Exception {
- MultiStatus multiStatus = null;
- CoreException single = null;
- for(int i=0; i < fParticipants.size(); i++) {
- Object[] sourceArray;
- try {
- sourceArray = ((ISourceLookupParticipant)fParticipants.get(i)).findSourceElements(fElement);
- if (sourceArray !=null && sourceArray.length > 0) {
- if (isFindDuplicates()) {
- for(int j=0; j<sourceArray.length; j++)
- if(!checkDuplicate(sourceArray[j], fSourceElements))
- fSourceElements.add(sourceArray[j]);
- } else {
- fSourceElements.add(sourceArray[0]);
- return;
- }
- }
- } catch (CoreException e) {
- if (single == null) {
- single = e;
- } else if (multiStatus == null) {
- multiStatus = new MultiStatus(DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, new IStatus[]{single.getStatus()}, SourceLookupMessages.getString("AbstractSourceLookupDirector.19"), null); //$NON-NLS-1$
- multiStatus.add(e.getStatus());
- } else {
- multiStatus.add(e.getStatus());
- }
- }
- }
- if (fSourceElements.isEmpty()) {
- // throw exception if there was one
- if (multiStatus != null) {
- throw new CoreException(multiStatus);
- } else if (single != null) {
- throw single;
- }
- }
- }
-
- public List getSourceElements() {
- return fSourceElements;
- }
-
- public void dispose() {
- fElement = null;
- fSourceElements = null;
- }
-
- }
-
- /**
- * Constructs source lookup director
- */
- public AbstractSourceLookupDirector() {
- }
-
- /**
- * Sets the type identifier for this source locator's type
- *
- * @param id corresponds to source locator type identifier for a
- * persistable source locator
- */
- public void setId(String id) {
- fId = id;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.IPersistableSourceLocator2#dispose()
- */
- public synchronized void dispose() {
- ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager();
- launchManager.removeLaunchConfigurationListener(this);
- launchManager.removeLaunchListener(this);
- Iterator iterator = fParticipants.iterator();
- while (iterator.hasNext()) {
- ISourceLookupParticipant participant = (ISourceLookupParticipant) iterator.next();
- //director may also be a participant
- if(participant != this)
- participant.dispose();
- }
- fParticipants.clear();
- if (fSourceContainers != null) {
- for (int i = 0; i < fSourceContainers.length; i++) {
- fSourceContainers[i].dispose();
- }
- }
- fSourceContainers = null;
- fResolvedElements = null;
- }
-
- /**
- * Throws an exception with the given message and underlying exception.
- *
- * @param message error message
- * @param exception underlying exception, or <code>null</code>
- * @throws CoreException
- */
- protected void abort(String message, Throwable exception) throws CoreException {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, message, exception);
- throw new CoreException(status);
- }
-
- /**
- * Constructs source containers from a list of container mementos.
- *
- * @param list the list of nodes to be parsed
- * @exception CoreException if parsing encounters an error
- * @return a list of source containers
- */
- private List parseSourceContainers(NodeList list) throws CoreException {
- List containers = new ArrayList();
- for (int i=0; i < list.getLength(); i++) {
- if(!(list.item(i).getNodeType() == Node.ELEMENT_NODE))
- continue;
- Element element = (Element)list.item(i);
- String typeId = element.getAttribute(CONTAINER_TYPE_ATTR);
- if (typeId == null || typeId.equals("")) { //$NON-NLS-1$
- abort(SourceLookupMessages.getString("AbstractSourceLookupDirector.11"), null); //$NON-NLS-1$
- }
- ISourceContainerType type = DebugPlugin.getDefault().getLaunchManager().getSourceContainerType(typeId);
- if(type == null) {
- abort(MessageFormat.format(SourceLookupMessages.getString("AbstractSourceLookupDirector.12"), new String[]{typeId}), null); //$NON-NLS-1$
- }
- String memento = element.getAttribute(CONTAINER_MEMENTO_ATTR);
- if (memento == null || memento.equals("")) { //$NON-NLS-1$
- abort(SourceLookupMessages.getString("AbstractSourceLookupDirector.13"), null); //$NON-NLS-1$
- }
- ISourceContainer container = type.createSourceContainer(memento);
- containers.add(container);
- }
- return containers;
- }
-
- /**
- * Registers the given source lookup participant. Has no effect if an identical
- * participant is already registered. Paticipants receive notification
- * when the source containers associated with this source director change.
- *
- * @param participant the particiapant to register
- */
- private void addSourceLookupParticipant(ISourceLookupParticipant participant) {
- if (!fParticipants.contains(participant)) {
- fParticipants.add(participant);
- participant.init(this);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#getSourceContainers()
- */
- public ISourceContainer[] getSourceContainers() {
- if (fSourceContainers == null) {
- return new ISourceContainer[0];
- }
- ISourceContainer[] copy = new ISourceContainer[fSourceContainers.length];
- System.arraycopy(fSourceContainers, 0, copy, 0, fSourceContainers.length);
- return copy;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#isFindDuplicates()
- */
- public boolean isFindDuplicates() {
- return fDuplicates;
- }
-
- /**
- * Sets whether source containers should be searched exhaustively for
- * applicable source elements or if only the first match should be located.
- *
- * @param duplicates whether source containers should be searched exhaustively for
- * applicable source elements or if only the first match should be located
- */
- public void setFindDuplicates(boolean duplicates) {
- fDuplicates = duplicates;
- }
-
- /**
- * Removes the given participant from the list of registered partipants.
- * Has no effect if an identical participant is not already registered.
- *
- * @param participant the participant to remove
- */
- private void removeSourceLookupParticipant(ISourceLookupParticipant participant) {
- if (fParticipants.remove(participant)) {
- participant.dispose();
- }
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationAdded(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void launchConfigurationAdded(ILaunchConfiguration configuration) {
- }
-
- /* (non-Javadoc)
- *
- * Updates source containers in repsonse to changes in underlying launch
- * configuration. Only responds to changes in non-working copies.
- *
- * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationChanged(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void launchConfigurationChanged(ILaunchConfiguration configuration) {
- if (fConfig == null || configuration.isWorkingCopy()) {
- return;
- }
- if(fConfig.equals(configuration)) {
- try{
- String locatorMemento = configuration.getAttribute(ILaunchConfiguration.ATTR_SOURCE_LOCATOR_MEMENTO,(String)null);
- if (locatorMemento == null) {
- initializeDefaults(configuration);
- } else {
- initializeFromMemento(locatorMemento, configuration);
- }
- } catch (CoreException e){
- }
- }
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchConfigurationListener#launchConfigurationRemoved(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void launchConfigurationRemoved(ILaunchConfiguration configuration) {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IPersistableSourceLocator#getMemento()
- */
- public String getMemento() throws CoreException {
- Document doc = DebugPlugin.newDocument();
- Element rootNode = doc.createElement(DIRECTOR_ROOT_NODE);
- doc.appendChild(rootNode);
-
- Element pathNode = doc.createElement(CONTAINERS_NODE);
- if(fDuplicates) {
- pathNode.setAttribute(DUPLICATES_ATTR, "true"); //$NON-NLS-1$
- } else {
- pathNode.setAttribute(DUPLICATES_ATTR, "false"); //$NON-NLS-1$
- }
- rootNode.appendChild(pathNode);
- if(fSourceContainers !=null){
- for(int i=0; i<fSourceContainers.length; i++){
- Element node = doc.createElement(CONTAINER_NODE);
- ISourceContainer container = fSourceContainers[i];
- ISourceContainerType type = container.getType();
- node.setAttribute(CONTAINER_TYPE_ATTR, type.getId());
- node.setAttribute(CONTAINER_MEMENTO_ATTR, type.getMemento(container));
- pathNode.appendChild(node);
- }
- }
- return DebugPlugin.serializeDocument(doc);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IPersistableSourceLocator#initializeFromMemento(java.lang.String)
- */
- public void initializeFromMemento(String memento) throws CoreException {
- doInitializeFromMemento(memento, true);
- }
-
- /**
- * Initializes this source lookup director from the given memento.
- * Disposes itself before initialization if specified.
- *
- * @param memento source locator memento
- * @param dispose whether to dispose any current source containers and participants
- * before initializing
- * @throws CoreException if an exception occurrs during initialization
- */
- protected void doInitializeFromMemento(String memento, boolean dispose) throws CoreException {
- if (dispose) {
- dispose();
- }
- Element rootElement = DebugPlugin.parseDocument(memento);
- if (!rootElement.getNodeName().equalsIgnoreCase(DIRECTOR_ROOT_NODE)) {
- abort(SourceLookupMessages.getString("AbstractSourceLookupDirector.14"), null); //$NON-NLS-1$
- }
- NodeList list = rootElement.getChildNodes();
- int length = list.getLength();
- for (int i = 0; i < length; ++i) {
- Node node = list.item(i);
- short type = node.getNodeType();
- if (type == Node.ELEMENT_NODE) {
- Element entry = (Element) node;
- if(entry.getNodeName().equalsIgnoreCase(CONTAINERS_NODE)){
- setFindDuplicates("true".equals(entry.getAttribute(DUPLICATES_ATTR))); //$NON-NLS-1$
- NodeList children = entry.getChildNodes();
- List containers = parseSourceContainers(children);
- setSourceContainers((ISourceContainer[]) containers.toArray(new ISourceContainer[containers.size()]));
- }
- }
- }
- initializeParticipants();
- }
-
- /**
- * Sets the source containers used by this source lookup
- * director.
- *
- * @param containers source containers to search
- */
- public void setSourceContainers(ISourceContainer[] containers) {
- ISourceContainer[] old = getSourceContainers();
- for (int i = 0; i < old.length; i++) {
- old[i].dispose();
- }
- fSourceContainers = containers;
- for (int i = 0; i < containers.length; i++) {
- ISourceContainer container = containers[i];
- container.init(this);
- }
- // clear resolved duplicates
- fResolvedElements = null;
- // notify participants
- ISourceLookupParticipant[] participants = getParticipants();
- for (int i = 0; i < participants.length; i++) {
- ISourceLookupParticipant participant = participants[i];
- participant.sourceContainersChanged(this);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.ISourceLocator#getSourceElement(org.eclipse.debug.core.model.IStackFrame)
- * Would be better to accept Object so this can be used for breakpoints and other objects.
- */
- public Object getSourceElement(IStackFrame stackFrame) {
- return getSourceElement((Object)stackFrame);
- }
-
- /**
- * Performs a source lookup query for the given element
- * returning the source elements associated with the element.
- *
- * @param element stack frame
- * @return list of associated source elements
- */
- protected List doSourceLookup(Object element) {
- SourceLookupQuery query = new SourceLookupQuery(element);
- Platform.run(query);
- List sources = query.getSourceElements();
- query.dispose();
- return sources;
- }
-
- /**
- * Returns the source element to associate with the given element.
- * This method is called when more than one source element has been found
- * for an element, and allows the source director to select a single
- * source element to associate with the element.
- * <p>
- * Subclasses should override this method as appropriate. For example,
- * to prompt the user to choose a source element.
- * </p>
- * @param element the debug artifact for which source is being searched for
- * @param sources the source elements found for the given element
- * @return a single source element for the given element
- */
- public Object resolveSourceElement(Object element, List sources) {
- // check the duplicates cache first
- Iterator duplicates = sources.iterator();
- while (duplicates.hasNext()) {
- Object dup = duplicates.next();
- Object resolved = getCachedElement(dup);
- if (resolved != null) {
- return resolved;
- }
- }
- // consult a status handler
- IStatusHandler prompter = DebugPlugin.getDefault().getStatusHandler(fPromptStatus);
- if (prompter != null) {
- try {
- Object result = prompter.handleStatus(fResolveDuplicatesStatus, new Object[]{element, sources});
- if (result != null) {
- cacheResolvedElement(sources, result);
- return result;
- }
- } catch (CoreException e) {
- }
- }
- return sources.get(0);
- }
-
- /**
- * Checks if the object being added to the list of sources is a duplicate of what's already in the list
- * @param sourceToAdd the new source file to be added
- * @param sources the list that the source will be compared against
- * @return true if it is already in the list, false if it is a new object
- */
- private boolean checkDuplicate(Object sourceToAdd, List sources){
- if(sources.size() == 0)
- return false;
- Iterator iterator = sources.iterator();
- while(iterator.hasNext())
- if(iterator.next().equals(sourceToAdd))
- return true;
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.IPersistableSourceLookupDirector#initializeFromMemento(java.lang.String, org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void initializeFromMemento(String memento, ILaunchConfiguration configuration) throws CoreException {
- dispose();
- setLaunchConfiguration(configuration);
- doInitializeFromMemento(memento, false);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.model.IPersistableSourceLocator#initializeDefaults(org.eclipse.debug.core.ILaunchConfiguration)
- */
- public void initializeDefaults(ILaunchConfiguration configuration) throws CoreException {
- dispose();
- setLaunchConfiguration(configuration);
- setSourceContainers(new ISourceContainer[]{new DefaultSourceContainer()});
- initializeParticipants();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#getLaunchConfiguration()
- */
- public ILaunchConfiguration getLaunchConfiguration() {
- return fConfig;
- }
-
- /**
- * Sets the launch configuration associated with this source lookup
- * director. If the given configuration is a working copy, this director
- * will respond to changes the working copy. If the given configuration
- * is a persisted launch configration, this director will respond to changes
- * in the persisted launch configuration.
- *
- * @param configuration launch configuration to associate with this
- * source lookup director, or <code>null</code> if none
- */
- protected void setLaunchConfiguration(ILaunchConfiguration configuration) {
- fConfig = configuration;
- ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager();
- launchManager.addLaunchConfigurationListener(this);
- launchManager.addLaunchListener(this);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchListener#launchAdded(org.eclipse.debug.core.ILaunch)
- */
- public void launchAdded(ILaunch launch) {
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchListener#launchChanged(org.eclipse.debug.core.ILaunch)
- */
- public void launchChanged(ILaunch launch) {
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.ILaunchListener#launchRemoved(org.eclipse.debug.core.ILaunch)
- */
- public void launchRemoved(ILaunch launch) {
- if (this.equals(launch.getSourceLocator())) {
- dispose();
- }
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#getParticipants()
- */
- public ISourceLookupParticipant[] getParticipants() {
- return (ISourceLookupParticipant[]) fParticipants.toArray(new ISourceLookupParticipant[fParticipants.size()]);
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#supportsSourceContainerType(org.eclipse.debug.internal.core.sourcelookup.ISourceContainerType)
- */
- public boolean supportsSourceContainerType(ISourceContainerType type) {
- return true;
- }
-
- /**
- * Caches the resolved source element to use when one of the following
- * duplicates is found.
- *
- * @param duplicates duplicates source elemnets
- * @param sourceElement chosen source element to use in place of the
- * duplicates
- */
- protected void cacheResolvedElement(List duplicates, Object sourceElement) {
- if (fResolvedElements == null) {
- fResolvedElements = new HashMap(10);
- }
- Iterator iterator = duplicates.iterator();
- while (iterator.hasNext()) {
- Object dup = iterator.next();
- fResolvedElements.put(dup, sourceElement);
- }
-
- }
-
- /**
- * Returns the cached source element to use when the given duplicate
- * is encountered.
- *
- * @param duplicate duplicates source element
- * @return element to use in the duplicate's place
- */
- protected Object getCachedElement(Object duplicate) {
- if (fResolvedElements != null) {
- return fResolvedElements.get(duplicate);
- }
- return null;
- }
-
- /**
- * Clears any cached source element associated with the given duplicate
- * is source elemnet.
- *
- * @param duplicate duplicate source element to cache resolved results
- * for
- */
- protected void clearCachedElement(Object duplicate) {
- if (fResolvedElements != null) {
- fResolvedElements.remove(duplicate);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#clearSourceElements(java.lang.Object)
- */
- public void clearSourceElements(Object element) {
- List list = doSourceLookup(element);
- if (list.size() > 0) {
- Iterator iterator = list.iterator();
- while (iterator.hasNext()) {
- clearCachedElement(iterator.next());
- }
- }
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#addParticipants(org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant[])
- */
- public void addParticipants(ISourceLookupParticipant[] participants) {
- for (int i = 0; i < participants.length; i++) {
- ISourceLookupParticipant participant = participants[i];
- addSourceLookupParticipant(participant);
- participant.sourceContainersChanged(this);
- }
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#removeParticipants(org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant[])
- */
- public void removeParticipants(ISourceLookupParticipant[] participants) {
- for (int i = 0; i < participants.length; i++) {
- removeSourceLookupParticipant(participants[i]);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector#getId()
- */
- public String getId() {
- return fId;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceLookupDirector#getSourcePathComputer()
- */
- public ISourcePathComputer getSourcePathComputer() {
- if (fComputer == null && getLaunchConfiguration() != null) {
- try {
- return DebugPlugin.getDefault().getLaunchManager().getSourcePathComputer(getLaunchConfiguration());
- } catch (CoreException e) {
- }
- }
- return fComputer;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceLookupDirector#setSourcePathComputer(org.eclipse.debug.core.sourcelookup.ISourcePathComputer)
- */
- public void setSourcePathComputer(ISourcePathComputer computer) {
- fComputer = computer;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceLookupDirector#findSourceElements(java.lang.Object)
- */
- public Object[] findSourceElements(Object object) throws CoreException {
- SourceLookupQuery query = new SourceLookupQuery(object);
- Platform.run(query);
- List sources = query.getSourceElements();
- query.dispose();
- return sources.toArray();
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceLookupDirector#getSourceElement(java.lang.Object)
- */
- public synchronized Object getSourceElement(Object element) {
- List sources = doSourceLookup(element);
- if(sources.size() == 1) {
- return sources.get(0);
- } else if(sources.size() > 1) {
- return resolveSourceElement(element, sources);
- } else {
- return null;
- }
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupParticipant.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupParticipant.java
deleted file mode 100644
index 8e54d1199..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupParticipant.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-
-
-/**
- * Common super class for implementations of source lookup participants.
- * <p>
- * Clients implementing source lookup participants should subclass this class.
- * </p>
- * @since 3.0
- */
-public abstract class AbstractSourceLookupParticipant implements ISourceLookupParticipant {
-
- private ISourceLookupDirector fDirector;
-
- protected static final Object[] EMPTY = new Object[0];
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant#init(org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector)
- */
- public void init(ISourceLookupDirector director) {
- fDirector = director;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant#dispose()
- */
- public void dispose() {
- fDirector = null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant#findSourceElements(java.lang.Object)
- */
- public Object[] findSourceElements(Object object) throws CoreException {
- List results = null;
- if (isFindDuplicates()) {
- results = new ArrayList();
- }
- String name = getSourceName(object);
- if (name != null) {
- ISourceContainer[] containers = getSourceContainers();
- for (int i = 0; i < containers.length; i++) {
- ISourceContainer container = getDelegateContainer(containers[i]);
- if (container != null) {
- Object[] objects = container.findSourceElements(name);
- if (objects.length > 0) {
- if (isFindDuplicates()) {
- for (int j = 0; j < objects.length; j++) {
- results.add(objects[j]);
- }
- } else {
- if (objects.length == 1) {
- return objects;
- }
- return new Object[]{objects[0]};
- }
- }
- }
- }
- }
- if (results == null) {
- return EMPTY;
- }
- return results.toArray();
- }
-
- /**
- * Returns the source container to search in place of the given source
- * container, or <code>null</code> if the given source container is not
- * to be searched. The default implementation does not translate source
- * containers. Subclasses should override if required.
- *
- * @param container the source container about to be searched (proxy)
- * @return the source container to be searched (delegate), or <code>null</code>
- * if the source container should not be searched
- */
- protected ISourceContainer getDelegateContainer(ISourceContainer container) {
- return container;
- }
-
- /**
- * Returns the source lookup director this participant is registered with
- * or <code>null</code> if none.
- *
- * @return the source lookup director this participant is registered with
- * or <code>null</code> if none
- */
- protected ISourceLookupDirector getDirector() {
- return fDirector;
- }
-
- /**
- * Returns whether this participant's source lookup director is configured
- * to search for duplicate source elements.
- *
- * @return whether this participant's source lookup director is configured
- * to search for duplicate source elements
- */
- protected boolean isFindDuplicates() {
- return getDirector().isFindDuplicates();
- }
-
- /**
- * Returns the source containers currently registered with this participant's
- * source lookup director.
- *
- * @return the source containers currently registered with this participant's
- * source lookup director
- */
- protected ISourceContainer[] getSourceContainers() {
- return getDirector().getSourceContainers();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceLookupParticipant#sourceContainersChanged(org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector)
- */
- public void sourceContainersChanged(ISourceLookupDirector director) {
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/IPersistableSourceLocator2.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/IPersistableSourceLocator2.java
deleted file mode 100644
index 2e986321a..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/IPersistableSourceLocator2.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.debug.core.sourcelookup;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.model.IPersistableSourceLocator;
-
-/**
- * Extensions to the <code>IPersistableSourceLocator</code> interface.
- *
- * @see org.eclipse.debug.core.model.IPersistableSourceLocator
- * @since 3.0
- */
-public interface IPersistableSourceLocator2 extends IPersistableSourceLocator {
-
- /**
- * Initializes this source locator based on the given
- * memento, for the given launch configuration. This method
- * is called instead of <code>initializeFrom(String memento)</code>
- * defined in <code>IPersistableSourceLocator</code> when a source
- * locator implements this interface.
- *
- * @param memento a memento to initialize this source locator
- * @param configuration the launch configuration this source locator is
- * being created for
- * @exception CoreException on failure to initialize
- */
- public void initializeFromMemento(String memento, ILaunchConfiguration configuration) throws CoreException;
-
- /**
- * Disposes this source locator. This method is called when a source
- * locator's associated launch is removed from the launch manager.
- */
- public void dispose();
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainer.java
deleted file mode 100644
index ee146a7f2..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainer.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * A source container is a container of source code. A source container is
- * capable of searching for source elements by name. For example, a source
- * container may be a project or a directory capable of searching for files
- * by name. A source container may be a composite container - i.e. contain
- * other source containers.
- * <p>
- * When a source container is created and added to a source director, the
- * source container's <code>dispose()</code> method is called when the
- * source director is disposed. Clients creating source containers for other
- * purposes must dispose of containers themselves.
- * </p>
- *
- * @see ISourceLookupParticipant
- * @see ISourceContainerType
- * @since 3.0
- */
-public interface ISourceContainer extends IAdaptable {
-
- /**
- * Notifiation this source container has been added to the given
- * source lookup director.
- *
- * @param director the director this container has been added to
- */
- public void init(ISourceLookupDirector director);
-
- /**
- * Returns a collection of source elements in this container corresponding to the
- * given name. Returns an empty collection if no source elements are found.
- * This source container's source lookup director specifies if duplicate
- * source elements should be searched for, via <code>isFindDuplicates()</code>.
- * When <code>false</code> the returned collection should contain at most one
- * source element. If this is a composite container, the containers contained
- * by this container are also searched.
- * <p>
- * The format of the given name is implementation specific but generally conforms
- * to the format of a file name. If a source container does not recognize the
- * name format provided, an empty collection should be returned. A source container
- * may or may not require names to be fully qualified (i.e. be qualified with directory
- * names).
- * </p>
- * @param name the name of the source element to search for
- * @return a collection of source elements corresponding to the given name
- * @exception CoreException if an exception occurrs while searching for source elements
- */
- public Object[] findSourceElements(String name) throws CoreException;
-
- /**
- * The name of this source container that can be used for presentation purposes.
- * For example, the name of a project.
- *
- * @return the name of this source container
- */
- public String getName();
-
- /**
- * Returns the source containers this container is composed of. An empty
- * collection is returned if this container is not a composite container.
- * For example, a workspace source container may be composed of project source
- * containers.
- *
- * @return the source containers this container is composed of, possibly
- * an empty collection
- * @exception CoreException if unable to retrieve source containers
- */
- public ISourceContainer[] getSourceContainers() throws CoreException;
-
- /**
- * Returns whether this container is a composite container. A composite
- * container is composed of other source containers. For example, a workspace
- * source container may be composed of project source containers.
- *
- * @return whether this container is a composite container
- */
- public boolean isComposite();
-
- /**
- * Returns this container's type.
- *
- * @return this container's type
- */
- public ISourceContainerType getType();
-
- /**
- * Disposes this source container. This method is called when the source
- * director associated with this source container is disposed.
- */
- public void dispose();
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerType.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerType.java
deleted file mode 100644
index b788d8963..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerType.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-
-
-/**
- * A source container type represents a kind of container of source code.
- * For example, a source container type may be a project or a directory. A specific
- * project or directory is represented by an instance of a source container type,
- * which is called a source container (<code>ISourceContainer</code>).
- * <p>
- * A source container type is contributed via the <code>sourceContainerTypes</code>
- * extension point, providing a delegate to the work specific to the contributed
- * type. Following is an example contribution.
- * <pre>
- * &lt;extension point=&quot;org.eclipse.debug.core.sourceContainerTypes&quot;&gt;
- * &lt;sourceContainerType
- * name=&quot;Project&quot;
- * class=&quot;org.eclipse.debug.internal.core.sourcelookup.containers.ProjectSourceContainerType&quot;
- * id=&quot;org.eclipse.debug.core.containerType.project&quot;
- * description=&quot;A project in the workspace&quot;&gt;
- * &lt;/sourceContainerType&gt;
- * &lt;/extension&gt;
- * </pre>
- * </p>
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainer
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainerTypeDelegate
- * @since 3.0
- */
-public interface ISourceContainerType extends ISourceContainerTypeDelegate {
-
- /**
- * Returns the name of this source container type that can be used for
- * presentation purposes. For example, <code>Working Set</code> or
- * <code>Project</code>. The value returned is
- * identical to the name specified in plugin.xml by the <code>name</code>
- * attribute.
- *
- * @return the name of this source container type
- */
- public String getName();
-
- /**
- * Returns the unique identifier associated with this source container type.
- * The value returned is identical to the identifier specified in plugin.xml by
- * the <code>id</code> attribute.
- *
- * @return the unique identifier associated with this source container type
- */
- public String getId();
-
- /**
- * Returns a short description of this source container type that can be used
- * for presenetation purposes, or <code>null</code> if none.
- *
- * @return a short description of this source container type, or <code>null</code>
- */
- public String getDescription();
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerTypeDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerTypeDelegate.java
deleted file mode 100644
index 75ca4a2ba..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerTypeDelegate.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A source container type delegate represents a kind of container of source code.
- * For example, a source container type may be a project or a directory. A specific
- * project or directory is represented by an instance of a source container type,
- * which is called a source container (<code>ISourceContainer</code>).
- * <p>
- * A source container type delegate is contributed via the
- * <code>sourceContainerTypes</code> extension point.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainer
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainerType
- * @since 3.0
- */
-public interface ISourceContainerTypeDelegate {
-
- /**
- * Creates and returns a new source container of this type
- * corresponding to the given memento.
- *
- * @param memento a memento for a source conatiner of this source container type
- * @return a source container corresponding to the given memento
- * @exception CoreException if unable to construct a source container based
- * on the given memento
- */
- public ISourceContainer createSourceContainer(String memento) throws CoreException;
-
- /**
- * Constructs and returns a memento for the given source container. A memento
- * can be used to reconstruct a source container.
- *
- * @param container The container for which a memento should be created. The
- * container must of this source container type.
- * @return a memento for the source container
- * @exception CoreException if unable to create a memento
- */
- public String getMemento(ISourceContainer container) throws CoreException;
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupDirector.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupDirector.java
deleted file mode 100644
index 5cc46ab9a..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupDirector.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-
-/**
- * A source lookup director directs the source lookup process
- * among a set of participants and source containers.
- * <p>
- * Clients may implement this interface. An astract implementation
- * is provided by <code>AbstractSourceLookupDirector</code>, which
- * clients should subclass.
- * </p>
- * @since 3.0
- */
-public interface ISourceLookupDirector extends IPersistableSourceLocator2 {
-
- /**
- * Returns the launch configuration associated with this source
- * lookup director, or <code>null</code> if none.
- *
- * @return the launch configuration associated with this source
- * lookup director, or <code>null</code> if none
- */
- public ILaunchConfiguration getLaunchConfiguration();
-
- /**
- * Returns the source lookup participants currently registered with
- * this director, possibly an empty collection.
- *
- * @return the source lookup participants currently registered with
- * this director, possibly an empty collection
- */
- public ISourceLookupParticipant[] getParticipants();
-
- /**
- * Returns the source containers currently registered with this
- * director, possibly an empty collection.
- *
- * @return the source containers currently registered with this
- * director, possibly an empty collection
- */
- public ISourceContainer[] getSourceContainers();
-
- /**
- * Sets the source containers this source lookup director
- * should search when looking for source, possibly an empty collection.
- *
- * @param containers the source containers this source lookup director
- * should search when looking for source, possibly an empty collection
- */
- public void setSourceContainers(ISourceContainer[] containers);
-
- /**
- * Returns whether to search exhaustively for all source elements
- * with the same name in all registered source containers, or
- * whether to stop searching when the first source element matching
- * the required name is found.
- *
- * @return whether to search exhaustively for all source elements
- * with the same name
- */
- public boolean isFindDuplicates();
-
- /**
- * Sets whether to search exhaustively for all source elements
- * with the same name in all registered source containers, or
- * whether to stop searching when the first source element matching
- * the required name is found.
- *
- * @param findDuplicates whether to search exhaustively for all source elements
- * with the same name
- */
- public void setFindDuplicates(boolean findDuplicates);
-
- /**
- * Notifies this source lookup director that it should initialize
- * its set of source lookup participants.
- */
- public void initializeParticipants();
-
- /**
- * Returns whether this source director supports the given type
- * of source location.
- *
- * @param type source container type
- * @return whether this source director supports the given type
- * of source location
- */
- public boolean supportsSourceContainerType(ISourceContainerType type);
-
- /**
- * Clears any source lookup results associated with the given
- * debug artifact, such that a subsequent lookup will force a new search
- * to be performed.
- *
- * @param element debug artifact to clear source lookup results for
- */
- public void clearSourceElements(Object element);
-
- /**
- * Adds the given source lookup participants to this director.
- *
- * @param participants participants to add
- */
- public void addParticipants(ISourceLookupParticipant[] participants);
-
- /**
- * Removes the given source lookup participants from this director.
- *
- * @param participants participants to remove
- */
- public void removeParticipants(ISourceLookupParticipant[] participants);
-
- /**
- * Returns the identifier of this type of source locator.
- *
- * @return the identifier of this type of source locator
- */
- public String getId();
-
- /**
- * Returns the source path computer to use with this source lookup
- * director, possibly <code>null</code>. By default, the source path
- * computer returned is the one associated with this director's launch
- * configuration's type. However, the source path computer can be specified
- * programmatically by calling <code>setSourcePathComputer(...)</code>.
- *
- * @return the source path computer to use with this source lookup
- * director, possibly <code>null</code>
- */
- public ISourcePathComputer getSourcePathComputer();
-
- /**
- * Sets the source path computer for this source lookup director.
- * This method can be used to override the default source path computer
- * for a launch configuration type. When <code>null</code> is specified
- * the default source path computer will be used (i.e. the one assocaited
- * with this director's launch configuration's type).
- *
- * @param computer source path computer or <code>null</code>
- */
- public void setSourcePathComputer(ISourcePathComputer computer);
-
- /**
- * Returns a collection of source elements corresponding to the given debug
- * artifact (for example, a stack frame or breakpoint). Returns an empty
- * collection if no source elements are found.
- * This participant's source lookup director specifies if duplicate
- * source elements should be searched for, via <code>isFindDuplicates()</code>.
- * When <code>false</code> the returned collection should contain at most one
- * source element.
- *
- * @param object the debug artifact for which source needs to be found (e.g., stack frame)
- * @return a collection of source elements corresponding to the given
- * debug artifact, possibly empty
- * @exception CoreException if an exception occurrs while searching for source
- */
- public Object[] findSourceElements(Object object) throws CoreException;
-
- /**
- * Returns a source element that corresponds to the given debug artifact, or
- * <code>null</code> if a source element could not be located. This is a
- * generalization of <code>getSourceElement(IStackFrame)</code> to allow
- * source to be found for other types of elements.
- *
- * @param element the debug artifact for which to locate source
- * @return an object representing a source element.
- */
- public Object getSourceElement(Object element);
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupParticipant.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupParticipant.java
deleted file mode 100644
index 34aa354ff..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupParticipant.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * A source lookup participant participates in source lookup by searching an ordered
- * list of source containers for source elements corresponding to a debug artifact.
- * For example, a participant may be asked to find source corresponding to a stack
- * frame or breakpoint. An implementation of a source lookup participant is debug
- * model specific, since it must convert the debug model artifact (stack frame,
- * breakpoint, etc.), into a source name that can be recognized by a source container
- * (<code>ISourceContainer</code>), to search for source elements. Source containers
- * are generally debug model independent, whereas source lookup participants are
- * debug model specific.
- * <p>
- * Clients may implement this interface. An abstract implementation is
- * provided by <code>AbstractSourceLookupParticipant</code>, which clients
- * should subclass.
- * </p>
- * @since 3.0
- */
-public interface ISourceLookupParticipant {
-
- /**
- * Notification this participant has been added to the specified
- * source lookup director.
- *
- * @param director the source lookup director that this participant
- * has been added to
- */
- public void init(ISourceLookupDirector director);
-
- /**
- * Returns a collection of source elements corresponding to the given debug
- * artifact (for example, a stack frame or breakpoint). Returns an empty
- * collection if no source elements are found.
- * This participant's source lookup director specifies if duplicate
- * source elements should be searched for, via <code>isFindDuplicates()</code>.
- * When <code>false</code> the returned collection should contain at most one
- * source element.
- * <p>
- * If the given debug artifact is not recognized by this participant, an empty
- * collection is returned. Otherwise, this participant generates a source name
- * from the given artifact and performs a search for associated source elements
- * in its source containers.
- * </p>
- * @param object the debug artifact for which source needs to be found (e.g., stack frame)
- * @return a collection of source elements corresponding to the given
- * debug artifact, possibly empty
- * @exception CoreException if an exception occurrs while searching for source
- */
- public Object[] findSourceElements(Object object) throws CoreException;
-
- /**
- * Returns the source file name associated with the given debug artifact that
- * source needs to be found for, or <code>null</code> if none.
- *
- * @param object the debug artifact for which source needs to be found (e.g., stack frame)
- * @return the source file name associated with the given debug artifact,
- * or <code>null</code> if none.
- * @throws CoreException if unable to determine a source file name
- */
- public String getSourceName(Object object) throws CoreException;
-
- /**
- * Disposes this source lookup participant. This method is called when
- * the source lookup director assocaited with this participant is
- * disposed.
- */
- public void dispose();
-
- /**
- * Notification that the source lookup containers in the given source
- * lookup director have changed.
- *
- * @param director source lookup director that is directing this
- * participant
- */
- public void sourceContainersChanged(ISourceLookupDirector director);
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputer.java
deleted file mode 100644
index 39e7467ca..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputer.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import org.eclipse.debug.core.DebugPlugin;
-
-/**
- * A source path computer computes the default source lookup path (set of source
- * containers that should be considered) for a launch configuration.
- * <p>
- * A source path computer is contributed in plug-in XML via the
- * <code>sourcePathComputers</code> extension point, that provides a delegate
- * to compute the path specific to a launch configuration. Following
- * is an example contribution.
- * <pre>
- * &lt;extension point=&quot;org.eclipse.debug.core.sourcePathComputers&quot;&gt;
- * &lt;sourcePathComputer
- * id=&quot;org.eclipse.example.exampleSourcePathComputer&quot;
- * class=&quot;org.eclipse.example.SourcePathComputer&quot;&gt;
- * &lt;/sourcePathComputer&gt;
- * &lt;/extension&gt;
- * </pre>
- * </p>
- * <p>
- * A source path computer can be associated with a launch configuration type
- * via the <code>sourcePathComputerId</code> attribute of a launch configuration
- * type extension. As well, a launch configuration can specify its own
- * source path computer to use via the <code>ATTR_SOURCE_PATH_COMPUTER_ID</code>
- * attribute.
- * </p>
- * @since 3.0
- */
-public interface ISourcePathComputer extends ISourcePathComputerDelegate {
-
- /**
- * Launch configuration attribute to specify a source path computer
- * that should be used for a launch configuration. The value is an identifer
- * of a source path computer extension, or unspecified (<code>null</code>), if the
- * default source path computer should be used. A default source path computer
- * can be associated with a launch configuration type.
- */
- public static final String ATTR_SOURCE_PATH_COMPUTER_ID = DebugPlugin.getUniqueIdentifier() + ".SOURCE_PATH_COMPUTER_ID"; //$NON-NLS-1$
-
- /**
- * Returns the unique identifier for this source path computer.
- *
- * @return the unique identifier for this source path computer
- */
- public String getId();
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputerDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputerDelegate.java
deleted file mode 100644
index c65ec91c9..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputerDelegate.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.debug.core.ILaunchConfiguration;
-
-/**
- * A source path computer delegate computes the default source lookup path
- * (set of source containers that should be considered) for a launch
- * configuration.
- * <p>
- * A source path computer is contributed in plug-in XML via the
- * <code>sourcePathComputers</code> extension point, providing a delegate
- * to compute the default source lookup path specific to a launch
- * configuration.
- * </p>
- * <p>
- * Clients may implement this interface.
- * </p>
- * @see org.eclipse.debug.core.sourcelookup.ISourcePathComputer
- * @since 3.0
- */
-public interface ISourcePathComputerDelegate {
-
- /**
- * Returns a default collection source containers to be considered for the
- * given launch configuration. The collection returned represents the default
- * source lookup path for the given configuration.
- *
- * @param configuration the launch configuration for which a default source lookup path
- * is to be computed
- * @param monitor a progress monitor to be used in case of long operations
- * @return a default collection source containers to be considered for the
- * given launch configuration
- * @exception CoreException if unable to compute a default source lookup path
- */
- public ISourceContainer[] computeSourceContainers(ILaunchConfiguration configuration, IProgressMonitor monitor) throws CoreException;
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainer.java
deleted file mode 100644
index 09c40c345..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainer.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.core.sourcelookup.ISourceLookupDirector;
-
-/**
- * Common function for source containers.
- * <p>
- * Clients implementing source containers should subclass this class.
- * </p>
- * @since 3.0
- */
-public abstract class AbstractSourceContainer extends PlatformObject implements ISourceContainer {
-
- public static final Object[] EMPTY = new Object[0];
-
- private ISourceLookupDirector fDirector;
-
- /**
- * Throws an exception with the given message and underlying exception.
- *
- * @param message error message
- * @param exception underlying exception, or <code>null</code>
- * @throws CoreException
- */
- protected void abort(String message, Throwable exception) throws CoreException {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, message, exception);
- throw new CoreException(status);
- }
-
- /* (non-Javadoc)
- *
- * By default, do nothing. Subclasses should override as requried.
- *
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#dispose()
- */
- public void dispose() {
- fDirector = null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getSourceContainers()
- */
- public ISourceContainer[] getSourceContainers() throws CoreException {
- return new ISourceContainer[0];
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#isComposite()
- */
- public boolean isComposite() {
- return false;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#init(org.eclipse.debug.internal.core.sourcelookup.ISourceLookupDirector)
- */
- public void init(ISourceLookupDirector director) {
- fDirector = director;
- }
-
- /**
- * Returns the source lookup director this source container registered
- * in, or <code>null</code> if none.
- *
- * @return the source lookup director this source container registered
- * in, or <code>null</code> if none
- */
- protected ISourceLookupDirector getDirector() {
- return fDirector;
- }
-
- /**
- * Returns whether this container's source lookup director is configured
- * to search for duplicate source elements.
- *
- * @return whether this container's source lookup director is configured
- * to search for duplicate source elements
- */
- protected boolean isFindDuplicates() {
- return getDirector().isFindDuplicates();
- }
-
- /**
- * Returns the source container type identified by the given id,
- * or <code>null</code> if none.
- *
- * @param id source container type identifier
- * @return source container type or <code>null</code>
- */
- protected ISourceContainerType getSourceContainerType(String id) {
- return DebugPlugin.getDefault().getLaunchManager().getSourceContainerType(id);
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainerTypeDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainerTypeDelegate.java
deleted file mode 100644
index 9d07e21c9..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainerTypeDelegate.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerTypeDelegate;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-/**
- * Common function for source container type delegates.
- * <p>
- * Clients implementing source container delegates should subclass this class.
- * </p>
- * @since 3.0
- */
-public abstract class AbstractSourceContainerTypeDelegate implements ISourceContainerTypeDelegate {
-
- /**
- * Throws an exception with the given message and underlying exception.
- *
- * @param message error message
- * @param exception underlying exception, or <code>null</code>
- * @throws CoreException
- */
- protected void abort(String message, Throwable exception) throws CoreException {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, message, exception);
- throw new CoreException(status);
- }
-
- /**
- * Creates and returns a new XML document.
- *
- * @return a new XML document
- * @throws CoreException if unable to create a new document
- */
- protected Document newDocument()throws CoreException {
- return DebugPlugin.newDocument();
- }
-
- /**
- * Returns the given XML document as a string.
- *
- * @param document document to serialize
- * @return the given XML document as a string
- * @throws CoreException if unable to serialize the document
- */
- protected String serializeDocument(Document document) throws CoreException {
- return DebugPlugin.serializeDocument(document);
- }
-
- /**
- * Parses the given XML document, returning its root element.
- *
- * @param document XML document as a string
- * @return the document's root element
- * @throws CoreException if unable to parse the document
- */
- protected Element parseDocument(String document) throws CoreException {
- return DebugPlugin.parseDocument(document);
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ArchiveSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ArchiveSourceContainer.java
deleted file mode 100644
index 0d311228a..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ArchiveSourceContainer.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.core.sourcelookup.ISourceLookupDirector;
-
-/**
- * Archive source container for an archive in the workspace. Returns instances
- * of <code>ZipEntryStorage</code> as source elemetns.
- * <p>
- * Clients may instantiate this class. This class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class ArchiveSourceContainer extends AbstractSourceContainer {
-
- private IFile fFile;
- private boolean fDetectRoot;
- private ExternalArchiveSourceContainer fDelegateContainer;
-
- /**
- * Unique identifier for the archive source container type
- * (value <code>org.eclipse.debug.core.containerType.archive</code>).
- */
- public static final String TYPE_ID = DebugPlugin.getUniqueIdentifier() + ".containerType.archive"; //$NON-NLS-1$
-
- /**
- * Creates an archive source container on the given file.
- *
- * @param archive archive in the workspace
- * @param detectRootPath whether a root path should be detected. When
- * <code>true</code>, searching is performed relative to a root path
- * within the archive based on fully qualified file names. The root
- * path is automatically determined when the first successful search
- * is performed. For example, when searching for a file named
- * <code>a/b/c.d</code>, and an entry in the archive named
- * <code>r/a/b/c.d</code> exists, the root path is set to <code>r</code>.
- * From that point on, searching is performed relative to <code>r</code>.
- * When <code>false</code>, searching is performed by
- * matching file names as suffixes to the entries in the archive.
- */
- public ArchiveSourceContainer(IFile archive, boolean detectRootPath) {
- fFile = archive;
- fDetectRoot = detectRootPath;
- if (archive.exists() && archive.getLocation() != null) {
- fDelegateContainer = new ExternalArchiveSourceContainer(archive.getLocation().toOSString(), detectRootPath);
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getName()
- */
- public String getName() {
- return fFile.getName();
- }
-
- /**
- * Returns the associated file in the workspace.
- *
- * @return associated file in the workspace
- */
- public IFile getFile() {
- return fFile;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType()
- */
- public ISourceContainerType getType() {
- return getSourceContainerType(TYPE_ID);
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- return obj instanceof ArchiveSourceContainer &&
- ((ArchiveSourceContainer)obj).getName().equals(getName());
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return getName().hashCode();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainer#findSourceElements(java.lang.String)
- */
- public Object[] findSourceElements(String name) throws CoreException {
- ExternalArchiveSourceContainer container = getDelegateContainer();
- if (container != null) {
- return container.findSourceElements(name);
- }
- return EMPTY;
- }
-
- /**
- * Returns the underlying external archive source container.
- *
- * @return underlying external archive source container
- * @since 3.0.1.1
- */
- private ExternalArchiveSourceContainer getDelegateContainer() {
- return fDelegateContainer;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainer#init(org.eclipse.debug.core.sourcelookup.ISourceLookupDirector)
- */
- public void init(ISourceLookupDirector director) {
- super.init(director);
- if (fDelegateContainer != null) {
- fDelegateContainer.init(director);
- }
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainer#dispose()
- */
- public void dispose() {
- super.dispose();
- if (fDelegateContainer != null) {
- fDelegateContainer.dispose();
- }
- }
-
- /**
- * Returns whether root paths are automatically detected in this
- * archive source container.
- *
- * @return whether root paths are automatically detected in this
- * archive source container
- * @since 3.0.1.1
- */
- public boolean isDetectRoot() {
- return fDetectRoot;
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/CompositeSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/CompositeSourceContainer.java
deleted file mode 100644
index 7ab80f92c..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/CompositeSourceContainer.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-
-/**
- * A source container of source containers.
- * <p>
- * Clients implementing composite source containers should subclass
- * this class.
- * </p>
- * @since 3.0
- */
-public abstract class CompositeSourceContainer extends AbstractSourceContainer {
-
- private ISourceContainer[] fContainers;
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#isComposite()
- */
- public boolean isComposite() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#findSourceElements(java.lang.String)
- */
- public Object[] findSourceElements(String name) throws CoreException {
- return findSourceElements(name, getSourceContainers());
- }
-
- /**
- * Returns a collection of source elements in the given containers corresponding to
- * the given name. Returns an empty collection if no source elements are found.
- * This source container's source lookup director specifies if duplicate
- * source elements should be searched for, via <code>isFindDuplicates()</code>.
- * When <code>false</code> the returned collection should contain at most one
- * source element. If this is a composite container, the containers contained
- * by this container are also searched.
- * <p>
- * The format of the given name is implementation specific but generally conforms
- * to the format of a file name. If a source container does not recognize the
- * name format provided, an empty collection should be returned. A source container
- * may or may not require names to be fully qualified (i.e. be qualified with directory
- * names).
- * </p>
- * @param name the name of the source element to search for
- * @param containers the containers to search
- * @return a collection of source elements corresponding to the given name
- * @exception CoreException if an exception occurrs while searching for source elements
- */
- protected Object[] findSourceElements(String name, ISourceContainer[] containers) throws CoreException {
- List results = null;
- CoreException single = null;
- MultiStatus multiStatus = null;
- if (isFindDuplicates()) {
- results = new ArrayList();
- }
- for (int i = 0; i < containers.length; i++) {
- ISourceContainer container = containers[i];
- try {
- Object[] objects = container.findSourceElements(name);
- if (objects.length > 0) {
- if (isFindDuplicates()) {
- for (int j = 0; j < objects.length; j++) {
- results.add(objects[j]);
- }
- } else {
- if (objects.length == 1) {
- return objects;
- }
- return new Object[]{objects[0]};
- }
- }
- } catch (CoreException e) {
- if (single == null) {
- single = e;
- } else if (multiStatus == null) {
- multiStatus = new MultiStatus(DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, new IStatus[]{single.getStatus()}, SourceLookupMessages.getString("CompositeSourceContainer.0"), null); //$NON-NLS-1$
- multiStatus.add(e.getStatus());
- } else {
- multiStatus.add(e.getStatus());
- }
- }
- }
- if (results == null) {
- if (multiStatus != null) {
- throw new CoreException(multiStatus);
- } else if (single != null) {
- throw single;
- }
- return EMPTY;
- }
- return results.toArray();
- }
-
- /**
- * Creates the source containers in this composite container.
- * Subclasses should override this methods.
- *
- * @throws CoreException if unable to create the containers
- */
- protected abstract ISourceContainer[] createSourceContainers() throws CoreException;
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getSourceContainers()
- */
- public synchronized ISourceContainer[] getSourceContainers() throws CoreException {
- if (fContainers == null) {
- fContainers = createSourceContainers();
- for (int i = 0; i < fContainers.length; i++) {
- ISourceContainer container = fContainers[i];
- container.init(getDirector());
- }
- }
- return fContainers;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#dispose()
- */
- public void dispose() {
- super.dispose();
- if (fContainers != null) {
- for (int i = 0; i < fContainers.length; i++) {
- ISourceContainer container = fContainers[i];
- container.dispose();
- }
- }
- fContainers = null;
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DefaultSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DefaultSourceContainer.java
deleted file mode 100644
index f3f5c6b82..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DefaultSourceContainer.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.core.sourcelookup.ISourceLookupDirector;
-import org.eclipse.debug.core.sourcelookup.ISourcePathComputer;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-
-/**
- * A source container that computers the default source lookup path
- * for a launch configuration on each launch using a launch configuration's
- * associated source path computer.
- * <p>
- * Clients may instantiate this class. This class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class DefaultSourceContainer extends CompositeSourceContainer {
-
- /**
- * Unique identifier for the default source container type
- * (value <code>org.eclipse.debug.core.containerType.default</code>).
- */
- public static final String TYPE_ID = DebugPlugin.getUniqueIdentifier() + ".containerType.default"; //$NON-NLS-1$
-
- /**
- * Constructs a default source container.
- */
- public DefaultSourceContainer() {
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- return obj instanceof DefaultSourceContainer;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return getClass().hashCode();
- }
-
- /**
- * Returns the launch configuration for which a default source lookup
- * path will be computed, or <code>null</code> if none.
- *
- * @return the launch configuration for which a default source lookup
- * path will be computed, or <code>null</code>
- */
- protected ILaunchConfiguration getLaunchConfiguration() {
- ISourceLookupDirector director = getDirector();
- if (director != null) {
- return director.getLaunchConfiguration();
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType()
- */
- public ISourceContainerType getType() {
- return getSourceContainerType(TYPE_ID);
- }
-
- /**
- * Returns the source path computer to use, or <code>null</code>
- * if none.
- *
- * @return the source path computer to use, or <code>null</code>
- * if none
- */
- private ISourcePathComputer getSourcePathComputer() {
- return getDirector().getSourcePathComputer();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getName()
- */
- public String getName() {
- return SourceLookupMessages.getString("DefaultSourceContainer.0"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.containers.CompositeSourceContainer#createSourceContainers()
- */
- protected ISourceContainer[] createSourceContainers() throws CoreException {
- ISourcePathComputer sourcePathComputer = getSourcePathComputer();
- if (sourcePathComputer == null) {
- return new ISourceContainer[0];
- }
- return sourcePathComputer.computeSourceContainers(getLaunchConfiguration(), null);
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DirectorySourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DirectorySourceContainer.java
deleted file mode 100644
index a6d85e83c..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DirectorySourceContainer.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-
-/**
- * A directory in the local file system. Source elements returned
- * from <code>findSourceElements(...)</code> are instances
- * of <code>LocalFileStorage</code>.
- * <p>
- * Clients may instantiate this class. This class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-
-public class DirectorySourceContainer extends CompositeSourceContainer {
-
- // root directory
- private File fDirectory;
- // whether to search subfolders
- private boolean fSubfolders = false;
- /**
- * Unique identifier for the directory source container type
- * (value <code>org.eclipse.debug.core.containerType.directory</code>).
- */
- public static final String TYPE_ID = DebugPlugin.getUniqueIdentifier() + ".containerType.directory"; //$NON-NLS-1$
-
- /**
- * Consutructs an external folder container for the
- * directory identified by the given path.
- *
- * @param dirPath path to a directory in the local file system
- * @param subfolders whether folders within the root directory
- * should be searched for source elements
- */
- public DirectorySourceContainer(IPath dirPath, boolean subfolders) {
- this(dirPath.toFile(), subfolders);
- }
-
- /**
- * Consutructs an external folder container for the
- * directory identified by the given file.
- *
- * @param dir a directory in the local file system
- * @param subfolders whether folders within the root directory
- * should be searched for source elements
- */
- public DirectorySourceContainer(File dir, boolean subfolders) {
- fDirectory = dir;
- fSubfolders = subfolders;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getName()
- */
- public String getName() {
- return fDirectory.getName();
- }
-
- /**
- * Returns the root directory in the local file system associated
- * with this source container.
- *
- * @return the root directory in the local file system associated
- * with this source container
- */
- public File getDirectory() {
- return fDirectory;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType()
- */
- public ISourceContainerType getType() {
- return getSourceContainerType(TYPE_ID);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#findSourceElements(java.lang.String)
- */
- public Object[] findSourceElements(String name) throws CoreException {
- ArrayList sources = new ArrayList();
- File directory = getDirectory();
- File file = new File(directory, name);
- if (file.exists() && file.isFile()) {
- sources.add(new LocalFileStorage(file));
- }
-
- //check subfolders
- if ((isFindDuplicates() && fSubfolders) || (sources.isEmpty() && fSubfolders)) {
- ISourceContainer[] containers = getSourceContainers();
- for (int i=0; i < containers.length; i++) {
- Object[] objects = containers[i].findSourceElements(name);
- if (objects == null || objects.length == 0) {
- continue;
- }
- if (isFindDuplicates()) {
- for(int j=0; j < objects.length; j++)
- sources.add(objects[j]);
- } else {
- sources.add(objects[0]);
- break;
- }
- }
- }
-
- if(sources.isEmpty())
- return EMPTY;
- return sources.toArray();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#isComposite()
- */
- public boolean isComposite() {
- return fSubfolders;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- if (obj instanceof DirectorySourceContainer) {
- DirectorySourceContainer container = (DirectorySourceContainer) obj;
- return container.getDirectory().equals(getDirectory());
- }
- return false;
- }
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return getDirectory().hashCode();
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.containers.CompositeSourceContainer#createSourceContainers()
- */
- protected ISourceContainer[] createSourceContainers() throws CoreException {
- if (isComposite()) {
- String[] files = fDirectory.list();
- if (files != null) {
- List dirs = new ArrayList();
- for (int i = 0; i < files.length; i++) {
- String name = files[i];
- File file = new File(getDirectory(), name);
- if (file.exists() && file.isDirectory()) {
- dirs.add(new DirectorySourceContainer(file, true));
- }
- }
- ISourceContainer[] containers = (ISourceContainer[]) dirs.toArray(new ISourceContainer[dirs.size()]);
- for (int i = 0; i < containers.length; i++) {
- ISourceContainer container = containers[i];
- container.init(getDirector());
- }
- return containers;
- }
- }
- return new ISourceContainer[0];
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ExternalArchiveSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ExternalArchiveSourceContainer.java
deleted file mode 100644
index dfa3ed052..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ExternalArchiveSourceContainer.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import java.io.IOException;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupUtils;
-
-/**
- * An archive in the local file system. Returns instances
- * of <code>ZipEntryStorage</code> as source elemetns.
- * <p>
- * Clients may instantiate this class. This class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class ExternalArchiveSourceContainer extends AbstractSourceContainer {
-
- private boolean fDetectRoots = false;
- private Map fRoots = new HashMap(5);
- private String fArchivePath = null;
- /**
- * Unique identifier for the external archive source container type
- * (value <code>org.eclipse.debug.core.containerType.externalArchive</code>).
- */
- public static final String TYPE_ID = DebugPlugin.getUniqueIdentifier() + ".containerType.externalArchive"; //$NON-NLS-1$
-
- /**
- * Creates an archive source container on the archive at the
- * specified location in the local file system.
- *
- * @param archivePath path to the archive in the local file system
- * @param detectRootPaths whether root container paths should be detected. When
- * <code>true</code>, searching is performed relative to a root path
- * within the archive based on fully qualified file names. A root
- * path is automatically determined for each file type when the first
- * successful search is performed. For example, when searching for a file
- * named <code>a/b/c.d</code>, and an entry in the archive named
- * <code>r/a/b/c.d</code> exists, the root path is set to <code>r</code>
- * for file type <code>d</code>.
- * From that point on, searching is performed relative to <code>r</code>
- * for files of type <code>d</code>.
- * When searching for an unqualified file name, root containers are not
- * considered.
- * When <code>false</code>, searching is performed by
- * matching file names as suffixes to the entries in the archive.
- */
- public ExternalArchiveSourceContainer(String archivePath, boolean detectRootPaths) {
- fArchivePath = archivePath;
- fDetectRoots = detectRootPaths;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#findSourceElements(java.lang.String)
- */
- public Object[] findSourceElements(String name) throws CoreException {
- name = name.replace('\\', '/');
- ZipFile file = getArchive();
- synchronized (file) {
- boolean isQualfied = name.indexOf('/') > 0;
- if (fDetectRoots && isQualfied) {
- String root = getRoot(file, name);
- if (root != null) {
- if (root.length() > 0) {
- name = root + name;
- }
- ZipEntry entry = file.getEntry(name);
- if (entry != null) {
- return new Object[]{new ZipEntryStorage(file, entry)};
- }
- }
- } else {
- // try exact match
- ZipEntry entry = file.getEntry(name);
- if (entry != null) {
- // can't be any dups if there is an exact match
- return new Object[]{new ZipEntryStorage(file, entry)};
- }
- // search
- Enumeration entries = file.entries();
- List matches = null;
- while (entries.hasMoreElements()) {
- entry = (ZipEntry)entries.nextElement();
- String entryName = entry.getName();
- if (entryName.endsWith(name)) {
- if (isQualfied || entryName.length() == name.length() || entryName.charAt(entryName.length() - name.length() - 1) == '/') {
- if (isFindDuplicates()) {
- if (matches == null) {
- matches = new ArrayList();
- }
- matches.add(new ZipEntryStorage(file, entry));
- } else {
- return new Object[]{new ZipEntryStorage(file, entry)};
- }
- }
- }
- }
- if (matches != null) {
- return matches.toArray();
- }
- }
- }
- return EMPTY;
- }
-
- /**
- * Returns the root path in this archive for the given file name, based
- * on its type, or <code>null</code> if none. Detects a root if a root has
- * not yet been detected for the given file type.
- *
- * @param file zip file to search in
- * @param name file name
- * @exception CoreException if an exception occurrs while detecting the root
- */
- private String getRoot(ZipFile file, String name) throws CoreException {
- int index = name.lastIndexOf('.');
- String fileType = null;
- if (index >= 0) {
- fileType = name.substring(index);
- } else {
- // no filetype, use "" as key
- fileType = ""; //$NON-NLS-1$
- }
- String root = (String) fRoots.get(fileType);
- if (root == null) {
- root = detectRoot(file, name);
- if (root != null) {
- fRoots.put(fileType, root);
- }
- }
- return root;
- }
-
- /**
- * Detects and returns the root path in this archive by searching for an entry
- * with the given name, as a suffix.
- *
- * @param file zip file to search in
- * @param name entry to search for
- * @return root
- * @exception CoreException if an exception occurrs while detecting the root
- */
- private String detectRoot(ZipFile file, String name) throws CoreException {
- synchronized (file) {
- Enumeration entries = file.entries();
- try {
- while (entries.hasMoreElements()) {
- ZipEntry entry = (ZipEntry)entries.nextElement();
- String entryName = entry.getName();
- if (entryName.endsWith(name)) {
- int rootLength = entryName.length() - name.length();
- if (rootLength > 0) {
- return entryName.substring(0, rootLength);
- }
- return ""; //$NON-NLS-1$
- }
- }
- } catch (IllegalStateException e) {
- abort(MessageFormat.format(SourceLookupMessages.getString("ExternalArchiveSourceContainer.1"), new String[] {getName()}), e); //$NON-NLS-1$
- }
- }
- return null;
- }
-
- /**
- * Returns the archive to search in.
- *
- * @throws CoreException if unable to access the archive
- */
- private ZipFile getArchive() throws CoreException {
- try {
- return SourceLookupUtils.getZipFile(fArchivePath);
- } catch (IOException e) {
- abort(MessageFormat.format(SourceLookupMessages.getString("ExternalArchiveSourceContainer.2"), new String[]{fArchivePath}), e); //$NON-NLS-1$
- }
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getName()
- */
- public String getName() {
- return fArchivePath;
- }
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType()
- */
- public ISourceContainerType getType() {
- return getSourceContainerType(TYPE_ID);
- }
-
- /**
- * Returns whether root paths are automatically detected in this
- * archive source container.
- *
- * @return whether root paths are automatically detected in this
- * archive source container
- */
- public boolean isDetectRoot() {
- return fDetectRoots;
- }
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- return obj instanceof ExternalArchiveSourceContainer &&
- ((ExternalArchiveSourceContainer)obj).getName().equals(getName());
- }
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return getName().hashCode();
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.debug.core.sourcelookup.ISourceContainer#dispose()
- */
- public void dispose() {
- super.dispose();
- fRoots.clear();
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/FolderSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/FolderSourceContainer.java
deleted file mode 100644
index 3310f9f31..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/FolderSourceContainer.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.internal.core.sourcelookup.containers.*;
-
-/**
- * A folder in the workspace.
- * <p>
- * Clients may instantiate this class. This class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class FolderSourceContainer extends ContainerSourceContainer {
-
- /**
- * Unique identifier for the folder source container type
- * (value <code>org.eclipse.debug.core.containerType.folder</code>).
- */
- public static final String TYPE_ID = DebugPlugin.getUniqueIdentifier() + ".containerType.folder"; //$NON-NLS-1$
-
-
- /**
- * Constructs a source container on the given folder.
- *
- * @param folder the folder to search for source in
- * @param subfolders whether to search nested folders
- */
- public FolderSourceContainer(IContainer folder, boolean subfolders) {
- super(folder, subfolders);
- }
-
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType()
- */
- public ISourceContainerType getType() {
- return getSourceContainerType(TYPE_ID);
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/LocalFileStorage.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/LocalFileStorage.java
deleted file mode 100644
index dbdf75fbc..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/LocalFileStorage.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-
-/**
- * Implementation of storage for a local file
- * (<code>java.io.File</code>).
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * @see IStorage
- * @since 3.0
- */
-public class LocalFileStorage extends PlatformObject implements IStorage {
-
- /**
- * The file this storage refers to.
- */
- private File fFile;
-
- /**
- * Constructs and returns storage for the given file.
- *
- * @param file a local file
- */
- public LocalFileStorage(File file){
- setFile(file);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#getContents()
- */
- public InputStream getContents() throws CoreException {
- try {
- return new FileInputStream(getFile());
- } catch (IOException e){
- throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, SourceLookupMessages.getString("LocalFileStorage.0"), e)); //$NON-NLS-1$
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#getFullPath()
- */
- public IPath getFullPath() {
- try {
- return new Path(getFile().getCanonicalPath());
- } catch (IOException e) {
- DebugPlugin.log(e);
- return null;
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#getName()
- */
- public String getName() {
- return getFile().getName();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#isReadOnly()
- */
- public boolean isReadOnly() {
- return true;
- }
-
- /**
- * Sets the file associated with this storage
- *
- * @param file a local file
- */
- private void setFile(File file) {
- fFile = file;
- }
-
- /**
- * Returns the file asscoiated with this storage
- *
- * @return file
- */
- public File getFile() {
- return fFile;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object object) {
- return object instanceof LocalFileStorage &&
- getFile().equals(((LocalFileStorage)object).getFile());
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return getFile().hashCode();
- }
-} \ No newline at end of file
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ProjectSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ProjectSourceContainer.java
deleted file mode 100644
index ce0361e43..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ProjectSourceContainer.java
+++ /dev/null
@@ -1,110 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.internal.core.sourcelookup.containers.*;
-
-/**
- * A project in the workspace. Source is searched for in the root project
- * folder and all folders within the project recursively. Optionally,
- * referenced projects may be searched as well.
- * <p>
- * Clients may instantiate this class. This class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class ProjectSourceContainer extends ContainerSourceContainer {
-
- boolean fReferencedProjects=false;
- /**
- * Unique identifier for the project source container type
- * (value <code>org.eclipse.debug.core.containerType.project</code>).
- */
- public static final String TYPE_ID = DebugPlugin.getUniqueIdentifier() + ".containerType.project"; //$NON-NLS-1$
-
- /**
- * Constructs a project source container.
- *
- * @param project the project to search for source in
- * @param referenced whether referenced projects should be considered
- */
- public ProjectSourceContainer(IProject project, boolean referenced) {
- super(project, true);
- fReferencedProjects = referenced;
- }
-
- /**
- * Returns whether referenced projects are considered.
- *
- * @return whether referenced projects are considered
- */
- public boolean isSearchReferencedProjects() {
- return fReferencedProjects;
- }
-
- /**
- * Returns the project this source container references.
- *
- * @return the project this source container references
- */
- public IProject getProject() {
- return (IProject) getContainer();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType()
- */
- public ISourceContainerType getType() {
- return getSourceContainerType(TYPE_ID);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#isComposite()
- */
- public boolean isComposite() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.containers.CompositeSourceContainer#createSourceContainers()
- */
- protected ISourceContainer[] createSourceContainers() throws CoreException {
- if (getProject().isOpen()) {
- if (isSearchReferencedProjects()) {
- IProject project = getProject();
- IProject[] projects = project.getReferencedProjects();
- ISourceContainer[] folders = super.createSourceContainers();
- List all = new ArrayList(folders.length + projects.length);
- for (int i = 0; i < folders.length; i++) {
- all.add(folders[i]);
- }
- for (int i = 0; i < projects.length; i++) {
- if (project.exists() && project.isOpen()) {
- ProjectSourceContainer container = new ProjectSourceContainer(projects[i], true);
- container.init(getDirector());
- all.add(container);
- }
- }
- return (ISourceContainer[]) all.toArray(new ISourceContainer[all.size()]);
- }
- return super.createSourceContainers();
- }
- return new ISourceContainer[0];
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/WorkspaceSourceContainer.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/WorkspaceSourceContainer.java
deleted file mode 100644
index 786a55ecd..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/WorkspaceSourceContainer.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.sourcelookup.ISourceContainer;
-import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-
-/**
- * All projects in the workspace.
- * <p>
- * Clients may instantiate this class. This class is not intended to
- * be subclassed.
- * </p>
- * @since 3.0
- */
-public class WorkspaceSourceContainer extends CompositeSourceContainer {
-
- /**
- * Unique identifier for the workspace source container type
- * (value <code>org.eclipse.debug.core.containerType.workspace</code>).
- */
- public static final String TYPE_ID = DebugPlugin.getUniqueIdentifier() + ".containerType.workspace"; //$NON-NLS-1$
-
- public WorkspaceSourceContainer() {
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getName()
- */
- public String getName() {
- return SourceLookupMessages.getString("WorkspaceSourceContainer.0"); //$NON-NLS-1$
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- return obj instanceof WorkspaceSourceContainer;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return ResourcesPlugin.getWorkspace().hashCode();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType()
- */
- public ISourceContainerType getType() {
- return getSourceContainerType(TYPE_ID);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.debug.internal.core.sourcelookup.containers.CompositeSourceContainer#createSourceContainers()
- */
- protected ISourceContainer[] createSourceContainers() throws CoreException {
- IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- ISourceContainer[] containers = new ISourceContainer[projects.length];
- for (int i = 0; i < projects.length; i++) {
- ISourceContainer container = new ProjectSourceContainer(projects[i], false);
- container.init(getDirector());
- containers[i] = container;
- }
- return containers;
- }
-
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ZipEntryStorage.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ZipEntryStorage.java
deleted file mode 100644
index e5ad45a72..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ZipEntryStorage.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.core.sourcelookup.containers;
-
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.internal.core.sourcelookup.SourceLookupMessages;
-
-/**
- * Storage implementation for zip entries.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * @see IStorage
- * @since 3.0
- */
-public class ZipEntryStorage extends PlatformObject implements IStorage {
-
- /**
- * Zip file associated with zip entry
- */
- private ZipFile fArchive;
-
- /**
- * Zip entry
- */
- private ZipEntry fZipEntry;
-
- /**
- * Constructs a new storage implementation for the
- * given zip entry in the specified zip file
- *
- * @param archive zip file
- * @param entry zip entry
- */
- public ZipEntryStorage(ZipFile archive, ZipEntry entry) {
- setArchive(archive);
- setZipEntry(entry);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#getContents()
- */
- public InputStream getContents() throws CoreException {
- try {
- return getArchive().getInputStream(getZipEntry());
- } catch (IOException e) {
- throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, SourceLookupMessages.getString("ZipEntryStorage.0"), e)); //$NON-NLS-1$
- }
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#getFullPath()
- */
- public IPath getFullPath() {
- return new Path(getArchive().getName()).append(getZipEntry().getName());
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#getName()
- */
- public String getName() {
- int index = getZipEntry().getName().lastIndexOf('\\');
- if (index == -1) {
- index = getZipEntry().getName().lastIndexOf('/');
- }
- if (index == -1) {
- return getZipEntry().getName();
- }
- return getZipEntry().getName().substring(index + 1);
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.core.resources.IStorage#isReadOnly()
- */
- public boolean isReadOnly() {
- return true;
- }
-
- /**
- * Sets the archive containing the zip entry.
- *
- * @param archive a zip file
- */
- private void setArchive(ZipFile archive) {
- fArchive = archive;
- }
-
- /**
- * Returns the archive containing the zip entry.
- *
- * @return zip file
- */
- public ZipFile getArchive() {
- return fArchive;
- }
-
- /**
- * Sets the entry that contains the source.
- *
- * @param entry the entry that contains the source
- */
- private void setZipEntry(ZipEntry entry) {
- fZipEntry = entry;
- }
-
- /**
- * Returns the entry that contains the source
- *
- * @return zip entry
- */
- public ZipEntry getZipEntry() {
- return fZipEntry;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#equals(java.lang.Object)
- */
- public boolean equals(Object object) {
- return object instanceof ZipEntryStorage &&
- getArchive().equals(((ZipEntryStorage)object).getArchive()) &&
- getZipEntry().getName().equals(((ZipEntryStorage)object).getZipEntry().getName());
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#hashCode()
- */
- public int hashCode() {
- return getZipEntry().getName().hashCode();
- }
-}
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/package.html b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/package.html
deleted file mode 100644
index 7125fb5a2..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/package.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Eclipse Debug Platform</title>
-</head>
-
-<body bgcolor="#FFFFFF">
-
-<p>Provides implementations of common source containers supporting source lookup.</p>
-
-<h2>Package Specification</h2>
-
-<p>This package provides implementations of common source containers, such as
- archives, folders, and projects.</p>
-
-<blockquote>&nbsp;</blockquote>
-</body>
-</html>
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/package.html b/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/package.html
deleted file mode 100644
index 8866be6cc..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/package.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Eclipse Debug Platform</title>
-</head>
-
-<body bgcolor="#FFFFFF">
-
-<p>Provides support for source lookup.</p>
-
-<h2>Package Specification</h2>
-
-<p>This package provides classes and interfaces to support source lookup. A source
- lookup director is a persistable source locator that directs source lookup among
- a collection of source lookup participants and a collection of source containers.
- Each source lookup participant is a source locator itself, which allows more
- than one source locator to participate in source lookup for a launch. Each source
- lookup participant searches for source in the source containers managed by its
- director, and each participant is notified of changes in the set of source containers
- being searched.</p>
-<p>A source lookup participant participates in source lookup by searching an ordered
- list of source containers for source elements corresponding to a debug artifact.
- For example, a participant may be asked to find source corresponding to a stack
- frame or breakpoint. An implementation of a source lookup participant is debug
- model specific, since it must convert the debug model artifact (stack frame,
- breakpoint, etc.), into a source name that can be recognized by a source container,
- to search for source elements. Source containers are generally debug model independent,
- whereas source lookup participants are debug model specific.</p>
-
-<blockquote>&nbsp;</blockquote>
-</body>
-</html>
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java
deleted file mode 100644
index 84b18980a..000000000
--- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java
+++ /dev/null
@@ -1,1040 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.debug.internal.core;
-
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IMarkerDelta;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.core.DebugException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IBreakpointListener;
-import org.eclipse.debug.core.IBreakpointManager;
-import org.eclipse.debug.core.IBreakpointManagerListener;
-import org.eclipse.debug.core.IBreakpointsListener;
-import org.eclipse.debug.core.model.IBreakpoint;
-
-/**
- * The breakpoint manager manages all registered breakpoints
- * for the debug plugin. It is instantiated by the debug plugin at startup.
- *
- * @see IBreakpointManager
- */
-public class BreakpointManager implements IBreakpointManager, IResourceChangeListener {
-
- /**
- * Constants for breakpoint add/remove/change updates
- */
- private final static int ADDED = 0;
- private final static int REMOVED = 1;
- private final static int CHANGED = 2;
-
- /**
- * String constants corresponding to XML extension keys
- */
- private final static String CLASS = "class"; //$NON-NLS-1$
-
- /**
- * Attribute name for the <code>"markerType"</code> attribute of
- * a breakpoint extension.
- */
- private static final String MARKER_TYPE= "markerType"; //$NON-NLS-1$
-
- /**
- * Attribute name for the <code>"name"</code> attribute of a
- * breakpoint extension.
- */
- private static final String TYPE_NAME= "name"; //$NON-NLS-1$
-
- /**
- * Preference constant used to persist the auto group
- */
- private static final String PREF_AUTO_GROUP = "AUTO_GROUP"; //$NON-NLS-1$
-
- /**
- * A collection of breakpoints registered with this manager.
- */
- private Vector fBreakpoints= null;
-
- /**
- * Collection of breakpoints being added currently. Used to
- * suppress change notication of "REGISTERED" attribute when
- * being added.
- */
- private List fSuppressChange = new ArrayList();
-
- /**
- * A table of breakpoint extension points, keyed by
- * marker type
- * key: a marker type
- * value: the breakpoint extension which corresponds to that marker type
- */
- private HashMap fBreakpointExtensions;
-
- /**
- * Collection of markers that associates markers to breakpoints
- * key: a marker
- * value: the breakpoint which contains that marker
- */
- private HashMap fMarkersToBreakpoints;
-
- /**
- * Collection of breakpoint listeners.
- */
- private ListenerList fBreakpointListeners= new ListenerList(6);
-
- /**
- * Collection of (multi) breakpoint listeners.
- */
- private ListenerList fBreakpointsListeners= new ListenerList(6);
-
- /**
- * Singleton resource delta visitor which handles marker
- * additions, changes, and removals.
- */
- private static BreakpointManagerVisitor fgVisitor;
-
- /**
- * Whether or not this breakpoint manager is enabled.
- */
- private boolean fEnabled= true;
-
- /**
- * Collection of breakpoint manager listeners which are
- * notified when this manager's enablement changes.
- */
- private ListenerList fBreakpointManagerListeners= new ListenerList(2);
-
- /**
- * Constructs a new breakpoint manager.
- */
- public BreakpointManager() {
- fMarkersToBreakpoints= new HashMap(10);
- fBreakpointExtensions= new HashMap(15);
- }
-
- /**
- * Loads all the breakpoints on the given resource.
- *
- * @param resource the resource which contains the breakpoints
- * @param notify whether to notify of the breakpoint additions
- */
- private void loadBreakpoints(IResource resource, boolean notify) throws CoreException {
- initBreakpointExtensions();
- IMarker[] markers= getPersistedMarkers(resource);
- List added = new ArrayList();
- for (int i = 0; i < markers.length; i++) {
- IMarker marker= markers[i];
- try {
- IBreakpoint breakpoint = createBreakpoint(marker);
- if (breakpoint.isRegistered()) {
- added.add(breakpoint);
- }
- } catch (DebugException e) {
- DebugPlugin.log(e);
- }
- }
- addBreakpoints((IBreakpoint[])added.toArray(new IBreakpoint[added.size()]), notify, true);
- }
-
- /**
- * Returns the persisted markers associated with the given resource.
- *
- * Delete any invalid breakpoint markers. This is done at startup rather
- * than shutdown, since the changes made at shutdown are not persisted as
- * the workspace state has already been saved. See bug 7683.
- *
- * Since the <code>TRANSIENT</code> marker attribute/feature has been added,
- * we no longer have to manully delete non-persisted markers - the platform
- * does this for us (at shutdown, transient markers are not saved). However,
- * the code is still present to delete non-persisted markers from old
- * workspaces.
- */
- protected IMarker[] getPersistedMarkers(IResource resource) throws CoreException {
- IMarker[] markers= resource.findMarkers(IBreakpoint.BREAKPOINT_MARKER, true, IResource.DEPTH_INFINITE);
- final List delete = new ArrayList();
- List persisted= new ArrayList();
- for (int i = 0; i < markers.length; i++) {
- IMarker marker= markers[i];
- // ensure the marker has a valid model identifier attribute
- // and delete the breakpoint if not
- String modelId = marker.getAttribute(IBreakpoint.ID, null);
- if (modelId == null) {
- // marker with old/invalid format - delete
- delete.add(marker);
- } else if (!marker.getAttribute(IBreakpoint.PERSISTED, true)) {
- // the breakpoint is marked as not to be persisted,
- // schedule for deletion
- delete.add(marker);
- } else {
- persisted.add(marker);
- }
- }
- // delete any markers that are not to be restored
- if (!delete.isEmpty()) {
- final IMarker[] delMarkers = (IMarker[])delete.toArray(new IMarker[delete.size()]);
- IWorkspaceRunnable wr = new IWorkspaceRunnable() {
- public void run(IProgressMonitor pm) throws CoreException {
- for (int i = 0; i < delMarkers.length; i++) {
- IMarker marker = delMarkers[i];
- marker.delete();
- }
- }
- };
- new BreakpointManagerJob(wr).schedule();
- }
- return (IMarker[])persisted.toArray(new IMarker[persisted.size()]);
- }
-
- /**
- * Removes this manager as a resource change listener
- * and removes all breakpoint listeners.
- */
- public void shutdown() {
- getWorkspace().removeResourceChangeListener(this);
- fBreakpointListeners.removeAll();
- }
-
- /**
- * Find the defined breakpoint extensions and cache them for use in recreating
- * breakpoints from markers.
- */
- private void initBreakpointExtensions() {
- IExtensionPoint ep = Platform.getExtensionRegistry().getExtensionPoint(DebugPlugin.getUniqueIdentifier(), DebugPlugin.EXTENSION_POINT_BREAKPOINTS);
- IConfigurationElement[] elements = ep.getConfigurationElements();
- for (int i= 0; i < elements.length; i++) {
- String markerType = elements[i].getAttribute(MARKER_TYPE);
- String className = elements[i].getAttribute(CLASS);
- if (markerType == null) {
- invalidBreakpointExtension(MessageFormat.format(DebugCoreMessages.getString("BreakpointManager.Breakpoint_extension_{0}_missing_required_attribute__markerType_1"), new String[]{elements[i].getDeclaringExtension().getUniqueIdentifier()})); //$NON-NLS-1$
- } else if (className == null){
- invalidBreakpointExtension(MessageFormat.format(DebugCoreMessages.getString("BreakpointManager.Breakpoint_extension_{0}_missing_required_attribute__class_2"), new String[]{elements[i].getDeclaringExtension().getUniqueIdentifier()})); //$NON-NLS-1$
- } else {
- fBreakpointExtensions.put(markerType, elements[i]);
- }
- }
- }
-
- private void invalidBreakpointExtension(String message) {
- IStatus status = new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, message, null);
- DebugPlugin.log(status);
- }
-
- /**
- * Convenience method to get the workspace
- */
- private IWorkspace getWorkspace() {
- return ResourcesPlugin.getWorkspace();
- }
-
- /**
- * @see IBreakpointManager#getBreakpoint(IMarker)
- */
- public IBreakpoint getBreakpoint(IMarker marker) {
- // ensure that breakpoints are initialized
- getBreakpoints0();
- return (IBreakpoint)fMarkersToBreakpoints.get(marker);
- }
-
- /**
- * @see IBreakpointManager#getBreakpoints()
- */
- public IBreakpoint[] getBreakpoints() {
- Vector breakpoints= getBreakpoints0();
- IBreakpoint[] temp= new IBreakpoint[breakpoints.size()];
- breakpoints.copyInto(temp);
- return temp;
- }
-
- /**
- * The BreakpointManager waits to load the breakpoints
- * of the workspace until a request is made to retrieve the
- * breakpoints.
- */
- private Vector getBreakpoints0() {
- if (fBreakpoints == null) {
- initializeBreakpoints();
- }
- return fBreakpoints;
- }
-
- /**
- * @see IBreakpointManager#getBreakpoints(String)
- */
- public IBreakpoint[] getBreakpoints(String modelIdentifier) {
- Vector allBreakpoints= getBreakpoints0();
- ArrayList temp= new ArrayList(allBreakpoints.size());
- Iterator breakpoints= allBreakpoints.iterator();
- while (breakpoints.hasNext()) {
- IBreakpoint breakpoint= (IBreakpoint) breakpoints.next();
- String id= breakpoint.getModelIdentifier();
- if (id != null && id.equals(modelIdentifier)) {
- temp.add(breakpoint);
- }
- }
- return (IBreakpoint[]) temp.toArray(new IBreakpoint[temp.size()]);
- }
-
- /**
- * Loads the list of breakpoints from the breakpoint markers in the
- * workspace. Start listening to resource deltas.
- */
- private void initializeBreakpoints() {
- setBreakpoints(new Vector(10));
- try {
- loadBreakpoints(getWorkspace().getRoot(), false);
- getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_BUILD);
- } catch (CoreException ce) {
- DebugPlugin.log(ce);
- setBreakpoints(new Vector(0));
- }
- }
-
- /**
- * @see IBreakpointManager#isRegistered(IBreakpoint)
- */
- public boolean isRegistered(IBreakpoint breakpoint) {
- return getBreakpoints0().contains(breakpoint);
- }
-
-
- /**
- * @see IBreakpointManager#removeBreakpoint(IBreakpoint, boolean)
- */
- public void removeBreakpoint(IBreakpoint breakpoint, boolean delete) throws CoreException {
- removeBreakpoints(new IBreakpoint[]{breakpoint}, delete);
- }
-
- /**
- * @see IBreakpointManager#removeBreakpoints(IBreakpoint[], boolean)
- */
- public void removeBreakpoints(IBreakpoint[] breakpoints, final boolean delete) throws CoreException {
- final List remove = new ArrayList(breakpoints.length);
- for (int i = 0; i < breakpoints.length; i++) {
- IBreakpoint breakpoint = breakpoints[i];
- if (getBreakpoints0().contains(breakpoint)) {
- remove.add(breakpoint);
- }
- }
- if (!remove.isEmpty()) {
- Iterator iter = remove.iterator();
- while (iter.hasNext()) {
- IBreakpoint breakpoint = (IBreakpoint)iter.next();
- getBreakpoints0().remove(breakpoint);
- fMarkersToBreakpoints.remove(breakpoint.getMarker());
- }
- fireUpdate(remove, null, REMOVED);
- IWorkspaceRunnable r = new IWorkspaceRunnable() {
- public void run(IProgressMonitor montitor) throws CoreException {
- Iterator innerIter = remove.iterator();
- while (innerIter.hasNext()) {
- IBreakpoint breakpoint = (IBreakpoint)innerIter.next();
- if (delete) {
- breakpoint.delete();
- } else {
- // if the breakpoint is being removed from the manager
- // because the project is closing, the breakpoint should
- // remain as registered, otherwise, the breakpoint should
- // be marked as deregistered
- IMarker marker = breakpoint.getMarker();
- if (marker.exists()) {
- IProject project = breakpoint.getMarker().getResource().getProject();
- if (project == null || project.isOpen()) {
- breakpoint.setRegistered(false);
- }
- }
- }
- }
- }
- };
- getWorkspace().run(r, null, 0, null);
- }
- }
-
- /**
- * Create a breakpoint for the given marker. The created breakpoint
- * is of the type specified in the breakpoint extension associated
- * with the gi