diff options
author | cvs2svn | 2006-11-27 21:18:05 +0000 |
---|---|---|
committer | cvs2svn | 2006-11-27 21:18:05 +0000 |
commit | cc2bd49a3941012a259f49b28c81efb20e190b0a (patch) | |
tree | 7fb9c5d5223036fb864fce240d71996b4941ce04 | |
parent | e787acd23008cd09f75cd905dadef1885dc59162 (diff) | |
download | eclipse.platform.debug-cc2bd49a3941012a259f49b28c81efb20e190b0a.tar.gz eclipse.platform.debug-cc2bd49a3941012a259f49b28c81efb20e190b0a.tar.xz eclipse.platform.debug-cc2bd49a3941012a259f49b28c81efb20e190b0a.zip |
This commit was manufactured by cvs2svn to create branch
'I20061128-rebuild'.
Sprout from master 2006-11-27 21:18:04 UTC Darin Wright <darin> 'Bug 156516 Incorrect popuptext in debug icon'
Delete:
org.eclipse.core.variables/.classpath
org.eclipse.core.variables/.cvsignore
org.eclipse.core.variables/.project
org.eclipse.core.variables/.settings/org.eclipse.jdt.core.prefs
org.eclipse.core.variables/.settings/org.eclipse.pde.prefs
org.eclipse.core.variables/META-INF/MANIFEST.MF
org.eclipse.core.variables/about.html
org.eclipse.core.variables/build.properties
org.eclipse.core.variables/component.xml
org.eclipse.core.variables/plugin.properties
org.eclipse.core.variables/plugin.xml
org.eclipse.core.variables/schema/dynamicVariables.exsd
org.eclipse.core.variables/schema/valueVariables.exsd
org.eclipse.core.variables/src/org/eclipse/core/internal/variables/DynamicVariable.java
org.eclipse.core.variables/src/org/eclipse/core/internal/variables/EclipseHomeVariableResolver.java
org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringSubstitutionEngine.java
org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariable.java
org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java
org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ValueVariable.java
org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.java
org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.properties
org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariable.java
org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariableResolver.java
org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariable.java
org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariableManager.java
org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariable.java
org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableInitializer.java
org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableListener.java
org.eclipse.core.variables/src/org/eclipse/core/variables/VariablesPlugin.java
org.eclipse.core.variables/src/org/eclipse/core/variables/package.html
org.eclipse.debug.core/.classpath
org.eclipse.debug.core/.cvsignore
org.eclipse.debug.core/.options
org.eclipse.debug.core/.project
org.eclipse.debug.core/.settings/org.eclipse.jdt.core.prefs
org.eclipse.debug.core/.settings/org.eclipse.pde.prefs
org.eclipse.debug.core/META-INF/MANIFEST.MF
org.eclipse.debug.core/about.html
org.eclipse.debug.core/build.properties
org.eclipse.debug.core/buildnotes_platform-debug.html
org.eclipse.debug.core/component.xml
org.eclipse.debug.core/core/org/eclipse/debug/core/DebugEvent.java
org.eclipse.debug.core/core/org/eclipse/debug/core/DebugException.java
org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java
org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointListener.java
org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManager.java
org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManagerListener.java
org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointsListener.java
org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventFilter.java
org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventSetListener.java
org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionListener.java
org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionManager.java
org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionsListener.java
org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunch.java
org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfiguration.java
org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationListener.java
org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationMigrationDelegate.java
org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java
org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java
org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchDelegate.java
org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchListener.java
org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchManager.java
org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchMode.java
org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener.java
org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener2.java
org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureProvider.java
org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureType.java
org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockListener.java
org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockManager.java
org.eclipse.debug.core/core/org/eclipse/debug/core/IProcessFactory.java
org.eclipse.debug.core/core/org/eclipse/debug/core/IStatusHandler.java
org.eclipse.debug.core/core/org/eclipse/debug/core/IStreamListener.java
org.eclipse.debug.core/core/org/eclipse/debug/core/Launch.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/DebugElement.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugModelProvider.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDropToFrame.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IErrorReportingExpression.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFilteredStep.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFlushableStreamMonitor.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IIndexedValue.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate2.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILineBreakpoint.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate2.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtension.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrievalExtension.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStepFilters.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy2.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISuspendResume.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/ITerminate.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IThread.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValue.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IValueModification.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IVariable.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpression.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionDelegate.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionListener.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchExpressionResult.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/IWatchpoint.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/LaunchConfigurationDelegate.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/LineBreakpoint.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/MemoryByte.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/RuntimeProcess.java
org.eclipse.debug.core/core/org/eclipse/debug/core/model/package.html
org.eclipse.debug.core/core/org/eclipse/debug/core/package.html
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupDirector.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/AbstractSourceLookupParticipant.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/IPersistableSourceLocator2.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainer.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerType.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceContainerTypeDelegate.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupDirector.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourceLookupParticipant.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputer.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/ISourcePathComputerDelegate.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainer.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/AbstractSourceContainerTypeDelegate.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ArchiveSourceContainer.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/CompositeSourceContainer.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ContainerSourceContainer.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DefaultSourceContainer.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/DirectorySourceContainer.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ExternalArchiveSourceContainer.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/FolderSourceContainer.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/LocalFileStorage.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ProjectSourceContainer.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/WorkspaceSourceContainer.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/ZipEntryStorage.java
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/containers/package.html
org.eclipse.debug.core/core/org/eclipse/debug/core/sourcelookup/package.html
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/BreakpointManager.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/EnvironmentVariableResolver.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/ExpressionManager.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/IConfigurationElementConstants.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/InputStreamMonitor.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfiguration.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationComparator.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationInfo.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationType.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchDelegate.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchManager.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchMode.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureManager.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureProvider.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LogicalStructureType.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/MemoryBlockManager.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/NullStreamsProxy.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/OutputStreamMonitor.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/StreamsProxy.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/SystemPropertyResolver.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/SystemVariableResolver.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/WatchExpression.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceContainerType.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLocatorMementoComparator.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupMessages.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupMessages.properties
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourceLookupUtils.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/SourcePathComputer.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ArchiveSourceContainerType.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/DefaultSourceContainerType.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/DirectorySourceContainerType.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ExternalArchiveSourceContainerType.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/FolderSourceContainerType.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/ProjectSourceContainerType.java
org.eclipse.debug.core/core/org/eclipse/debug/internal/core/sourcelookup/containers/WorkspaceSourceContainerType.java
org.eclipse.debug.core/doc/.cvsignore
org.eclipse.debug.core/doc/org_eclipse_debug_core_sourceContainerTypes.html
org.eclipse.debug.core/doc/org_eclipse_debug_core_sourcePathComputers.html
org.eclipse.debug.core/hglegal2003.htm
org.eclipse.debug.core/ngibmcpy2003.gif
org.eclipse.debug.core/plugin.properties
org.eclipse.debug.core/plugin.xml
org.eclipse.debug.core/r2_0_buildnotes_platform-debug.html
org.eclipse.debug.core/r2_1_buildnotes_platform-debug.html
org.eclipse.debug.core/r3_0_buildnotes_platform-debug.html
org.eclipse.debug.core/r3_0_changes.html
org.eclipse.debug.core/r3_1_buildnotes_platform-debug.html
org.eclipse.debug.core/r3_1_changes.html
org.eclipse.debug.core/r3_2_ buildnotes_platform-debug.html
org.eclipse.debug.core/schema/breakpoints.exsd
org.eclipse.debug.core/schema/launchConfigurationComparators.exsd
org.eclipse.debug.core/schema/launchConfigurationTypes.exsd
org.eclipse.debug.core/schema/launchDelegates.exsd
org.eclipse.debug.core/schema/launchModes.exsd
org.eclipse.debug.core/schema/launchers.exsd
org.eclipse.debug.core/schema/logicalStructureProviders.exsd
org.eclipse.debug.core/schema/logicalStructureTypes.exsd
org.eclipse.debug.core/schema/processFactories.exsd
org.eclipse.debug.core/schema/sourceContainerTypes.exsd
org.eclipse.debug.core/schema/sourceLocators.exsd
org.eclipse.debug.core/schema/sourcePathComputers.exsd
org.eclipse.debug.core/schema/statusHandlers.exsd
org.eclipse.debug.core/schema/watchExpressionDelegates.exsd
org.eclipse.debug.core/scripts/exportplugin.xml
org.eclipse.ui.console/.classpath
org.eclipse.ui.console/.cvsignore
org.eclipse.ui.console/.project
org.eclipse.ui.console/.settings/org.eclipse.jdt.core.prefs
org.eclipse.ui.console/.settings/org.eclipse.pde.prefs
org.eclipse.ui.console/META-INF/MANIFEST.MF
org.eclipse.ui.console/about.html
org.eclipse.ui.console/build.properties
org.eclipse.ui.console/component.xml
org.eclipse.ui.console/icons/full/clcl16/clear_co.gif
org.eclipse.ui.console/icons/full/clcl16/lock_co.gif
org.eclipse.ui.console/icons/full/clcl16/pin.gif
org.eclipse.ui.console/icons/full/cview16/console_view.gif
org.eclipse.ui.console/icons/full/dlcl16/clear_co.gif
org.eclipse.ui.console/icons/full/dlcl16/lock_co.gif
org.eclipse.ui.console/icons/full/dlcl16/pin.gif
org.eclipse.ui.console/icons/full/dlcl16/rem_co.gif
org.eclipse.ui.console/icons/full/elcl16/clear_co.gif
org.eclipse.ui.console/icons/full/elcl16/lock_co.gif
org.eclipse.ui.console/icons/full/elcl16/new_con.gif
org.eclipse.ui.console/icons/full/elcl16/pin.gif
org.eclipse.ui.console/icons/full/elcl16/rem_co.gif
org.eclipse.ui.console/icons/full/eview16/console_view.gif
org.eclipse.ui.console/plugin.properties
org.eclipse.ui.console/plugin.xml
org.eclipse.ui.console/schema/consoleFactories.exsd
org.eclipse.ui.console/schema/consolePageParticipants.exsd
org.eclipse.ui.console/schema/consolePatternMatchListeners.exsd
org.eclipse.ui.console/scripts/exportplugin.xml
org.eclipse.ui.console/src/org/eclipse/ui/console/AbstractConsole.java
org.eclipse.ui.console/src/org/eclipse/ui/console/ConsolePlugin.java
org.eclipse.ui.console/src/org/eclipse/ui/console/IConsole.java
org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleConstants.java
org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleDocumentPartitioner.java
org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleFactory.java
org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleListener.java
org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleManager.java
org.eclipse.ui.console/src/org/eclipse/ui/console/IConsolePageParticipant.java
org.eclipse.ui.console/src/org/eclipse/ui/console/IConsoleView.java
org.eclipse.ui.console/src/org/eclipse/ui/console/IHyperlink.java
org.eclipse.ui.console/src/org/eclipse/ui/console/IHyperlink2.java
org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsole.java
org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleInputStream.java
org.eclipse.ui.console/src/org/eclipse/ui/console/IOConsoleOutputStream.java
org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListener.java
org.eclipse.ui.console/src/org/eclipse/ui/console/IPatternMatchListenerDelegate.java
org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsole.java
org.eclipse.ui.console/src/org/eclipse/ui/console/MessageConsoleStream.java
org.eclipse.ui.console/src/org/eclipse/ui/console/PatternMatchEvent.java
org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsole.java
org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsolePage.java
org.eclipse.ui.console/src/org/eclipse/ui/console/TextConsoleViewer.java
org.eclipse.ui.console/src/org/eclipse/ui/console/actions/ClearOutputAction.java
org.eclipse.ui.console/src/org/eclipse/ui/console/actions/CloseConsoleAction.java
org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerAction.java
org.eclipse.ui.console/src/org/eclipse/ui/console/actions/TextViewerGotoLineAction.java
org.eclipse.ui.console/src/org/eclipse/ui/console/actions/package.html
org.eclipse.ui.console/src/org/eclipse/ui/console/package.html
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocument.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDocumentAdapter.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleDropDownAction.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleFactoryExtension.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleHyperlinkPosition.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleManager.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleMessages.properties
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePageParticipantExtension.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePatternMatcher.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsolePluginImages.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleResourceBundleMessages.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleResourceBundleMessages.properties
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleTypePropertyTester.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleView.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleViewConsoleFactory.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ConsoleWorkbenchPart.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/FollowHyperlinkAction.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IConsoleHelpContextIds.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IInternalConsoleConstants.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePage.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartition.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsolePartitioner.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/IOConsoleViewer.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/OpenConsoleAction.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListener.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PatternMatchListenerExtension.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/PinConsoleAction.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ScrollLockAction.java
org.eclipse.ui.console/src/org/eclipse/ui/internal/console/ShowConsoleAction.java
org.eclipse.ui.externaltools/.classpath
org.eclipse.ui.externaltools/.cvsignore
org.eclipse.ui.externaltools/.project
org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.core.prefs
org.eclipse.ui.externaltools/.settings/org.eclipse.jdt.ui.prefs
org.eclipse.ui.externaltools/.settings/org.eclipse.pde.prefs
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsBuilderTab.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsLaunchConfigurationMessages.properties
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsMainTab.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/ExternalToolsUtil.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/IgnoreWhiteSpaceComparator.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/launchConfigurations/WorkingSetComparator.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/ExternalToolMenuDelegate.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/menu/OpenExternalToolsConfigurations.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/BuilderUtils.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolBuilder.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsImages.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsModelMessages.properties
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPlugin.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ExternalToolsPreferenceInitializer.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolConstants.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IExternalToolsHelpContextIds.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/IPreferenceConstants.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/model/ImageDescriptorRegistry.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/registry/ExternalToolMigration.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderLabelProvider.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/BuilderPropertyPage.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/EditCommandDialog.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsPreferencePage.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/ExternalToolsUIMessages.properties
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/FileSelectionDialog.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/ui/TreeAndListGroup.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildProjectResolver.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/BuildTypeResolver.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/SystemPathResolver.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.java
org.eclipse.ui.externaltools/External Tools Base/org/eclipse/ui/externaltools/internal/variables/VariableMessages.properties
org.eclipse.ui.externaltools/META-INF/MANIFEST.MF
org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/BackgroundResourceRefresher.java
org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.java
org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ExternalToolsProgramMessages.properties
org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramBuilderTabGroup.java
org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java
org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramMainTab.java
org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramTabGroup.java
org.eclipse.ui.externaltools/about.html
org.eclipse.ui.externaltools/build.properties
org.eclipse.ui.externaltools/buildfiles/exportplugin.xml
org.eclipse.ui.externaltools/icons/full/dtool16/external_tools.gif
org.eclipse.ui.externaltools/icons/full/etool16/external_tools.gif
org.eclipse.ui.externaltools/icons/full/obj16/builder.gif
org.eclipse.ui.externaltools/icons/full/obj16/classpath.gif
org.eclipse.ui.externaltools/icons/full/obj16/external_tools.gif
org.eclipse.ui.externaltools/icons/full/obj16/invalid_build_tool.gif
org.eclipse.ui.externaltools/icons/full/obj16/main_tab.gif
org.eclipse.ui.externaltools/icons/full/wizban/ext_tools_wiz.png
org.eclipse.ui.externaltools/plugin.properties
org.eclipse.ui.externaltools/plugin.xml
org.eclipse.ui.externaltools/schema/configurationDuplicationMaps.exsd
365 files changed, 0 insertions, 51797 deletions
diff --git a/org.eclipse.core.variables/.classpath b/org.eclipse.core.variables/.classpath deleted file mode 100644 index ce7393340..000000000 --- a/org.eclipse.core.variables/.classpath +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<classpath> - <classpathentry kind="src" path="src"/> - <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/> - <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> - <classpathentry kind="output" path="bin"/> -</classpath> diff --git a/org.eclipse.core.variables/.cvsignore b/org.eclipse.core.variables/.cvsignore deleted file mode 100644 index 693869726..000000000 --- a/org.eclipse.core.variables/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -bin -doc diff --git a/org.eclipse.core.variables/.project b/org.eclipse.core.variables/.project deleted file mode 100644 index efb82a149..000000000 --- a/org.eclipse.core.variables/.project +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.core.variables</name> - <comment></comment> - <buildSpec> - <buildCommand> - <name>org.eclipse.pde.ManifestBuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.pde.SchemaBuilder</name> - <arguments> - </arguments> - </buildCommand> - <buildCommand> - <name>org.eclipse.jdt.core.javabuilder</name> - <arguments> - </arguments> - </buildCommand> - </buildSpec> - <natures> - <nature>org.eclipse.pde.PluginNature</nature> - <nature>org.eclipse.jdt.core.javanature</nature> - </natures> -</projectDescription> diff --git a/org.eclipse.core.variables/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.core.variables/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 12c548f97..000000000 --- a/org.eclipse.core.variables/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,69 +0,0 @@ -#Tue Sep 26 09:45:11 CDT 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=disabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/org.eclipse.core.variables/.settings/org.eclipse.pde.prefs b/org.eclipse.core.variables/.settings/org.eclipse.pde.prefs deleted file mode 100644 index 02f5958dc..000000000 --- a/org.eclipse.core.variables/.settings/org.eclipse.pde.prefs +++ /dev/null @@ -1,14 +0,0 @@ -#Wed Nov 24 22:35:14 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.core.variables/META-INF/MANIFEST.MF b/org.eclipse.core.variables/META-INF/MANIFEST.MF deleted file mode 100644 index 137534dc9..000000000 --- a/org.eclipse.core.variables/META-INF/MANIFEST.MF +++ /dev/null @@ -1,13 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-SymbolicName: org.eclipse.core.variables; singleton:=true -Bundle-Version: 3.1.100.qualifier -Bundle-Activator: org.eclipse.core.variables.VariablesPlugin -Bundle-Vendor: %providerName -Bundle-Localization: plugin -Export-Package: org.eclipse.core.internal.variables;x-internal:=true, - org.eclipse.core.variables -Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)" -Eclipse-LazyStart: true -Bundle-RequiredExecutionEnvironment: J2SE-1.4 diff --git a/org.eclipse.core.variables/about.html b/org.eclipse.core.variables/about.html deleted file mode 100644 index 460233046..000000000 --- a/org.eclipse.core.variables/about.html +++ /dev/null @@ -1,28 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> -<title>About</title> -</head> -<body lang="EN-US"> -<h2>About This Content</h2> - -<p>June 2, 2006</p> -<h3>License</h3> - -<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise -indicated below, the Content is provided to you under the terms and conditions of the -Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available -at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. -For purposes of the EPL, "Program" will mean the Content.</p> - -<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is -being redistributed by another party ("Redistributor") and different terms and conditions may -apply to your use of any object code in the Content. Check the Redistributor's license that was -provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise -indicated below, the terms and conditions of the EPL still apply to any source code in the Content -and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p> - -</body> -</html>
\ No newline at end of file diff --git a/org.eclipse.core.variables/build.properties b/org.eclipse.core.variables/build.properties deleted file mode 100644 index bcf8553e1..000000000 --- a/org.eclipse.core.variables/build.properties +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################### -# Copyright (c) 2000, 2005 IBM Corporation and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -bin.includes = plugin.xml,\ - plugin.properties,\ - .,\ - about.html,\ - META-INF/ -source.. = src/ -src.includes = about.html,\ - schema/ diff --git a/org.eclipse.core.variables/component.xml b/org.eclipse.core.variables/component.xml deleted file mode 100644 index e68c3cd21..000000000 --- a/org.eclipse.core.variables/component.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<component xmlns="http://eclipse.org/component" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://eclipse.org/component ../component.xsd " - name="Eclipse Platform Core Variables"> - <plugin id="org.eclipse.core.variables" /> - - <package name="org.eclipse.core.variables"> - <type name="IDynamicVariable" implement="false" /> - <type name="IDynamicVariableResolver" /> - <type name="IStringVariable" implement="false" /> - <type name="IStringVariableManager" implement="false" /> - <type name="IValueVariable" implement="false" /> - <type name="IValueVariableInitializer" /> - <type name="IValueVariableListener" /> - <type name="VariablesPlugin" instantiate="false" subclass="false" /> - </package> - - <component-depends unrestricted="true"/> - -</component>
\ No newline at end of file diff --git a/org.eclipse.core.variables/plugin.properties b/org.eclipse.core.variables/plugin.properties deleted file mode 100644 index 88108aaa6..000000000 --- a/org.eclipse.core.variables/plugin.properties +++ /dev/null @@ -1,16 +0,0 @@ -############################################################################### -# Copyright (c) 2000, 2006 IBM Corporation and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### - -pluginName=Core Variables -providerName=Eclipse.org -valueVariablesExtensionPointName=Value Variables -dynamicVariablesExtensionPointName=Dynamic Variables -eclipse_home.description=The location of the base installation for the running platform diff --git a/org.eclipse.core.variables/plugin.xml b/org.eclipse.core.variables/plugin.xml deleted file mode 100644 index 97246bb7f..000000000 --- a/org.eclipse.core.variables/plugin.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<?eclipse version="3.0"?> -<plugin> - - <extension-point id="valueVariables" name="%valueVariablesExtensionPointName" schema="schema/valueVariables.exsd"/> - <extension-point id="dynamicVariables" name="%dynamicVariablesExtensionPointName" schema="schema/dynamicVariables.exsd"/> - <extension - point="org.eclipse.core.variables.dynamicVariables"> - <variable - description="%eclipse_home.description" - name="eclipse_home" - resolver="org.eclipse.core.internal.variables.EclipseHomeVariableResolver" - supportsArgument="false"/> - </extension> - -</plugin> diff --git a/org.eclipse.core.variables/schema/dynamicVariables.exsd b/org.eclipse.core.variables/schema/dynamicVariables.exsd deleted file mode 100644 index 5168a891f..000000000 --- a/org.eclipse.core.variables/schema/dynamicVariables.exsd +++ /dev/null @@ -1,130 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.core.variables">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.core.variables" id="dynamicVariables" name="Dynamic String Substitution Variables"/>
- </appInfo>
- <documentation>
- This extension point provides a mechanism for defining dynamic variables used in string substitution. The value of a dynamic variable is resolved at the time a string substitution is performed, with an optional argument.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="variable" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
- a fully qualified identifier of the target extension point
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
- an optional identifier of the extension instance
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
- an optional name of the extension instance
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="variable">
- <complexType>
- <attribute name="name" type="string" use="required">
- <annotation>
- <documentation>
- specifies a unique name for this variable.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="resolver" type="string" use="required">
- <annotation>
- <documentation>
- specifies a Java class which implements <code>org.eclipse.core.variables.IDynamicVariableResolver</code>, which is used to determine the value of the variable
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.core.variables.IDynamicVariableResolver"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="description" type="string" use="required">
- <annotation>
- <documentation>
- specifies a human-readable description of this variable
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="supportsArgument" type="boolean">
- <annotation>
- <documentation>
- Whether this variable supports an argument. When unspecified, the implied value is <code>true</code>.
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- 3.0
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- The following is a definition of a dynamic variable that resolves to the name of the selected resource:
-<pre>
- <extension point="org.eclipse.core.variables.dynamicVariables">
- <variable
- name="resource_name"
- expanderClass="com.example.ResourceNameExpander"
- description="The name of the selected resource">
- </variable>
- </extension>
-</pre>
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute <b>resolver</b> must be a fully qualified name of a Java class that implements the interface <b>org.eclipse.core.variables.IDynamicVariableResolver</b>.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2003, 2005 IBM Corporation and others.<br>
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Eclipse Public License v1.0 which
-accompanies this distribution, and is available at
-<a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.core.variables/schema/valueVariables.exsd b/org.eclipse.core.variables/schema/valueVariables.exsd deleted file mode 100644 index 8ca6127a9..000000000 --- a/org.eclipse.core.variables/schema/valueVariables.exsd +++ /dev/null @@ -1,149 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.core.variables">
-<annotation>
- <appInfo>
- <meta.schema plugin="org.eclipse.core.variables" id="valueVariables" name="Value Variables"/>
- </appInfo>
- <documentation>
- This extension point provides a mechanism for defining variables used for string substitution. A value variable has a static value.
- </documentation>
- </annotation>
-
- <element name="extension">
- <complexType>
- <sequence>
- <element ref="variable" minOccurs="0" maxOccurs="unbounded"/>
- </sequence>
- <attribute name="point" type="string" use="required">
- <annotation>
- <documentation>
- a fully qualified identifier of the target extension point
- </documentation>
- </annotation>
- </attribute>
- <attribute name="id" type="string">
- <annotation>
- <documentation>
- an optional identifier of the extension instance
- </documentation>
- </annotation>
- </attribute>
- <attribute name="name" type="string">
- <annotation>
- <documentation>
- an optional name of the extension instance
- </documentation>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <element name="variable">
- <complexType>
- <attribute name="name" type="string" use="required">
- <annotation>
- <documentation>
- specifies a unique name for this variable.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="initialValue" type="string">
- <annotation>
- <documentation>
- specifies the initial value for this variable. When specified, an <code>initializerClass</code> attribute must not be specified.
- </documentation>
- </annotation>
- </attribute>
- <attribute name="initializerClass" type="string">
- <annotation>
- <documentation>
- specifies the fully qualified name of the Java class that implements <code>org.eclipse.core.variables.IValueVariableInitializer</code>. When specified, an <code>initialValue</code> attribute must not be specified.
- </documentation>
- <appInfo>
- <meta.attribute kind="java" basedOn="org.eclipse.core.variables.IValueVariableInitializer"/>
- </appInfo>
- </annotation>
- </attribute>
- <attribute name="description" type="string">
- <annotation>
- <documentation>
- specifies a human-readable description of this variable.
- </documentation>
- <appInfo>
- <meta.attribute translatable="true"/>
- </appInfo>
- </annotation>
- </attribute>
- </complexType>
- </element>
-
- <annotation>
- <appInfo>
- <meta.section type="since"/>
- </appInfo>
- <documentation>
- 3.0
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="examples"/>
- </appInfo>
- <documentation>
- The following is an example of a value variable contribution with an initial value:
-
-<p>
-<pre>
- <extension point="org.eclipse.core.variables.valueVariables">
- <variable
- name="FOO_HOME"
- initialValue="/usr/local/foo">
- </variable>
- </extension>
-</pre>
-</p>
-
-In the example above, the specified variable is created with the initial value "/usr/local/foo".
-
- The following is an example of a value variable contribution with an initializer class:
-<p>
-<pre>
- <extension point="org.eclipse.core.variables.valueVariables">
- <variable
- name="FOO_HOME"
- initializerClass="com.example.FooLocator">
- </variable>
- </extension>
-</pre>
-</p>
-
-In the example above, the variable FOO_HOME is created and the class "com.example.FooLocator" will be
-used to initialize the value the first time it's requested.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="apiInfo"/>
- </appInfo>
- <documentation>
- Value of the attribute <b>initializerClass</b> must be a fully qualified name of a Java class that implements the interface <b>org.eclipse.core.variables.IValueVariableInitializer</b>.
- </documentation>
- </annotation>
-
- <annotation>
- <appInfo>
- <meta.section type="copyright"/>
- </appInfo>
- <documentation>
- Copyright (c) 2003, 2005 IBM Corporation and others.<br>
-All rights reserved. This program and the accompanying materials are made
-available under the terms of the Eclipse Public License v1.0 which
-accompanies this distribution, and is available at
-<a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
- </documentation>
- </annotation>
-
-</schema>
diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/DynamicVariable.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/DynamicVariable.java deleted file mode 100644 index f2d48d810..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/DynamicVariable.java +++ /dev/null @@ -1,76 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.internal.variables; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.variables.IDynamicVariable; -import org.eclipse.core.variables.IDynamicVariableResolver; -import org.eclipse.core.variables.VariablesPlugin; -import org.eclipse.osgi.util.NLS; - -/** - * Dynamic variable - */ -public class DynamicVariable extends StringVariable implements IDynamicVariable { - - /** - * Resolver, or <code>null</code> until needed - */ - private IDynamicVariableResolver fResolver; - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IContextVariable#getValue(java.lang.String) - */ - public String getValue(String argument) throws CoreException { - if (!supportsArgument()) { - // check for an argument - not supported - if (argument != null && argument.length() > 0) { - throw new CoreException(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, NLS.bind(VariablesMessages.DynamicVariable_0, new String[]{argument, getName()}), null)); - } - } - if (fResolver == null) { - String name = getConfigurationElement().getAttribute("resolver"); //$NON-NLS-1$ - if (name == null) { - throw new CoreException(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, NLS.bind("Contributed context variable {0} must specify a resolver.",new String[]{getName()}), null)); //$NON-NLS-1$ - } - Object object = getConfigurationElement().createExecutableExtension("resolver"); //$NON-NLS-1$ - if (object instanceof IDynamicVariableResolver) { - fResolver = (IDynamicVariableResolver)object; - } else { - throw new CoreException(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, NLS.bind("Contributed context variable resolver for {0} must be an instance of IContextVariableResolver.",new String[]{getName()}), null)); //$NON-NLS-1$ - } - } - return fResolver.resolveValue(this, argument); - } - - /** - * Constructs a new context variable. - * - * @param name variable name - * @param description variable description or <code>null</code> - * @param configurationElement configuration element - */ - public DynamicVariable(String name, String description, IConfigurationElement configurationElement) { - super(name, description, configurationElement); - } - - /* (non-Javadoc) - * @see org.eclipse.core.variables.IDynamicVariable#supportsArgument() - */ - public boolean supportsArgument() { - String arg = getConfigurationElement().getAttribute("supportsArgument"); //$NON-NLS-1$ - return arg == null || Boolean.valueOf(arg).booleanValue(); - } - -} diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/EclipseHomeVariableResolver.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/EclipseHomeVariableResolver.java deleted file mode 100644 index 17ca4a1a7..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/EclipseHomeVariableResolver.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - * Bjorn Freeman-Benson - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.internal.variables; - -import java.net.URL; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.variables.IDynamicVariable; -import org.eclipse.core.variables.IDynamicVariableResolver; -import org.eclipse.osgi.service.datalocation.Location; - -/** - * Resolver for ${eclipse_home} - * - * @since 3.2 - */ -public class EclipseHomeVariableResolver implements IDynamicVariableResolver { - - public String resolveValue(IDynamicVariable variable, String argument) throws CoreException { - Location installLocation = Platform.getInstallLocation(); - if (installLocation != null) { - URL url = installLocation.getURL(); - if (url != null) { - String file = url.getFile(); - if (file.length() != 0) { - return file; - } - } - } - return null; - } - -} diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringSubstitutionEngine.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringSubstitutionEngine.java deleted file mode 100644 index 94bd5d7ea..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringSubstitutionEngine.java +++ /dev/null @@ -1,291 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.internal.variables; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Stack; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.variables.IDynamicVariable; -import org.eclipse.core.variables.IStringVariableManager; -import org.eclipse.core.variables.IValueVariable; -import org.eclipse.core.variables.VariablesPlugin; -import org.eclipse.osgi.util.NLS; - -/** - * Performs string substitution for context and value variables. - */ -public class StringSubstitutionEngine { - - // delimiters - private static final String VARIABLE_START = "${"; //$NON-NLS-1$ - private static final char VARIABLE_END = '}'; - private static final char VARIABLE_ARG = ':'; - // parsing states - private static final int SCAN_FOR_START = 0; - private static final int SCAN_FOR_END = 1; - - /** - * Resulting string - */ - private StringBuffer fResult; - - /** - * Whether substitutions were performed - */ - private boolean fSubs; - - /** - * Stack of variables to resolve - */ - private Stack fStack; - - class VariableReference { - - // the text inside the variable reference - private StringBuffer fText; - - public VariableReference() { - fText = new StringBuffer(); - } - - public void append(String text) { - fText.append(text); - } - - public String getText() { - return fText.toString(); - } - - } - - /** - * Performs recursive string substitution and returns the resulting string. - * - * @param expression expression to resolve - * @param reportUndefinedVariables whether to report undefined variables as an error - * @param manager registry of variables - * @return the resulting string with all variables recursively - * substituted - * @exception CoreException if unable to resolve a referenced variable or if a cycle exists - * in referenced variables - */ - public String performStringSubstitution(String expression, boolean reportUndefinedVariables, boolean resolveVariables, IStringVariableManager manager) throws CoreException { - substitute(expression, reportUndefinedVariables, resolveVariables, manager); - List resolvedVariableSets = new ArrayList(); - while (fSubs) { - HashSet resolved = substitute(fResult.toString(), reportUndefinedVariables, true, manager); - - for(int i=resolvedVariableSets.size()-1; i>=0; i--) { - - HashSet prevSet = (HashSet)resolvedVariableSets.get(i); - - if (prevSet.equals(resolved)) { - HashSet conflictingSet = new HashSet(); - for (; i<resolvedVariableSets.size(); i++) - conflictingSet.addAll((HashSet)resolvedVariableSets.get(i)); - - StringBuffer problemVariableList = new StringBuffer(); - for (Iterator it=conflictingSet.iterator(); it.hasNext(); ) { - problemVariableList.append(it.next().toString()); - problemVariableList.append(", "); //$NON-NLS-1$ - } - problemVariableList.setLength(problemVariableList.length()-2); //truncate the last ", " - throw new CoreException(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.REFERENCE_CYCLE_ERROR, NLS.bind(VariablesMessages.StringSubstitutionEngine_4, new String[]{problemVariableList.toString()}), null)); - } - } - - resolvedVariableSets.add(resolved); - } - return fResult.toString(); - } - - /** - * Performs recursive string validation to ensure that all of the variables - * contained in the expression exist - * @param expression expression to validate - * @param manager registry of variables - * @exception CoreException if a referenced variable does not exist or if a cycle exists - * in referenced variables - */ - public void validateStringVariables(String expression, IStringVariableManager manager) throws CoreException { - performStringSubstitution(expression, true, false, manager); - } - - /** - * Makes a substitution pass of the given expression returns a Set of the variables that were resolved in this - * pass - * - * @param expression source expression - * @param reportUndefinedVariables whether to report undefined variables as an error - * @param resolveVariables whether to resolve the value of any variables - * @exception CoreException if unable to resolve a variable - */ - private HashSet substitute(String expression, boolean reportUndefinedVariables, boolean resolveVariables, IStringVariableManager manager) throws CoreException { - fResult = new StringBuffer(expression.length()); - fStack = new Stack(); - fSubs = false; - - HashSet resolvedVariables = new HashSet(); - - int pos = 0; - int state = SCAN_FOR_START; - while (pos < expression.length()) { - switch (state) { - case SCAN_FOR_START: - int start = expression.indexOf(VARIABLE_START, pos); - if (start >= 0) { - int length = start - pos; - // copy non-variable text to the result - if (length > 0) { - fResult.append(expression.substring(pos, start)); - } - pos = start + 2; - state = SCAN_FOR_END; - - fStack.push(new VariableReference()); - } else { - // done - no more variables - fResult.append(expression.substring(pos)); - pos = expression.length(); - } - break; - case SCAN_FOR_END: - // be careful of nested variables - start = expression.indexOf(VARIABLE_START, pos); - int end = expression.indexOf(VARIABLE_END, pos); - if (end < 0) { - // variables are not completed - VariableReference tos = (VariableReference)fStack.peek(); - tos.append(expression.substring(pos)); - pos = expression.length(); - } else { - if (start >= 0 && start < end) { - // start of a nested variable - int length = start - pos; - if (length > 0) { - VariableReference tos = (VariableReference)fStack.peek(); - tos.append(expression.substring(pos, start)); - } - pos = start + 2; - fStack.push(new VariableReference()); - } else { - // end of variable reference - VariableReference tos = (VariableReference)fStack.pop(); - String substring = expression.substring(pos, end); - tos.append(substring); - resolvedVariables.add(substring); - - pos = end + 1; - String value= resolve(tos, reportUndefinedVariables, resolveVariables, manager); - if (value == null) { - value = ""; //$NON-NLS-1$ - } - if (fStack.isEmpty()) { - // append to result - fResult.append(value); - state = SCAN_FOR_START; - } else { - // append to previous variable - tos = (VariableReference)fStack.peek(); - tos.append(value); - } - } - } - break; - } - } - // process incomplete variable references - while (!fStack.isEmpty()) { - VariableReference tos = (VariableReference)fStack.pop(); - if (fStack.isEmpty()) { - fResult.append(VARIABLE_START); - fResult.append(tos.getText()); - } else { - VariableReference var = (VariableReference)fStack.peek(); - var.append(VARIABLE_START); - var.append(tos.getText()); - } - } - - - return resolvedVariables; - } - - /** - * Resolve and return the value of the given variable reference, - * possibly <code>null</code>. - * - * @param var - * @param reportUndefinedVariables whether to report undefined variables as - * an error - * @param resolveVariables whether to resolve the variables value or just to validate that this variable is valid - * @param manager variable registry - * @return variable value, possibly <code>null</code> - * @exception CoreException if unable to resolve a value - */ - private String resolve(VariableReference var, boolean reportUndefinedVariables, boolean resolveVariables, IStringVariableManager manager) throws CoreException { - String text = var.getText(); - int pos = text.indexOf(VARIABLE_ARG); - String name = null; - String arg = null; - if (pos > 0) { - name = text.substring(0, pos); - pos++; - if (pos < text.length()) { - arg = text.substring(pos); - } - } else { - name = text; - } - IValueVariable valueVariable = manager.getValueVariable(name); - if (valueVariable == null) { - IDynamicVariable dynamicVariable = manager.getDynamicVariable(name); - if (dynamicVariable == null) { - // no variables with the given name - if (reportUndefinedVariables) { - throw new CoreException(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, NLS.bind(VariablesMessages.StringSubstitutionEngine_3, new String[]{name}), null)); - } - // leave as is - return getOriginalVarText(var); - } - - if (resolveVariables) { - fSubs = true; - return dynamicVariable.getValue(arg); - } - //leave as is - return getOriginalVarText(var); - } - - if (arg == null) { - if (resolveVariables) { - fSubs = true; - return valueVariable.getValue(); - } - //leave as is - return getOriginalVarText(var); - } - // error - an argument specified for a value variable - throw new CoreException(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, NLS.bind(VariablesMessages.StringSubstitutionEngine_4, new String[]{valueVariable.getName()}), null)); - } - - private String getOriginalVarText(VariableReference var) { - StringBuffer res = new StringBuffer(var.getText()); - res.insert(0, VARIABLE_START); - res.append(VARIABLE_END); - return res.toString(); - } -} diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariable.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariable.java deleted file mode 100644 index 27d7d61c5..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariable.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.internal.variables; - -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.variables.IStringVariable; - -/** - * Common implementation of context and value variables - */ -public abstract class StringVariable implements IStringVariable { - - /** - * Variable name - */ - private String fName; - - /** - * Variable description, or <code>null</code> - */ - private String fDescription; - - /** - * Configuration element associated with this variable, or <code>null</code> - */ - private IConfigurationElement fConfigurationElement; - - /** - * Constructs a new variable with the given name and description. - * - * @param name variable name - * @param description variable description, or <code>null</code> - */ - public StringVariable(String name, String description, IConfigurationElement configurationElement) { - fName = name; - fDescription = description; - fConfigurationElement = configurationElement; - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariable#getName() - */ - public String getName() { - return fName; - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariable#getDescription() - */ - public String getDescription() { - return fDescription; - } - - /** - * Returns the configuration element associated with this variable, or <code>null</code> - * if none. - * - * @return configuration element or <code>null</code> - */ - protected IConfigurationElement getConfigurationElement() { - return fConfigurationElement; - } - - /** - * @see IValueVariable#setDescription(String) - * @param description - */ - public void setDescription(String description) { - fDescription = description; - } - -} diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java deleted file mode 100644 index 8c3fd8a35..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/StringVariableManager.java +++ /dev/null @@ -1,593 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.internal.variables; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.FactoryConfigurationError; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.IExtensionPoint; -import org.eclipse.core.runtime.ISafeRunnable; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.ListenerList; -import org.eclipse.core.runtime.MultiStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Preferences; -import org.eclipse.core.runtime.SafeRunner; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.Preferences.IPropertyChangeListener; -import org.eclipse.core.runtime.Preferences.PropertyChangeEvent; -import org.eclipse.core.variables.IDynamicVariable; -import org.eclipse.core.variables.IStringVariable; -import org.eclipse.core.variables.IStringVariableManager; -import org.eclipse.core.variables.IValueVariable; -import org.eclipse.core.variables.IValueVariableListener; -import org.eclipse.core.variables.VariablesPlugin; -import org.eclipse.osgi.util.NLS; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; - -/** - * Singleton string variable manager. - */ -public class StringVariableManager implements IStringVariableManager, IPropertyChangeListener { - - /** - * Dynamic variables - maps variable names to variables. - */ - private Map fDynamicVariables; - - /** - * Value variables - maps variable names to variables. - */ - private Map fValueVariables; - - /** - * Variable listeners - */ - private ListenerList fListeners; - - // notifications - private static final int ADDED = 0; - private static final int CHANGED = 1; - private static final int REMOVED = 2; - - /** - * Singleton variable manager. - */ - private static StringVariableManager fgManager; - - // true during internal updates indicates that change notification - // should be suppressed/ignored. - private boolean fInternalChange = false; - - // Variable extension point constants - private static final String ATTR_NAME= "name"; //$NON-NLS-1$ - private static final String ATTR_DESCRIPTION="description"; //$NON-NLS-1$ - // Persisted variable XML constants - private static final String VALUE_VARIABLES_TAG= "valueVariables"; //$NON-NLS-1$ - private static final String VALUE_VARIABLE_TAG= "valueVariable"; //$NON-NLS-1$ - private static final String NAME_TAG= "name"; //$NON-NLS-1$ - private static final String VALUE_TAG= "value"; //$NON-NLS-1$ - private static final String DESCRIPTION_TAG="description"; //$NON-NLS-1$ - private static final String INITIALIZED_TAG="contributed"; //$NON-NLS-1$ - // XML values - private static final String TRUE_VALUE= "true"; //$NON-NLS-1$ - private static final String FALSE_VALUE= "false"; //$NON-NLS-1$ - // preference store key for value variables - private static final String PREF_VALUE_VARIABLES= VariablesPlugin.getUniqueIdentifier() + ".valueVariables"; //$NON-NLS-1$ - - /** - * Notifies a string variable listener in a safe runnable to handle - * exceptions. - */ - class StringVariableNotifier implements ISafeRunnable { - - private IValueVariableListener fListener; - private int fType; - private IValueVariable[] fVariables; - - /** - * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable) - */ - public void handleException(Throwable exception) { - IStatus status = new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, "An exception occurred during string variable change notification", exception); //$NON-NLS-1$ - VariablesPlugin.log(status); - } - - /** - * @see org.eclipse.core.runtime.ISafeRunnable#run() - */ - public void run() throws Exception { - switch (fType) { - case ADDED: - fListener.variablesAdded(fVariables); - break; - case REMOVED: - fListener.variablesRemoved(fVariables); - break; - case CHANGED: - fListener.variablesChanged(fVariables); - break; - } - } - - /** - * Notifies the given listener of the add/change/remove - * - * @param listener the listener to notify - * @param launch the launch that has changed - * @param update the type of change - */ - public void notify(IValueVariable[] variables, int update) { - fVariables = variables; - fType = update; - Object[] copiedListeners= fListeners.getListeners(); - for (int i= 0; i < copiedListeners.length; i++) { - fListener = (IValueVariableListener)copiedListeners[i]; - SafeRunner.run(this); - } - fVariables = null; - fListener = null; - // persist variables whenever there is an add/change/remove - storeValueVariables(); - } - } - - /** - * Returns a new notifier. - * - * @return a new notifier - */ - private StringVariableNotifier getNotifier() { - return new StringVariableNotifier(); - } - - /** - * Returns the default string variable manager - * - * @return string variable manager - */ - public static StringVariableManager getDefault() { - if (fgManager == null) { - fgManager = new StringVariableManager(); - } - return fgManager; - } - - /** - * Constructs a new string variable manager. - */ - private StringVariableManager() { - fListeners = new ListenerList(); - } - - /** - * Load contributed variables and persisted variables - */ - private synchronized void initialize() { - if (fDynamicVariables == null) { - fInternalChange = true; - fDynamicVariables = new HashMap(5); - fValueVariables = new HashMap(5); - loadPersistedValueVariables(); - loadContributedValueVariables(); - loadDynamicVariables(); - VariablesPlugin.getDefault().getPluginPreferences().addPropertyChangeListener(this); - fInternalChange = false; - } - } - - /** - * Loads contributed dynamic variables - */ - private void loadDynamicVariables() { - IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(VariablesPlugin.PI_CORE_VARIABLES, EXTENSION_POINT_DYNAMIC_VARIABLES); - IConfigurationElement elements[]= point.getConfigurationElements(); - for (int i = 0; i < elements.length; i++) { - IConfigurationElement element = elements[i]; - String name= element.getAttribute(ATTR_NAME); - if (name == null) { - VariablesPlugin.logMessage(NLS.bind("Variable extension missing required 'name' attribute: {0}", new String[] {element.getDeclaringExtension().getLabel()}), null); //$NON-NLS-1$ - continue; - } - String description= element.getAttribute(ATTR_DESCRIPTION); - DynamicVariable variable= new DynamicVariable(name, description, element); - fDynamicVariables.put(variable.getName(), variable); - } - } - - /** - * Loads any persisted value variables from the preference store. - */ - private void loadPersistedValueVariables() { - String variablesString= VariablesPlugin.getDefault().getPluginPreferences().getString(PREF_VALUE_VARIABLES); - if (variablesString.length() == 0) { - return; - } - Element root= null; - Throwable ex = null; - try { - ByteArrayInputStream stream = new ByteArrayInputStream(variablesString.getBytes("UTF-8")); //$NON-NLS-1$ - DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - parser.setErrorHandler(new DefaultHandler()); - root = parser.parse(stream).getDocumentElement(); - } catch (UnsupportedEncodingException e) { - ex = e; - } catch (ParserConfigurationException e) { - ex = e; - } catch (FactoryConfigurationError e) { - ex = e; - } catch (SAXException e) { - ex = e; - } catch (IOException e) { - ex = e; - } - if (ex != null) { - VariablesPlugin.logMessage("An exception occurred while loading persisted value variables.", ex); //$NON-NLS-1$ - return; - } - if (!root.getNodeName().equals(VALUE_VARIABLES_TAG)) { - VariablesPlugin.logMessage("Invalid format encountered while loading persisted value variables.", null); //$NON-NLS-1$ - return; - } - NodeList list= root.getChildNodes(); - for (int i= 0, numItems= list.getLength(); i < numItems; i++) { - Node node= list.item(i); - if (node.getNodeType() == Node.ELEMENT_NODE) { - Element element= (Element) node; - if (!element.getNodeName().equals(VALUE_VARIABLE_TAG)) { - VariablesPlugin.logMessage(NLS.bind("Invalid XML element encountered while loading value variables: {0}", new String[] {node.getNodeName()}), null); //$NON-NLS-1$ - continue; - } - String name= element.getAttribute(NAME_TAG); - if (name.length() > 0) { - String value= element.getAttribute(VALUE_TAG); - String description= element.getAttribute(DESCRIPTION_TAG); - boolean initialized= TRUE_VALUE.equals(element.getAttribute(INITIALIZED_TAG)); - ValueVariable variable= new ValueVariable(name, description, null); - if (initialized) { - variable.setValue(value); - } - fValueVariables.put(name, variable); - } else { - VariablesPlugin.logMessage("Invalid variable entry encountered while loading value variables. Variable name is null.", null); //$NON-NLS-1$ - } - } - } - } - - /** - * Loads contributed value variables. This is done after the persisted value - * variables are restored. Any contributed variables with the same name are - * merged with existing persisted values. - */ - private void loadContributedValueVariables() { - IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(VariablesPlugin.PI_CORE_VARIABLES, EXTENSION_POINT_VALUE_VARIABLES); - IConfigurationElement elements[]= point.getConfigurationElements(); - for (int i = 0; i < elements.length; i++) { - IConfigurationElement element = elements[i]; - String name= element.getAttribute(ATTR_NAME); - if (name == null) { - VariablesPlugin.logMessage(NLS.bind("Variable extension missing required 'name' attribute: {0}", new String[] {element.getDeclaringExtension().getLabel()}), null); //$NON-NLS-1$ - continue; - } - String description= element.getAttribute(ATTR_DESCRIPTION); - ValueVariable variable= new ValueVariable(name, description, element); - // if already present, merge with persisted value - ValueVariable existing = (ValueVariable)getValueVariable(name); - if (existing != null) { - if (existing.isInitialized()) { - variable.setValue(existing.getValue()); - } - } - fValueVariables.put(variable.getName(), variable); - } - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#getVariables() - */ - public synchronized IStringVariable[] getVariables() { - initialize(); - List list = new ArrayList(fDynamicVariables.size() + fValueVariables.size()); - list.addAll(fDynamicVariables.values()); - list.addAll(fValueVariables.values()); - return (IStringVariable[]) list.toArray(new IStringVariable[list.size()]); - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#getValueVariables() - */ - public synchronized IValueVariable[] getValueVariables() { - initialize(); - return (IValueVariable[]) fValueVariables.values().toArray(new IValueVariable[fValueVariables.size()]); - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#getDynamicVariables() - */ - public synchronized IDynamicVariable[] getDynamicVariables() { - initialize(); - return (IDynamicVariable[]) fDynamicVariables.values().toArray(new IDynamicVariable[fDynamicVariables.size()]); - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#performStringSubstitution(java.lang.String) - */ - public String performStringSubstitution(String expression) throws CoreException { - return performStringSubstitution(expression, true); - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#newValueVariable(java.lang.String, java.lang.String) - */ - public IValueVariable newValueVariable(String name, String description) { - IConfigurationElement element = null; - ValueVariable existing = (ValueVariable)getValueVariable(name); - if (existing != null && existing.isContributed()) { - element = existing.getConfigurationElement(); - } - return new ValueVariable(name, description, element); - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#addVariables(org.eclipse.debug.internal.core.stringsubstitution.IValueVariable[]) - */ - public synchronized void addVariables(IValueVariable[] variables) throws CoreException { - initialize(); - MultiStatus status = new MultiStatus(VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, VariablesMessages.StringVariableManager_26, null); - for (int i = 0; i < variables.length; i++) { - IValueVariable variable = variables[i]; - if (getValueVariable(variable.getName()) != null) { - status.add(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), VariablesPlugin.INTERNAL_ERROR, NLS.bind(VariablesMessages.StringVariableManager_27, new String[]{variable.getName()}), null)); - } - } - if (status.isOK()) { - for (int i = 0; i < variables.length; i++) { - IValueVariable variable = variables[i]; - fValueVariables.put(variable.getName(), variable); - } - IValueVariable[] copy = new IValueVariable[variables.length]; - System.arraycopy(variables, 0, copy, 0, variables.length); - getNotifier().notify(copy, ADDED); - return; - } - throw new CoreException(status); - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#removeVariables(org.eclipse.debug.internal.core.stringsubstitution.IValueVariable[]) - */ - public synchronized void removeVariables(IValueVariable[] variables) { - initialize(); - List removed = new ArrayList(variables.length); - for (int i = 0; i < variables.length; i++) { - IValueVariable variable = variables[i]; - if (fValueVariables.remove(variable.getName()) != null) { - removed.add(variable); - } - } - if (removed.size() > 0) { - getNotifier().notify((IValueVariable[])removed.toArray(new IValueVariable[removed.size()]), REMOVED); - } - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#getDynamicVariable(java.lang.String) - */ - public synchronized IDynamicVariable getDynamicVariable(String name) { - initialize(); - return (IDynamicVariable) fDynamicVariables.get(name); - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#getValueVariable(java.lang.String) - */ - public synchronized IValueVariable getValueVariable(String name) { - initialize(); - return (IValueVariable) fValueVariables.get(name); - } - - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#addValueVariableListener(org.eclipse.debug.internal.core.stringsubstitution.IValueVariableListener) - */ - public void addValueVariableListener(IValueVariableListener listener) { - fListeners.add(listener); - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#removeValueVariableListener(org.eclipse.debug.internal.core.stringsubstitution.IValueVariableListener) - */ - public void removeValueVariableListener(IValueVariableListener listener) { - fListeners.remove(listener); - } - - /** - * Returns a memento representing the value variables currently registered. - * - * @return memento representing the value variables currently registered - * @throws IOException if an I/O exception occurs while creating the XML. - */ - private String getValueVariablesAsXML() throws IOException, ParserConfigurationException, TransformerException { - IValueVariable[] variables = getValueVariables(); - - Document document= getDocument(); - Element rootElement= document.createElement(VALUE_VARIABLES_TAG); - document.appendChild(rootElement); - for (int i = 0; i < variables.length; i++) { - ValueVariable variable = (ValueVariable)variables[i]; - Element element= document.createElement(VALUE_VARIABLE_TAG); - element.setAttribute(NAME_TAG, variable.getName()); - String value= variable.getValue(); - if (value != null) { - element.setAttribute(VALUE_TAG, value); - } - String description= variable.getDescription(); - if (description != null) { - element.setAttribute(DESCRIPTION_TAG, description); - } - element.setAttribute(INITIALIZED_TAG, variable.isInitialized() ? TRUE_VALUE : FALSE_VALUE); - rootElement.appendChild(element); - } - return serializeDocument(document); - } - - private Document getDocument() throws ParserConfigurationException { - DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder docBuilder = dfactory.newDocumentBuilder(); - Document doc =docBuilder.newDocument(); - return doc; - } - - /** - * Serializes a XML document into a string - encoded in UTF8 format, - * with platform line separators. - * - * @param doc document to serialize - * @return the document as a string - * @throws TransformerException if an unrecoverable error occurs during the serialization - * @throws IOException if the encoding attempted to be used is not supported - */ - private String serializeDocument(Document doc) throws TransformerException, UnsupportedEncodingException { - ByteArrayOutputStream s= new ByteArrayOutputStream(); - - TransformerFactory factory= TransformerFactory.newInstance(); - Transformer transformer= factory.newTransformer(); - transformer.setOutputProperty(OutputKeys.METHOD, "xml"); //$NON-NLS-1$ - transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //$NON-NLS-1$ - - DOMSource source= new DOMSource(doc); - StreamResult outputTarget= new StreamResult(s); - transformer.transform(source, outputTarget); - - return s.toString("UTF8"); //$NON-NLS-1$ - } - - /** - * Saves the value variables currently registered in the - * preference store. - */ - private synchronized void storeValueVariables() { - Preferences prefs= VariablesPlugin.getDefault().getPluginPreferences(); - String variableString= ""; //$NON-NLS-1$ - if (!fValueVariables.isEmpty()) { - try { - variableString= getValueVariablesAsXML(); - } catch (IOException e) { - VariablesPlugin.log(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), IStatus.ERROR, "An exception occurred while storing launch configuration variables.", e)); //$NON-NLS-1$ - return; - } catch (ParserConfigurationException e) { - VariablesPlugin.log(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), IStatus.ERROR, "An exception occurred while storing launch configuration variables.", e)); //$NON-NLS-1$ - return; - } catch (TransformerException e) { - VariablesPlugin.log(new Status(IStatus.ERROR, VariablesPlugin.getUniqueIdentifier(), IStatus.ERROR, "An exception occurred while storing launch configuration variables.", e)); //$NON-NLS-1$ - return; - } - } - fInternalChange = true; - prefs.setValue(PREF_VALUE_VARIABLES, variableString); - VariablesPlugin.getDefault().savePluginPreferences(); - fInternalChange = false; - } - - /** - * Fire a change notification for the given variable. - * - * @param variable the variable that has changed - */ - protected void notifyChanged(ValueVariable variable) { - if (!fInternalChange) { - IValueVariable existing = getValueVariable(variable.getName()); - if (variable.equals(existing)) { - // do not do change notification for unregistered variables - getNotifier().notify(new IValueVariable[]{variable}, CHANGED); - } - } - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#generateVariableExpression(java.lang.String, java.lang.String) - */ - public String generateVariableExpression(String varName, String arg) { - StringBuffer buffer = new StringBuffer(); - buffer.append("${"); //$NON-NLS-1$ - buffer.append(varName); - if (arg != null) { - buffer.append(":"); //$NON-NLS-1$ - buffer.append(arg); - } - buffer.append("}"); //$NON-NLS-1$ - return buffer.toString(); - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IStringVariableManager#performStringSubstitution(java.lang.String, boolean) - */ - public String performStringSubstitution(String expression, boolean reportUndefinedVariables) throws CoreException { - return new StringSubstitutionEngine().performStringSubstitution(expression, reportUndefinedVariables, true, this); - } - - /* (non-Javadoc) - * @see org.eclipse.core.variables.IStringVariableManager#validateStringVariables(java.lang.String) - */ - public void validateStringVariables(String expression) throws CoreException { - new StringSubstitutionEngine().validateStringVariables(expression, this); - } - - /* (non-Javadoc) - * @see org.eclipse.core.variables.IStringVariableManager#getContributingPluginId(org.eclipse.core.variables.IStringVariable) - */ - public String getContributingPluginId(IStringVariable variable) { - if (variable instanceof StringVariable) { - return ((StringVariable) variable).getConfigurationElement().getContributor().getName(); - } - return null; - } - - /* (non-Javadoc) - * @see org.eclipse.core.runtime.Preferences.IPropertyChangeListener#propertyChange(org.eclipse.core.runtime.Preferences.PropertyChangeEvent) - */ - public void propertyChange(PropertyChangeEvent event) { - if (PREF_VALUE_VARIABLES.equals(event.getProperty())) { - synchronized (this) { - if (!fInternalChange) { - fValueVariables.clear(); - loadPersistedValueVariables(); - loadContributedValueVariables(); - } - } - } - } -} diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ValueVariable.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ValueVariable.java deleted file mode 100644 index dc92fe734..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/ValueVariable.java +++ /dev/null @@ -1,125 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.internal.variables; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.variables.IValueVariable; -import org.eclipse.core.variables.IValueVariableInitializer; -import org.eclipse.core.variables.VariablesPlugin; -import org.eclipse.osgi.util.NLS; - -/** - * Implementation of a value variable. - */ -public class ValueVariable extends StringVariable implements IValueVariable { - - /** - * Variable value or <code>null</code> if none - */ - private String fValue; - - /** - * Whether this variable's value has been initialized - */ - private boolean fInitialized = false; - - /** - * Constructs a new value variable with the given name, description, and - * associated configuration element. - * - * @param name variable name - * @param description variable description, or <code>null</code> - * @param configurationElement configuration element or <code>null</code> - */ - public ValueVariable(String name, String description, IConfigurationElement configurationElement) { - super(name, description, configurationElement); - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IValueVariable#setValue(java.lang.String) - */ - public void setValue(String value) { - fValue = value; - setInitialized(true); - StringVariableManager.getDefault().notifyChanged(this); - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IValueVariable#getValue() - */ - public String getValue() { - if (!isInitialized()) { - initialize(); - } - return fValue; - } - - /** - * Initialize this variable's value. - */ - private void initialize() { - if (getConfigurationElement() != null) { - // check for a explicit value specified in plug-in XML - String value = getConfigurationElement().getAttribute("initialValue"); //$NON-NLS-1$ - if (value == null) { - // check for initializer - String className = getConfigurationElement().getAttribute("initializerClass"); //$NON-NLS-1$ - if (className != null) { - try { - Object object = getConfigurationElement().createExecutableExtension("initializerClass"); //$NON-NLS-1$ - if (object instanceof IValueVariableInitializer) { - IValueVariableInitializer initializer = (IValueVariableInitializer)object; - initializer.initialize(this); - } else { - VariablesPlugin.logMessage(NLS.bind("Unable to initialize variable {0} - initializer must be an instance of IValueVariableInitializer.", new String[]{getName()}), null); //$NON-NLS-1$ - } - } catch (CoreException e) { - VariablesPlugin.logMessage(NLS.bind("Unable to initialize variable {0}",new String[]{getName()}), e); //$NON-NLS-1$ - } - } - } else { - setValue(value); - } - } - setInitialized(true); - } - - /** - * Returns whether this variable has been initialized with a value by one of: - * <ul> - * <li><code>setValue(String)</code></li> - * <li>its configuration element's <code>initialValue</code> attribute</li> - * <li>its configuration element's initializer</li> - * </ul> - * @return whether this variable has been initialized with a value - */ - protected boolean isInitialized() { - return fInitialized; - } - - /** - * Sets whether this variable has been initialized with a value. - * - * @param initialized whether this variable has been initialized - */ - protected void setInitialized(boolean initialized) { - fInitialized = initialized; - } - - /* (non-Javadoc) - * @see org.eclipse.debug.internal.core.stringsubstitution.IValueVariable#isContributed() - */ - public boolean isContributed() { - return getConfigurationElement() != null; - } - -} diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.java b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.java deleted file mode 100644 index 27378a62b..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.java +++ /dev/null @@ -1,39 +0,0 @@ -/********************************************************************** - * Copyright (c) 2000, 2005 IBM Corporation and others. All rights reserved. This - * program and the accompanying materials are made available under the terms of - * the Eclipse Public License v1.0 which accompanies this distribution, and is - * available at http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM - Initial API and implementation - **********************************************************************/ -package org.eclipse.core.internal.variables; - -import org.eclipse.osgi.util.NLS; - -public class VariablesMessages extends NLS { - private static final String BUNDLE_NAME = "org.eclipse.core.internal.variables.VariablesMessages";//$NON-NLS-1$ - // - // Copyright (c) 2000, 2005 IBM Corporation and others. - // All rights reserved. This program and the accompanying materials - // are made available under the terms of the Eclipse Public License v1.0 - // which accompanies this distribution, and is available at - // http://www.eclipse.org/legal/epl-v10.html - // - // Contributors: - // IBM Corporation - initial API and implementation - // - - public static String StringSubstitutionEngine_3; - public static String StringSubstitutionEngine_4; - - public static String StringVariableManager_26; - public static String StringVariableManager_27; - - public static String DynamicVariable_0; - - static { - // load message values from bundle file - NLS.initializeMessages(BUNDLE_NAME, VariablesMessages.class); - } -}
\ No newline at end of file diff --git a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.properties b/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.properties deleted file mode 100644 index 945dbd36a..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/internal/variables/VariablesMessages.properties +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################### -# Copyright (c) 2000, 2005 IBM Corporation and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### - -StringSubstitutionEngine_3=Reference to undefined variable {0} -StringSubstitutionEngine_4=Variable {0} does not accept arguments - -StringVariableManager_26=Variables with the specified names are already registered. -StringVariableManager_27=Variable named {0} already registered - -DynamicVariable_0=Unsupported argument {0} specified for variable {1} diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariable.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariable.java deleted file mode 100644 index 9bdda6e73..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariable.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.variables; - -import org.eclipse.core.runtime.CoreException; - -/** - * A dynamic variable is a variable whose value is computed dynamically - * by a resolver at the time a string substitution is performed. A dynamic - * variable is contributed by an extension. - * <p> - * The following is a definition of a dynamic variable that resolves to the name of the selected resource: - * <pre> - * <extension point="org.eclipse.core.variables.dynamicVariables"> - * <variable - * name="resource_name" - * resolver="com.example.ResourceNameResolver" - * description="The name of the selected resource" - * supportsArgument="false"> - * </variable> - * </extension> - * </pre> - * </p> - * <p> - * Clients are not intended to implement this interface. Instead, clients contributing - * a dynamic variable provide an implementation of {@link org.eclipse.core.variables.IDynamicVariableResolver}. - * </p> - * @since 3.0 - */ -public interface IDynamicVariable extends IStringVariable { - - /** - * Returns the value of this variable when referenced with the given - * argument, possibly <code>null</code>. - * - * @param argument argument present in variable expression or <code>null</code> - * if none - * @return value of this variable when referenced with the given argument, possibly - * <code>null</code> - * @throws CoreException if unable to resolve a value for this variable - */ - public String getValue(String argument) throws CoreException; - - /** - * Returns whether this variable supports an argument, as specified - * by this variable's extension definition in plug-in XML. - * - * @return whether this variable supports an argument - */ - public boolean supportsArgument(); -} diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariableResolver.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariableResolver.java deleted file mode 100644 index b5cefaafb..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IDynamicVariableResolver.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.variables; - -import org.eclipse.core.runtime.CoreException; - -/** - * Resolves the value for a dynamic variable. A dynamic variable extension - * contributes a resolver which must implement this interface. - * <p> - * Clients contributing a dynamic variable are intended to provide an implementation - * of this interface. - * </p> - * @since 3.0 - */ -public interface IDynamicVariableResolver { - - /** - * Resolves and returns a value for the specified variable when referenced - * with the given argument, possibly <code>null</code> - * - * @param variable variable to resolve a value for - * @param argument argument present in expression or <code>null</code> if none - * @return variable value, possibly <code>null</code> - * @throws CoreException if unable to resolve a value for the given variable - */ - public String resolveValue(IDynamicVariable variable, String argument) throws CoreException; -} diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariable.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariable.java deleted file mode 100644 index 6bf9832c0..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariable.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.variables; - - -/** - * A variable that can be referenced in an expression, which resolves to a string - * value. Variables are referenced in expressions via their name, in the following - * format. - * <pre> - * ${varname} or ${varname:argument} - * </pre> - * <p> - * A variable is identified by its name, and optionally accepts an argument. When an - * argument is present, a colon separates the variable name from its argument. - * </p> - * <p> - * Variables can be contributed by extensions or programmatically. There are two - * kinds of variables. - * <ul> - * <li><code>IValueVariable</code> - variables that have a value (with getter and setter), and - * accept no arguments. The value of this type of variable is resolved at the time - * its value is set via its setter API.</li> - * <li><code>IDynamicVariable</code> - variables whose value is resolved at the time - * a string substitution is performed by a contributed resolver. Dynamic variables - * may accept an argument.</li> - * </ul> - * </p> - * <p> - * Clients are not intended to implement this interface. - * </p> - * @since 3.0 - */ -public interface IStringVariable { - - /** - * Returns the name of this variable. A variable is uniquely identified by - * its name. - * - * @return variable name - */ - public String getName(); - - /** - * Returns a human readable description of this variable, possibly <code>null</code> - * - * @return a description of this variable, or <code>null</code> if none - */ - public String getDescription(); - -} diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariableManager.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariableManager.java deleted file mode 100644 index 731718a4e..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IStringVariableManager.java +++ /dev/null @@ -1,180 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.variables; - -import org.eclipse.core.runtime.CoreException; - -/** - * Registry for string variables. - * <p> - * Clients are not intended to implement this interface. - * </p> - * @since 3.0 - */ -public interface IStringVariableManager { - - /** - * Simple identifier constant (value <code>"dynamicVariables"</code>) for the - * dynamic variables extension point. - */ - public static final String EXTENSION_POINT_DYNAMIC_VARIABLES = "dynamicVariables"; //$NON-NLS-1$ - - /** - * Simple identifier constant (value <code>"valueVariables"</code>) for the - * value variables extension point. - */ - public static final String EXTENSION_POINT_VALUE_VARIABLES = "valueVariables"; //$NON-NLS-1$ - - /** - * Returns all registered variables. - * - * @return a collection of all registered variables - */ - public IStringVariable[] getVariables(); - - /** - * Returns all registered value variables. - * - * @return a collection of all registered value variables - */ - public IValueVariable[] getValueVariables(); - - /** - * Returns the value variable with the given name, or <code>null</code> - * if none. - * - * @param name variable name - * @return the value variable with the given name, or <code>null</code> - * if none - */ - public IValueVariable getValueVariable(String name); - - /** - * Returns all registered dynamic variables. - * - * @return a collection of all registered dynamic variables - */ - public IDynamicVariable[] getDynamicVariables(); - - /** - * Returns the dynamic variable with the given name or <code>null</code> - * if none. - * - * @param name variable name - * @return the dynamic variable with the given name or <code>null</code> - * if none - */ - public IDynamicVariable getDynamicVariable(String name); - - /** - * Returns the plug-in identifier of the plug-in that contributed the - * given variable via extension or <code>null</code> if the given - * variable wasn't contributed via extension. - * - * @param variable the variable - * @return the plug-in identifier of the plug-in that contributed the - * given variable or <code>null</code> - * @since 3.1 - */ - public String getContributingPluginId(IStringVariable variable); - - /** - * Recursively resolves and replaces all variable references in the given - * expression with their corresponding values. Reports errors for references - * to undefined variables (equivalent to calling - * <code>performStringSubstitution(expression, true)</code>). - * - * @param expression expression referencing variables - * @return expression with variable references replaced with variable values - * @throws CoreException if unable to resolve the value of one or more variables - */ - public String performStringSubstitution(String expression) throws CoreException; - - /** - * Recursively resolves and replaces all variable references in the given - * expression with their corresponding values. Allows the client to control - * whether references to undefined variables are reported as an error (i.e. - * an exception is thrown). - * - * @param expression expression referencing variables - * @param reportUndefinedVariables whether a reference to an undefined variable - * is to be considered an error (i.e. throw an exception) - * @return expression with variable references replaced with variable values - * @throws CoreException if unable to resolve the value of one or more variables - */ - public String performStringSubstitution(String expression, boolean reportUndefinedVariables) throws CoreException; - - /** - * Validates variables references in the given expression and reports errors - * for references to undefined variables. - * - * @param expression expression referencing variables - * @throws CoreException if one or more referenced variables do not exist - */ - public void validateStringVariables(String expression) throws CoreException; - - /** - * Returns a new value variable with the given name and description. - * - * @param name variable name, cannot be <code>null</code> - * @param description variable description, possibly <code>null</code> - * @return a new variable - * @exception CoreException if a variable already exists with the given name - */ - public IValueVariable newValueVariable(String name, String description); - - /** - * Adds the given variables to the variable registry. - * - * @param variables the variables to add - * @throws CoreException if one or more variables to add has a name collision with - * an existing variable - */ - public void addVariables(IValueVariable[] variables) throws CoreException; - - /** - * Removes the given variables from the registry. Has no effect for unregistered - * variables. - * - * @param variables variables to remove - */ - public void removeVariables(IValueVariable[] variables); - - /** - * Registers the given listener for value variable notifications. Has no effect - * if an identical listener is already registered. - * - * @param listener value variable listener to add - */ - public void addValueVariableListener(IValueVariableListener listener); - - /** - * Removes the given listener from the list of registered value variable - * listeners. Has no effect if an identical listener is not already registered. - * - * @param listener value variable listener to remove - */ - public void removeValueVariableListener(IValueVariableListener listener); - - /** - * Convenience method that returns an expression referencing the given - * variable and optional argument. For example, calling the method with - * a <code>varName</code> of <code>my_var</code> and an <code>argument</code> - * of <code>my_arg</code> results in the string <code>$(my_var:my_arg}</code>. - * - * @param varName variable name - * @param arg argument text or <code>null</code> - * @return an expression referencing the given variable and - * optional argument - */ - public String generateVariableExpression(String varName, String arg); - -} diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariable.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariable.java deleted file mode 100644 index 29a246547..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariable.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.variables; - -/** - * A variable with a value that can be set and retrieved. The context in which - * a value variable is referenced does not effect the value of the variable. - * A value variable can be contributed by an extension or created programmatically. - * A contributor may optionally specify an initial value for a variable, or - * provide a delegate that will initialize the variable with a value. - * <p> - * Example of a value variable contribution with an initial value, the specified - * variable is created with the initial value "/usr/local/foo". - * <pre> - * <extension point="org.eclipse.core.variables.valueVariables"> - * <variable - * name="FOO_HOME" - * initialValue="/usr/local/foo"> - * </variable> - * </extension> - * </pre> - * </p> - * <p> - * Example of a value variable contribution with an initializer class, the class - * "com.example.FooLocator" will be used to initialize the value the first time - * it's requested. - * <pre> - * <extension point="org.eclipse.core.variables.valueVariables"> - * <variable - * name="FOO_HOME" - * initializerClass="com.example.FooLocator"> - * </variable> - * </extension> - * </pre> - * </p> - * <p> - * Clients are not intended to implement this interface. - * </p> - * @since 3.0 - */ -public interface IValueVariable extends IStringVariable { - - /** - * Sets the value of this variable to the given value. A value of - * <code>null</code> indicates the value of this variable is undefined. - * - * @param value variable value, possibly <code>null</code> - */ - public void setValue(String value); - - /** - * Returns the value of this variable, or <code>null</code> if none. - * - * @return the value of this variable, or <code>null</code> if none - */ - public String getValue(); - - /** - * Returns whether this variable was contributed by an extension. - * - * @return whether this variable was contributed by an extension - */ - public boolean isContributed(); - - /** - * Sets the description of this variable to the given value. - * - * @param description variable description, possibly <code>null</code> - */ - public void setDescription(String description); -} diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableInitializer.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableInitializer.java deleted file mode 100644 index 035a907db..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableInitializer.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.variables; - -/** - * Value variable initializers compute an initial value for a value - * variable contributed by an extension, which is not defined with an initial - * value. This provides a mechanism for programmatically computing the initial - * value of a value variable. - * <p> - * Clients may implement this interface. - * </p> - * @since 3.0 - */ -public interface IValueVariableInitializer { - /** - * Initializes the specified variable. - * - * @param variable variable to initialize - */ - public void initialize(IValueVariable variable); -} diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableListener.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableListener.java deleted file mode 100644 index 37dac25df..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/variables/IValueVariableListener.java +++ /dev/null @@ -1,47 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.variables; - -/** - * A string variable listener is notified of variables as they are added - * and removed from the string variable manager. As well, listeners are - * notified when a value variable changes value. - * <p> - * Clients may implement this interface. - * </p> - * @since 3.0 - */ -public interface IValueVariableListener { - - /** - * Notification the given variables have been added to the variable - * manager. - * - * @param variables added variables - */ - public void variablesAdded(IValueVariable[] variables); - - /** - * Notification the given variables have been removed from the variable - * manager. - * - * @param variables removed variables - */ - public void variablesRemoved(IValueVariable[] variables); - - /** - * Notification the given variables have been changed value. - * - * @param variables changed variables - */ - public void variablesChanged(IValueVariable[] variables); - -} diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/VariablesPlugin.java b/org.eclipse.core.variables/src/org/eclipse/core/variables/VariablesPlugin.java deleted file mode 100644 index 114b01d7a..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/variables/VariablesPlugin.java +++ /dev/null @@ -1,112 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ - -package org.eclipse.core.variables; - -import org.eclipse.core.internal.variables.StringVariableManager; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Plugin; -import org.eclipse.core.runtime.Status; - -/** - * The plug-in runtime class for the Core Variables plug-in. - * @since 3.0 - */ -public class VariablesPlugin extends Plugin { - - /** - * Status code indicating an unexpected internal error. - */ - public static final int INTERNAL_ERROR = 120; - - /** - * Status code indicating a variable reference cycle error. - */ - public static final int REFERENCE_CYCLE_ERROR = 130; - - /** - * The single instance of this plug-in runtime class. - */ - private static VariablesPlugin plugin; - - /** - * Unique identifier constant (value <code>"org.eclipse.core.variables"</code>) - * for the Core Variables plug-in. - */ - public static final String PI_CORE_VARIABLES = "org.eclipse.core.variables"; //$NON-NLS-1$ - - - /** - * Constructs an instance of this plug-in runtime class. - * <p> - * An instance of this plug-in runtime class is automatically created - * when the facilities provided by the Variables plug-in are required. - * <b>Clients must never explicitly instantiate a plug-in runtime class.</b> - * </p> - */ - public VariablesPlugin() { - super(); - plugin = this; - } - - /** - * Returns this plug-in instance. - * - * @return the single instance of this plug-in runtime class - */ - public static VariablesPlugin getDefault() { - return plugin; - } - - /** - * Logs the specified throwable with this plug-in's log. - * - * @param t throwable to log - */ - public static void log(Throwable t) { - log(new Status(IStatus.ERROR, PI_CORE_VARIABLES, INTERNAL_ERROR, "Error logged from Core Variables: ", t)); //$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 - */ - public static void log(IStatus status) { - getDefault().getLog().log(status); - } - - /** - * Convenience method which returns the unique identifier of this plug-in. - */ - public static String getUniqueIdentifier() { - return PI_CORE_VARIABLES; - } - - /** - * Returns the string variable manager. - * - * @return the string variable manager - */ - public IStringVariableManager getStringVariableManager() { - return StringVariableManager.getDefault(); - } -} diff --git a/org.eclipse.core.variables/src/org/eclipse/core/variables/package.html b/org.eclipse.core.variables/src/org/eclipse/core/variables/package.html deleted file mode 100644 index 0d27de0b3..000000000 --- a/org.eclipse.core.variables/src/org/eclipse/core/variables/package.html +++ /dev/null @@ -1,45 +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 defining and contributing variables for the purpose of - string substitution.</p> - -<h2>Package Specification</h2> - -<p>This package provides classes and interfaces to support the definition and - contribution of variables for the purpose of string substitution. The plug-in - supports the recursive replacement of variables referenced by name in arbitrary - strings with the value of the variable. Two types of variables are provided - - value variables (<code>IValueVariable</code>) and dynamic variables (<code>IDynamicVariable</code>). - A value variable has a simple setter and getter for its current value. A dynamic - variable has an associated resolver that provides a variable's value each time - it is referenced (replaced) in a string substitution. A dynamic variable may - also provide an argument in its reference that can be used by its resolver to - determine its substitution value.</p> -<p>A variable manager (<code>IStringVariableManager</code>) is provided to manage - the set of defined variables. Value variables may be created via API on the - variable manager, or contributed via the <code>valueVariables</code> extension - point. Dynamic variables must be contributed via the <code>dynamicVariables</code> - extension point. The variable manager also provides change notification for - value variables. The variable manager also provides an API for performing string - substitution, which accepts a string, and returns a string with all variable - references replaced by associated variable values.</p> -<p>Variables are referenced in strings by enclosing them in braces, preceded with - a dollar sign. For example, consider a variable defined with the name <code>foo</code>, - and referenced in the following string: <code>"abc${foo}ghi"</code>. - If the value of <code>foo</code> is <code>"def"</code>, the result - of a string substitution would be <code>"abcdefghi"</code>. In the - case of a dynamic variable, an (optional) argument is supplied by appending - a colon and argument value after the variable name. For example <code>"${foo:bar}"</code>. - In this case, the resolver associated with <code>foo</code> would be provided - with the referenced argument (<code>bar</code>) when asked to resolve a value - for the variable <code>foo</code>. </p> -</body> -</html> diff --git a/org.eclipse.debug.core/.classpath b/org.eclipse.debug.core/.classpath deleted file mode 100644 index 3138d4b81..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.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/> - <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> - <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 086a0226f..000000000 --- a/org.eclipse.debug.core/.options +++ /dev/null @@ -1 +0,0 @@ -org.eclipse.debug.core/debug=false
\ 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 79f03f770..000000000 --- a/org.eclipse.debug.core/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,69 +0,0 @@ -#Tue Sep 26 09:45:26 CDT 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=disabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=ignore
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
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/META-INF/MANIFEST.MF b/org.eclipse.debug.core/META-INF/MANIFEST.MF deleted file mode 100644 index baaec6343..000000000 --- a/org.eclipse.debug.core/META-INF/MANIFEST.MF +++ /dev/null @@ -1,23 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %pluginName -Bundle-SymbolicName: org.eclipse.debug.core; singleton:=true -Bundle-Version: 3.3.0.qualifier -Bundle-ClassPath: . -Bundle-Activator: org.eclipse.debug.core.DebugPlugin -Bundle-Vendor: %providerName -Bundle-Localization: plugin -Export-Package: org.eclipse.debug.core, - org.eclipse.debug.core.model, - org.eclipse.debug.core.sourcelookup, - org.eclipse.debug.core.sourcelookup.containers, - org.eclipse.debug.internal.core;x-friends:="org.eclipse.debug.ui", - org.eclipse.debug.internal.core.sourcelookup;x-friends:="org.eclipse.debug.ui", - org.eclipse.debug.internal.core.sourcelookup.containers;x-friends:="org.eclipse.debug.ui" -Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)";visibility:=reexport, - org.eclipse.core.variables;bundle-version="[3.1.0,4.0.0)", - org.eclipse.core.runtime;bundle-version="[3.1.0,4.0.0)", - org.eclipse.core.filesystem;bundle-version="[1.0.0,2.0.0)" -Eclipse-LazyStart: true -Import-Package: com.ibm.icu.text -Bundle-RequiredExecutionEnvironment: J2SE-1.4 diff --git a/org.eclipse.debug.core/about.html b/org.eclipse.debug.core/about.html deleted file mode 100644 index 460233046..000000000 --- a/org.eclipse.debug.core/about.html +++ /dev/null @@ -1,28 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> -<title>About</title> -</head> -<body lang="EN-US"> -<h2>About This Content</h2> - -<p>June 2, 2006</p> -<h3>License</h3> - -<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise -indicated below, the Content is provided to you under the terms and conditions of the -Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available -at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. -For purposes of the EPL, "Program" will mean the Content.</p> - -<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is -being redistributed by another party ("Redistributor") and different terms and conditions may -apply to your use of any object code in the Content. Check the Redistributor's license that was -provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise -indicated below, the terms and conditions of the EPL still apply to any source code in the Content -and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</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 826d036e5..000000000 --- a/org.eclipse.debug.core/build.properties +++ /dev/null @@ -1,19 +0,0 @@ -############################################################################### -# Copyright (c) 2000, 2005 IBM Corporation and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Eclipse Public License v1.0 -# which accompanies this distribution, and is available at -# http://www.eclipse.org/legal/epl-v10.html -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -bin.includes = .options,\ - plugin.xml,\ - plugin.properties,\ - .,\ - about.html,\ - META-INF/ -source.. = 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 2be478327..000000000 --- a/org.eclipse.debug.core/buildnotes_platform-debug.html +++ /dev/null @@ -1,382 +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 3.3 Debug Platform Build Notes </h1> - -<h2>Summary of API changes in 3.3</h2> -<h3>Launching</h3> -The launch framework has been enhanced to support the following: -<ul> - <li> Mixed mode launching - for example, allows an application to debugged and - profiled at the same time</li> - <li> Multiple launch delegates for the same configuration type and mode combination - - for example, allows multiple Java profilers to exist in the workbench side - by side</li> - <li>Contribution of extra tabs to existing tab groups - for example, allows - a profiler to contribute a profile options tab to an existing tab group in - the launch dialog</li> - <li>Read-only launch configurations - for example, if a launch configuration - is stored in the file system in a read-only state, the launch configuration - cannot be edited in the launch dialog</li> -</ul> -<p>The following extension points have been added: </p> -<ul> - <li><code>org.eclipse.debug.ui.launchConfigurationTabs</code> - allows a tab - to be contributed to an existing tab group in the launch configuration dialog - <ul> - <li>added extension point identifier constant <code>IDebugUIConstants.EXTENSION_POINT_LAUNCH_TABS</code> - </li> - </ul> - </li> -</ul> -<p>The following extension points have been enhanced: </p> -<ul> - <li><code>org.eclipse.debug.core.launchDelegates </code> - <ul> - <li>addition of optional <code>name</code> attribute to allow users to select - a launcher when more than one is available</li> - <li>addition of optional <code>modeCombination</code> element to specify - supported mixed launch modes</li> - </ul> - </li> - <li><code>org.eclipse.debug.core.launchConfigurationTypes </code> - <ul> - <li>addition of optional <code>icon</code> attribute to allow an icon to - be contributed in the same extension as its type. This can only be used - if the icon is in the same plug-in as the launch configuration type.</li> - <li>addition of optional <code>delegateName </code>attribute to allow users - to select a launcher when more than one is available</li> - </ul> - </li> -</ul> -<p>The following types have been added:</p> -<ul> - <li>added interface <code>org.eclipse.debug.core.ILaunchDelegate</code> - provides - access to a launch delegate extensions and attributes</li> - <li>added class org.eclipse.debug.ui.AbstractLaunchModeConfigurationTab - abstract - implementation of a launch tab that modifies a configuration's launch mode</li> -</ul> -<p>The following types have been modified in support of launching enhancements:</p> -<ul> - <li>org.eclipse.debug.core.ILaunchConfiguration - <ul> - <li>added method getAttribute(String key, Set defaultValue)</li> - <li>added method getModes()</li> - <li>added method isReadOnly()</li> - </ul> - </li> - <li>org.eclipse.debug.core.ILaunchConfigurationType - <ul> - <li>deprecated method getDelegate(String mode)</li> - <li>added method getDelegates(Set modes)</li> - <li>added method getPreferredDelegate(Set modes)</li> - <li>added method setPreferredDelegate(Set modes)</li> - <li>added method supportsModes(Set modes)</li> - <li>deprecated method getSupportedModes()</li> - <li>added method getSupportedModeCombinations()</li> - <li>added method getContributorName()</li> - <li>added method getImageDescriptorPath()</li> - </ul> - </li> - <li>org.eclipse.debug.core.ILaunchConfigurationWorkingCopy - <ul> - <li>added method addModes(Set modes)</li> - <li>added method setModes(Set modes)</li> - <li>added method removeModes(Set modes)</li> - </ul> - </li> - <li>org.eclipse.debug.ui.DebugUITools - <ul> - <li>added method getLastLaunch(String id)</li> - <li>added method openLaunchConfigurationEditDialog(Shell shell, ILaunchConfiguration - configuration, String groupIdentifier, IStatus status, boolean showCancel)</li> - </ul> - </li> - <li>org.eclipse.debug.ui.AbstractLaunchConfigurationTab - <ul> - <li>added method getId()</li> - </ul> - </li> -</ul> -<h3>Debug Context Service</h3> -<p>A debug context represents the active state of a program being debugged. The - active debug context drives the enabled state of debug actions (step, terminate, - etc.), source lookup, visible variables, watch expression values, etc. A set - of classes and interfaces have been added allowing clients to respond to and - provide the active debug context.</p> -<p>The package <code>org.eclipse.debug.ui.contexts</code> has been added with - the following types:</p> -<ul> - <li><code>AbstractDebugContextProvider</code></li> - <li><code>DebugContextEvent</code></li> - <li><code>IDebugContextListener</code></li> - <li><code>IDebugContextManager</code></li> - <li><code>IDebugContextProvider</code></li> - <li><code>IDebugContextService</code></li> - <li><code>ISuspendTrigger</code></li> - <li><code>ISuspendTriggerListener</code></li> -</ul> -<p>The following types have been modified</p> -<ul> - <li><code>org.eclipse.debug.ui.DebugUITools </code> - <ul> - <li>added method <code>getDebugContextManager()</code></li> - </ul> - </li> -</ul> -<h3>Debug Commands</h3> -<p>Debug commands represent common debug operations implemented by debuggers - - for example, step over, suspend, resume, and terminate. The debug platform allows - debuggers to provide custom implementations of the operations by implementing - the debug command interfaces. The platform provides a user interface and actions - that delegate to the command implementations. As well, the platform provides - a standard implementation of the commands for debuggers that are implementations - of the standard debug model. Debuggers may override the standard implementation - by directly implementing the command interfaces in debug model elements or by - registering adapters for the command interfaces on debug model elements. The - command interfaces are to be implemented in a non-blocking fashion, and are - designed with an asynchronous API, allowing clients to cancel a command or report - failure via a status monitor.</p> -<p>The package<code> org.eclipse.debug.ui.commands</code> has been added with - the following types:</p> -<ul> - <li><code>IBooleanStatusMonitor</code></li> - <li><code>IDebugCommand</code></li> - <li><code>IDisconnectCommand</code></li> - <li><code>IDropToFrameCommand</code></li> - <li><code>IResumeCommand</code></li> - <li><code>IStatusMonitor</code></li> - <li><code>IStepFiltersCommand</code></li> - <li><code>IStepIntoCommand</code></li> - <li><code>IStepOverCommand</code></li> - <li><code>IStepReturnCommand</code></li> - <li><code> ISuspendCommand</code></li> - <li><code> ITerminateCommand</code></li> -</ul> -<h3>Source Lookup</h3> -<p>Source lookup is driven by the active debug context. When a context is activated - the debug platform displays source for that context. Clients may provide a custom - implementation of source lookup by implementing the source display interface - directly on their debug model elements, or by providing an adapter for the source - display interface. The debug platform provides a standard implementation of - source display for debuggers that are an implementation of the standard debug - model - i.e. implementations of <code>IStackFrame</code> that have an associated - <code>ISourceLocator</code>.</p> -<p>The following interface has been added:</p> -<ul> - <li><code>org.eclipse.debug.ui.sourcelookup.ISourceDisplay</code></li> -</ul> -<h3>Console</h3> -<ul> - <li>Added <code>DebugPlugin.ATTR_CONSOLE_ENCODING</code> - this launch attribute - specifies the encoding used by the console. When unspecified the default system - encoding is used. This constant replaces the now deprecated <code>IDebugUIConstants.ATTR_CONSOLE_ENCODING</code>.</li> - <li>Deprecated <code>IDebugUIConstants.ATTR_CONSOLE_ENCODING</code>.</li> - <li>Added support to set the background color to text consoles - see new methods - <code>TextConsole.setBackground(Color)</code> and <code>getBackground()</code></li> - <li>Added property constant to indicate background color of a console has changed - - <code>IConsoleConstants.P_BACKGROUND_COLOR</code>.</li> -</ul> -<h3>Expressions</h3> -<ul> - <li>added <code>org.eclipse.debug.ui.actions.IWatchExpressionFactoryAdapterExtension</code> - - this is an interface that can be optionally implemented by <code>IWatchExpressionFactoryAdapter</code>'s. - Allows the <b>Create Watch Expression</b> action to be dynamically enabled - based on the selected variables.</li> -</ul> -<h3>Breakpoints</h3> -<ul> - <li>Added new optional interface for breakpoint organizer extensions. Breakpoint - organizer delegates may optionally implement the <code>IBreakpointOrganizerDelegateExtension</code> - interface. The new interfaces supports add and remove operations on collections - of breakpoints to allow for more efficient drag and drop operations in the - breakpoints view.</li> -</ul> - -<h2>Nov 28, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=165829">165829</a>: [launching] the source lookup tab is the new apply button<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=165175">165175</a>: [source lookup] ContainerSourceContainer assumes resource is in local file sytsem<br> - -<h2>Nov 21, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=165174">165174</a>: [viewers] selection is lost in launch view after stepping into sync block<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=165046">165046</a>: [viewers] launch view loses selection with monitors showing<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=164953">164953</a>: Watch expression keeps reference to old IDebugTarget object after debug session terminates<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=164671">164671</a>: NPE updating children in view<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=164651">164651</a>: [viewers] launch view has duplicate entries<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=164379">164379</a>: ClassCastException from StackFrameContentProvider<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=156761">156761</a>: [console] Allow possibility of changing console background color<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=104369">104369</a>: [breakpoints] drag & drop of many breakpoints is slow<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=164620">164620</a>: Tree in Debug view should not have border<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99709">99709</a>: [breakpoints] Breakpoints dropped to incorrect working set when moved using drag and drop<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=158280">158280</a>: CCE in JDIObjectValue.getEnclosingObject<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=163082">163082</a>: Add Memory Rendering Dialog should listen for Memory Rendering Bindings changed event<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159359">159359</a>: expressions serialized each time they change state<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=163130">163130</a>: [breakpoints] select default breakpoint working set dialog throws NPE<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=164940">164940</a>: Disabled state of Run/Profile/Debug button is not handled properly sometimes<br> - -<h2>Nov 14, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162802">162802</a>: [launching] launch manager causes exception persisting preferred delegates<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=163128">163128</a>: org.eclipse.debug.ui plugin needs organizing<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=160749">160749</a>: Can't set a breakpoint on the first line of an editor<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=163684">163684</a>: [variables view] Max details pane text length dialog does nothing<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162996">162996</a>: NPE in EnvironmentVariableResolver.resolveValue<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=163988">163988</a>: org.eclipse.debug.ui.console.FileLink missing adaptation, protection<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=153461">153461</a>: DnD slow in breakpoints view.<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=163684">163684</a>: [variables view] Max details pane text length dialog does nothing<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=163400">163400</a>: fileExtension is deprecated but doesn't offer alternatives in schema description<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=163961">163961</a>: Schema description for launchConfigurationTypes outdated<br> - -<h2>3.3 Milestone 3 - Nov 3, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=159200">159200</a>: Step action should not automatically disable after the action is invoked.<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162802">162802</a>: [launching] launch manager causes exception persisting preferred delegates<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162667">162667</a>: Javadoc warnings in N20061028-0010<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162816">162816</a>: [commands] StepFilterCommand can lead to NPE<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162320">162320</a>: Toggle step filters action does not initialize state properly<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=160932">160932</a>: API for debug context and debug commands<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162426">162426</a>: Javadoc warnings in N20061026-0010<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162666">162666</a>: Chkpii error in nightly build 20061028-0010<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162106">162106</a>: Missing org.eclipse.debug.core.launchOptions extension point<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=162547">162547</a>: ConcurrentModificationEx in DebugCommandService.postUpdate<br> - -<h2>Oct 24, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=161896">161896</a>: Warnings in N20061022-0010<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=151848">151848</a>: [launching] Write protected launch configurations fails in Launch Configuration Dialog<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=153789">153789</a>: [launching] Launch configuration dialog: switching filters should not remove multiselection<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=154400">154400</a>: [WorkingSets] Select Default Breakpoint Working Set dialog is confusing and can clear default setting accidentally<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=157915">157915</a>: Delete launch configurations confirmation dialog too small<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=158232">158232</a>: 'Terminate and relaunch' action is enabled for non-relaunchable configs<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=161077">161077</a>: [schema] build N20061016-0010 schema errors<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=161080">161080</a>: [schema] build > N20061016-0010 schema errors<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=157090">157090</a>: should adopt ICU Collator and use new APIs on StructuredViewer<br> - -<h2>Oct 3, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=158760">158760</a>: Warning in latest nightly build and integration build<br> - -<h2>Sep 22, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=158202">158202</a>: LaunchConfigurationWorkingCopy setAttributes(Map) does not set dirty?<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=140722">140722</a>: Surface Run/Debug Terminate key mapping<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76341">76341</a>: [evaluation] Yellow popup box cannot be moved easily<br> - -<h2>Sep 12, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=155791">155791</a>: Patch to fix jface.text.Assert deprecation<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=156134">156134</a>: debug.core should reexport dependencies whose API is exposed<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=155690">155690</a>: Launch shortcuts: Allow 'forcePluginActivation' for expressions<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=148255">148255</a>: [tests] "should be access" test failure<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=155055">155055</a>: [views] [actions] Terminate All changed since 3.1.2<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=156087">156087</a>: NPE in CreateLaunchConfigurationAction#performAction<br> - -<h2>Aug 22, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=153929">153929</a>: [Memory View] Shift+F10 does not bring up context menu in table rendering<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=153964">153964</a>: Need public access to LaunchConfigurationManager.getLastLaunch()<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=153428">153428</a>: Share a launch configuration: NPE<br> - -<h2>3.3 Milestone 1 - August 10, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=138976">138976</a>: [console] IOException when closing the application<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=152794">152794</a>: ConcurrentModificationException disposing consoles from Ant UI test suite<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=152583">152583</a>: Use proceed label and button id for compile error prompt<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=152664">152664</a>: Separate workbench part from presentation context id<br> - -<h2>July 29, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=151066">151066</a>: details sash same background color as tree<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=149728">149728</a>: Detaching from process with many threads takes a long time<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=142198">142198</a>: [breakpoints] Inital state of breakpoint's 'Enable/Disable Breakpoint' ruler menu is always 'Enable Breakpoint'<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=138252">138252</a>: [console] Stream closed while debugging<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=151433">151433</a>: Firing content event on a debug target does not causing the target to be refreshed<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=148900">148900</a>: IWatchExpressionDelegate needs to be context sensitive<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=142602">142602</a>: [breakpoints] Default Breakpoint Working Set's setting lost when working set name is changed<br> - -<h2>July 18, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=149205">151006</a>: Expression View menu inconsistent when refering to Detail(s) Pane/Area<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=149205">149205</a>: AssignValueAction ignores target messages<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=135170">135170</a>: Terminate All menu option does not do anything<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=150193">150193</a>: second frame selected instead of top frame after step return<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=148995">148995</a>: Deadlock while stepping<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=148897">148897</a>: [Memory View] memory renderings leak menu listener<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=148923">148923</a>: [Memory View] selection is incorrect after stepping<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=140102">140102</a>: [breakpoints] Focus cannot be set to "Type", "Line Number" and "Member" fields in the properties dialog of the breakpoint<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=150569">150569</a>: [help] Add exception dialog show workbench help<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=149638">149638</a>: [breakpoints] 'Don't ask again' option for 'Remove All Breakpoints'<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=149176">149176</a>: [Working Sets] UI is blocked when clearing all items in a breakpoint working set<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=148863">148863</a>: [Memory View] Memory View should clean up command handler for NextMemoryBlock action<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=148865">148865</a>: [Memory View]Sync service is holding onto rendering after a memory block is removed<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=149891">149891</a>: SourceLookupFacility should use IEditorMatchingStrategy<br> - -<h2>July 11, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=149069">149069</a>: [preferences] Move USE_STEP_FILTERING pref constant to public API<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=148776">148776</a>: !MESSAGE NLS unused messages<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=149076">149076</a>: [preferences] Use step filtering pref is not persisted over workbench restart<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=148526">148526</a>: Editing a string variable discards last entered character<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=149021">149021</a>: [tests] testInstructionPointerLeaks failing<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=139089">139089</a>: [breakpoints] NPE in JavaBreakpoint.fireRemoved () shutting down eclipse with Java Debug session running<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=144258">144258</a>: The image registry is created twice<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=144560">144560</a>: [console] NPE in ProcessConsole$InputReadJob<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=145545">145545</a>: [console] Console can only be associated with IDebugElement instances<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=148940">148940</a>: [Preferences] Step filter settings broken post-RC7<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=140561">140561</a>: debug view scrolls to top, loses thread focus<br> - -<h2>June 27, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=142972">142972</a>: [launching] Add "Run" to context menu of shared launch config<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=148006">148006</a>: [console] deadlock in ConsoleDocument during ant execution in autobuild<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=148646">148646</a>: [console] current console combo uses CHECK instead of RADIO style buttons<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=138719">138719</a>: [source lookup] memory leak in DecorationManager<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=132616">132616</a>: [console] Console corrupts UTF-8<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=38387">38387</a>: NLS'ing of internal error messages<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=138473">138473</a>: [breakpoints] BreakpointManager sometimes fails to send a breakpoint-changed notification<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=142476">142476</a>: TVT3.2:TCT535: Text boxes ovelap with borders<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89594">89594</a>: [console] typing in the JSTConsole is screwy<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=137694">137694</a>: [console] scrollbar in empty console<br> - -<h2>June 20, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=67370">67370</a>: [console] F1 help missing - Console view<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=140487">140487</a>: [launching] The Debug/Run Configurations dialog uses wrong color<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=140823">140823</a>: [launching] Code clean up<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=141782">141782</a>: [help] Debug dialogs not offering help<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=141785">141785</a>: [help] No context help for Debug Dialogs<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=145634">145634</a>: [view management] Context-Based Debug View Activation only uses last contributed binding per view<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=147335">147335</a>: [help] Source Tab has no context help topic<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=147502">147502</a>: [view management] most relevant view should be brought to top<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=42876">42876</a>: [help] F1 help in the Launch Configuration Dialog<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=145766">145766</a>: [launching] Launch configuration change dialog appears twice<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=147464">147464</a>: [view management] debug view does not activate in non-debug perspective<br> - -<h2>June 13, 2006</h2> -<h3>Problem Reports Fixed</h3> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=132554">132554</a>: keybinding doesn't enable 'Use Step Filters/Step Debug' action<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=144900">144900</a>: TVT3.2:TCT824: FR : Base - Missing apostrophes in Perspective preferences<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=120606">120606</a>: [variables] Static variables disappeared after clicking a variable<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=136085">136085</a>: [variables] view doesn't remember column positions or even which column<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=140487">140487</a>: [launching] The Debug/Run Configurations dialog uses wrong color<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=141769">141769</a>: [preferences] Perspectives tab is broken<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=143569">143569</a>: Debug actions should check status after an action is completed<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=143805">143805</a>: [viewers] array does not grow when parent not visible<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=144221">144221</a>: [Memory View] Table rendering fails to show changes after resume<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=144258">144258</a>: The image registry is created twice<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=144400">144400</a>: [launching] LaunchManager keeps references on last resource delta<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=144560">144560</a>: [console] NPE in ProcessConsole$InputReadJob<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=144900">144900</a>: TVT3.2:TCT824: FR : Base - Missing apostrophes in Perspective preferences<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=145545">145545</a>: [console] Console can only be associated with IDebugElement instances<br> -<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=145553">145553</a>: [variables] Cannot modify String variable with empty string value with Change Value dialog<br> - -<p> </p></body> -</html> diff --git a/org.eclipse.debug.core/component.xml b/org.eclipse.debug.core/component.xml deleted file mode 100644 index 3fe9c5c8a..000000000 --- a/org.eclipse.debug.core/component.xml +++ /dev/null @@ -1,121 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<component xmlns="http://eclipse.org/component" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://eclipse.org/component ../component.xsd " - name="Eclipse Platform Debug"> - <plugin id="org.eclipse.debug.core" /> - - <package name="org.eclipse.debug.core"> - <type name="DebugEvent" subclass="false" /> - <type name="DebugException" subclass="false" /> - <type name="DebugPlugin" subclass="false" instantiate="false" /> - <type name="IBreakpointListener" /> - <type name="IBreakpointManager" implement="false" /> - <type name="IBreakpointManagerListener" /> - <type name="IBreakpointsListener" /> - <type name="IDebugEventFilter" /> - <type name="IDebugEventSetListener" /> - <type name="IExpressionListener" /> - <type name="IExpressionManager" implement="false" /> - <type name="IExpressionsListener" /> - <type name="ILaunch" /> - <type name="ILaunchConfiguration" implement="false" /> - <type name="ILaunchConfigurationListener" /> - <teyp name="ILaunchConfigurationMigrationDelegate" /> - <type name="ILaunchConfigurationType" implement="false" /> - <type name="ILaunchConfigurationWorkingCopy" implement="false" /> - <type name="ILaunchesListener" /> - <type name="ILaunchesListener2" /> - <type name="ILaunchListener" /> - <type name="ILaunchManager" implement="false" /> - <type name="ILaunchMode" implement="false" /> - <type name="ILogicalStructureProvider" /> - <type name="ILogicalStructureType" /> - <type name="IMemoryBlockListener" /> - <type name="IMemoryBlockManager" implement="false" /> - <type name="IProcessFactory" /> - <type name="IStatusHandler" /> - <type name="IStreamListener" /> - <type name="Launch" /> - </package> - <package name="org.eclipse.debug.core.model"> - <type name="Breakpoint" /> - <type name="DebugElement" /> - <type name="IBreakpoint" /> - <type name="IDebugElement" /> - <type name="IDebugModelProvider" /> - <type name="IDebugTarget" /> - <type name="IDisconnect" /> - <type name="IDropToFrame" /> - <type name="IErrorReportingExpression" /> - <type name="IExpression" /> - <type name="IFilteredStep" /> - <type name="IFlushableStreamMonitor" /> - <type name="IIndexedValue" /> - <type name="ILaunchConfigurationDelegate" /> - <type name="ILaunchConfigurationDelegate2" /> - <type name="ILineBreakpoint" /> - <type name="ILogicalStructureTypeDelegate" /> - <type name="ILogicalStructureTypeDelegate2" /> - <type name="IMemoryBlock" /> - <type name="IMemoryBlockExtension" /> - <type name="IMemoryBlockRetrieval" /> - <type name="IMemoryBlockRetrievalExtension" /> - <type name="IPersistableSourceLocator" /> - <type name="IProcess" /> - <type name="IRegister" /> - <type name="IRegisterGroup" /> - <type name="ISourceLocator" /> - <type name="IStackFrame" /> - <type name="IStep" /> - <type name="IStepFilters" /> - <type name="IStreamMonitor" /> - <type name="IStreamsProxy" /> - <type name="IStreamsProxy2" /> - <type name="ISuspendResume" /> - <type name="ITerminate" /> - <type name="IThread" /> - <type name="IValue" /> - <type name="IValueModification" /> - <type name="IVariable" /> - <type name="IWatchExpression" implement="false" /> - <type name="IWatchExpressionDelegate" /> - <type name="IWatchExpressionListener" /> - <type name="IWatchExpressionResult" /> - <type name="IWatchpoint" /> - <type name="LaunchConfigurationDelegate" /> - <type name="LineBreakpoint" /> - <type name="MemoryByte" /> - <type name="RuntimeProcess" /> - </package> - <package name="org.eclipse.debug.core.sourcelookup"> - <type name="AbstractSourceLookupDirector" /> - <type name="AbstractSourceLookupParticipant" /> - <type name="IPersistableSourceLocator2" /> - <type name="ISourceContainer" /> - <type name="ISourceContainerType" implement="false" /> - <type name="ISourceContainerTypeDelegate" /> - <type name="ISourceLookupDirector" /> - <type name="ISourceLookupParticipant" /> - <type name="ISourcePathComputer" implement="false" /> - <type name="ISourcePathComputerDelegate" /> - </package> - <package name="org.eclipse.debug.core.sourcelookup.containers"> - <type name="AbstractSourceContainer" /> - <type name="AbstractSourceContainerTypeDelegate" /> - <type name="ArchiveSourceContainer" subclass="false" /> - <type name="CompositeSourceContainer" /> - <type name="ContainerSourceContainer" subclass="false" instantiate="false"/> - <type name="DefaultSourceContainer" subclass="false" /> - <type name="DirectorySourceContainer" subclass="false" /> - <type name="ExternalArchiveSourceContainer" subclass="false" /> - <type name="FolderSourceContainer" subclass="false" /> - <type name="LocalFileStorage" subclass="false" /> - <type name="ProjectSourceContainer" subclass="false" /> - <type name="WorkspaceSourceContainer" subclass="false" /> - <type name="ZipEntryStorage" subclass="false" /> - </package> - - <component-depends unrestricted="true"/> - -</component>
\ No newline at end of file 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 f4f5cf33f..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugEvent.java +++ /dev/null @@ -1,460 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 objects that can be serialized 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.DebugEvent_illegal_kind); - 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.DebugEvent_illegal_detail); - 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 e027e1f39..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugException.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 objects that can be serialized 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 10a76b64a..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java +++ /dev/null @@ -1,1380 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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.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.ISaveContext; -import org.eclipse.core.resources.ISaveParticipant; -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.ListenerList; -import org.eclipse.core.runtime.MultiStatus; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.Plugin; -import org.eclipse.core.runtime.SafeRunner; -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.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; -import org.xml.sax.helpers.DefaultHandler; - -import com.ibm.icu.text.MessageFormat; - -/** - * 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$ - - /** - * Simple identifier constant for the launch options extension point - * - * @since 3.3 - */ - public static final String EXTENSION_POINT_LAUNCH_OPTIONS = "launchOptions"; //$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 re-launched 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 attribute that designates whether or not it's associated - * launch should capture output. Value is a string representing a boolean - - * <code>true</code> or <code>false</code>. When unspecified, the default - * value is considered <code>true</code>. - * - * @since 3.1 - */ - public static final String ATTR_CAPTURE_OUTPUT = PI_DEBUG_CORE + ".capture_output"; //$NON-NLS-1$ - - - /** - * This launch attribute designates the encoding to be used by the console - * associated with the launch. When unspecified, the platform's default - * encoding will be used. - * <p> - * Value of this constant is the same as the value of the old - * <code>IDebugUIConstants.ATTR_CONSOLE_ENCODING</code> constant for backward - * compatibility. - * </p> - * @since 3.3 - */ - public static final String ATTR_CONSOLE_ENCODING = "org.eclipse.debug.ui.ATTR_CONSOLE_ENCODING"; //$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 = new ListenerList(); - - /** - * Event filters, or <code>null</code> if none. - */ - private ListenerList fEventFilters = null; - - /** - * Whether this plug-in 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; - private final Object fRunnableLock = new Object(); - - /** - * 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 { - - EventNotifier fNotifier = new EventNotifier(); - - /** - * Creates a new event dispatch job. - */ - public EventDispatchJob() { - super(DebugCoreMessages.DebugPlugin_1); - setPriority(Job.INTERACTIVE); - setSystem(true); - } - /* (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) { - fNotifier.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.isEmpty()); - } - - } - - /** - * 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 plug-in. - */ - 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) { - 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.isEmpty()) - return; - synchronized (fEventQueue) { - fEventQueue.add(events); - } - fEventDispatchJob.schedule(); - } - - /** - * Asynchronously executes the given runnable in a separate - * thread, after debug event dispatch has completed. If debug - * events are not currently being dispatched, the runnable is - * scheduled to run in a separate thread immediately. - * - * @param r runnable to execute asynchronously - * @since 2.1 - */ - public void asyncExec(Runnable r) { - synchronized(fRunnableLock) { - if (fRunnables == null) { - // initialize runnables and asynchronous 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("Registered status handler {0} does not implement required interface IStatusHandler.", 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) { - 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(); - } - - fEventListeners.clear(); - - if (fEventFilters != null) { - fEventFilters = null; - } - SourceLookupUtils.shutdown(); - setDefault(null); - ResourcesPlugin.getWorkspace().removeSaveParticipant(this); - savePluginPreferences(); - } finally { - super.stop(context); - } - } - - /* (non-Javadoc) - * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext) - */ - public void start(BundleContext context) throws Exception { - super.start(context); - ResourcesPlugin.getWorkspace().addSaveParticipant(this, - new ISaveParticipant() { - public void saving(ISaveContext context) throws CoreException { - savePluginPreferences(); - } - public void rollback(ISaveContext context) { - } - public void prepareToSave(ISaveContext context) throws CoreException { - } - public void doneSaving(ISaveContext 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. - * <p> - * If the launch configuration associated with the given launch - * specifies a process factory, it will be used to instantiate - * the new process. - * </p> - * @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 - * @see IProcessFactory - */ - 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. - * <p> - * If the launch configuration associated with the given launch - * specifies a process factory, it will be used to instantiate - * the new process. - * </p> - * @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 - * @see IProcessFactory - * @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); - } - - /** - * Returns the default logical structure type among the given combination of - * logical structure types, or <code>null</code> if none. When the given combination - * of logical structure type is applicable for a value, the default logical structure - * type is used to display a value. - * - * @param types a combination of structures applicable to a value - * @return the default structure that should be used to display the value - * or <code>null</code> if none - * - * @since 3.1 - */ - public static ILogicalStructureType getDefaultStructureType(ILogicalStructureType[] types) { - return LogicalStructureManager.getDefault().getSelectedStructureType(types); - } - - /** - * Sets the default logical structure type among the given combination of logical structure - * types. The logical structure types provided should all be applicable to a single - * value. Specifying <code>null</code> indicates there is no default logical structure - * for the given combination of types. - * - * @param types a combination of logical structure types applicable to a value - * @param def the default logical structure among the given combination of types - * or <code>null</code> if none - * - * @since 3.1 - */ - public static void setDefaultStructureType(ILogicalStructureType[] types, ILogicalStructureType def) { - LogicalStructureManager.getDefault().setEnabledType(types, def); - } - - /** - * 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) { - Status status = new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, DebugCoreMessages.DebugPlugin_Exception_occurred_executing_command_line__1, e); - 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.DebugPlugin_Eclipse_runtime_does_not_support_working_directory_2, e); - 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 registered. - * - * @param filter debug event filter - * @since 2.0 - */ - public void addDebugEventFilter(IDebugEventFilter filter) { - if (fEventFilters == null) { - fEventFilters = new ListenerList(); - } - 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 externalized, 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].getContributor().getName(); - log(new Status(IStatus.ERROR, DebugPlugin.PI_DEBUG_CORE, INTERNAL_ERROR, MessageFormat.format("Invalid process factory extension contributed by {0}; id: {1}", 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("Invalid status handler extension: {0}", 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.DebugPlugin_Debug_async_queue_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 (fRunnableLock) { - v = fRunnables; - fRunnables = new Vector(5); - } - MultiStatus failed = null; - monitor.beginTask(DebugCoreMessages.DebugPlugin_Debug_async_queue_1, v.size()); - 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.DebugPlugin_0, null); - } - failed.add(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugPlugin.INTERNAL_ERROR, DebugCoreMessages.DebugPlugin_0, e)); - } - monitor.worked(1); - } - monitor.done(); - if (failed == null) { - return Status.OK_STATUS; - } - return failed; - } - - } - - /** - * 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, "An exception occurred while filtering debug events.", exception); //$NON-NLS-1$ - log(status); - break; - case NOTIFY_EVENTS: - status = new Status(IStatus.ERROR, getUniqueIdentifier(), INTERNAL_ERROR, "An exception occurred while dispatching debug events.", 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]; - SafeRunner.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]; - SafeRunner.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.SourceLookupUtils_3, e); - } - 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.SourceLookupUtils_4, e); - } catch (IOException e) { - abort(SourceLookupMessages.SourceLookupUtils_5, e); - } - 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(); - parser.setErrorHandler(new DefaultHandler()); - stream = new ByteArrayInputStream(document.getBytes()); - root = parser.parse(stream).getDocumentElement(); - } catch (ParserConfigurationException e) { - abort(SourceLookupMessages.SourceLookupUtils_6, e); - } catch (FactoryConfigurationError e) { - abort(SourceLookupMessages.SourceLookupUtils_7, e); - } catch (SAXException e) { - abort(SourceLookupMessages.SourceLookupUtils_8, e); - } catch (IOException e) { - abort(SourceLookupMessages.SourceLookupUtils_9, e); - } finally { - try{ - if (stream != null) { - stream.close(); - } - } catch(IOException e) { - abort(SourceLookupMessages.SourceLookupUtils_10, e); - } - } - 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(); - buf.append(parseString()); - if (buf.length() == 0 && Platform.getOS().equals(Constants.OS_WIN32)) { - // empty string on 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(); - } - } - - /** - * Parses the given command line into separate 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 49e4bef97..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointListener.java +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 unregister 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 59c6a8585..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManager.java +++ /dev/null @@ -1,253 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 readable 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); - -} - - 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 7047e3f3a..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointManagerListener.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 6e0aa6ef5..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IBreakpointsListener.java +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 unregister with the - * breakpoint manager. - * <p> - * This interface is analogous 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 94c815aa4..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventFilter.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 683270baa..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IDebugEventSetListener.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 d82e6bfba..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionListener.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 unregister 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 918f3b52e..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionManager.java +++ /dev/null @@ -1,169 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 a73a72eb2..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IExpressionsListener.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 unregister with the - * expression manager. - * <p> - * This interface is analogous 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 fe0e3b844..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunch.java +++ /dev/null @@ -1,178 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 - * @see org.eclipse.debug.core.IProcessFactory - */ -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 02be939cc..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfiguration.java +++ /dev/null @@ -1,558 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.debug.core; - - -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IResource; -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$ - - /** - * 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 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; - - /** - * 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 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 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 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 <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.Set</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> - * - * @since 3.3 - * - * EXPERIMENTAL - */ - public Set getAttribute(String attributeName, Set 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 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 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; - - /** - * 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 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 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 the resources this launch configuration is associated with or <code>null</code> - * if none. Clients contributing launch configuration types are responsible for maintaining - * resource mappings as appropriate. - * - * @return the resources this launch configuration is associated with or <code>null</code> - * @throws CoreException unable to get the mapped resource - * @since 3.2 - */ - public IResource[] getMappedResources() 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 the name of this launch configuration. This is - * a handle-only method. - * - * @return the name of this launch configuration - */ - public String getName(); - - /** - * Returns the launch modes that have been set on this configuration. - * <p> - * Setting launch modes on a configuration allows a launch to be - * performed in mixed mode - for example, debug and profile at the - * same time. - * </p> - * @return this configuration's launch modes - * - * <p> - * <strong>EXPERIMENTAL</strong>. This method has been added as - * part of a work in progress. There is no guarantee that this API will - * remain unchanged during the 3.3 release cycle. Please do not use this API - * without consulting with the Platform/Debug team. - * </p> - * @since 3.3 - */ - public Set getModes() throws CoreException; - - /** - * 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 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. - * <p> - * When a working copy (B) is created from a working copy (A), the newly - * created working copy (B) is initialized with the attributes from - * the first working copy (A). Whenever a working copy is saved, it is written - * back to the original non-working copy configuration. - * </p> - * @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 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 whether this launch configuration is a candidate for migration. - * - * @return whether this launch configuration is a candidate for migration - * @throws CoreException - * @see ILaunchConfigurationMigrationDelegate - * @since 3.2 - */ - public boolean isMigrationCandidate() 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(); - - /** - * 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 occurs 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 appropriate 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 occurs during the launch sequence - * @since 3.1 - */ - public ILaunch launch(String mode, IProgressMonitor monitor, boolean build, boolean register) throws CoreException; - - /** - * Migrates this launch configuration to be compatible with current tooling. - * Has no effect if this configuration is not a candidate for migration. - * Migration is performed by a launch configuration migration delegate. - * @throws CoreException if migration fails - * @since 3.2 - * @see ILaunchConfigurationMigrationDelegate - */ - public void migrate() 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 whether this launch configuration is read-only. - * A read-only configuration cannot be modified. - * - * @return whether this configuration is read-only - * - * @since 3.3 - */ - public boolean isReadOnly(); -} 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 0db5e61c7..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationListener.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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/ILaunchConfigurationMigrationDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationMigrationDelegate.java deleted file mode 100644 index 404340e47..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationMigrationDelegate.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ - -package org.eclipse.debug.core; - -import org.eclipse.core.runtime.CoreException; - -/** - * Responsible for migrating launch configurations between different versions of Eclipse. - * A migration delegate is contributed as an optional attribute of a - * <code>launchConfigurationType</code> extension and is responsible for identifying - * migration candidates and migrating launch configurations of that type. - * <p> - * For example, since 3.2 launch configurations may have resources mapped to them. A migration - * delegate could assign appropriate resources to a launch configuration create in an earlier - * version. - * </p> - * @since 3.2 - */ -public interface ILaunchConfigurationMigrationDelegate { - - /** - * Returns whether the given launch configuration requires migration. - * - * @param candidate potential migration candidate - * @return whether the given launch configuration requires migration - * @throws CoreException if an exception occurs determining the status of the - * given configuration - */ - public boolean isCandidate(ILaunchConfiguration candidate) throws CoreException; - - /** - * Migrates the given launch configuration to be compatible with the current tooling. - * - * @param candidate the candidate to be migrated, which can be a launch configuration - * or working copy - * @throws CoreException if an exception occurs during migration - */ - public void migrate(ILaunchConfiguration candidate) throws CoreException; - -} 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 fb1e313bc..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationType.java +++ /dev/null @@ -1,332 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.debug.core; - - -import java.util.Set; - -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> - * <extension point="org.eclipse.debug.core.launchConfigurationTypes"> - * <launchConfigurationType - * id="com.example.ExampleIdentifier" - * delegate="com.example.ExampleLaunchConfigurationDelegate" - * modes="run, debug" - * name="Example Application"> - * sourceLocatorId="com.example.SourceLocator"> - * sourcePathComputerId="com.example.SourcePathComputer"> - * </launchConfigurationType> - * </extension> - * </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 supports - <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> - * <li><code>sourceLocatorId</code> an optional unique identifier of a sourceLocator extension that - * is used to create the source locator for sessions launched using launch configurations - * of this type. This attribute was added in the 3.0 release.</li> - * <li><code>sourcePathComputerId</code> an optional unique identifier of a sourcePathComputer extension - * that is used to compute a default source lookup path for launch configurations of this type. - * This attribute was added in the 3.0 release.</li> - * </ul> - * </p> - * <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 development. Such that - * clients may access arbitrary attributes 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 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 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 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 - * @deprecated since 3.3, the method <code>getDelegates(Set)</code> should be used - * instead, as there can be more than one capable delegate per mode or combination - * of modes - */ - public ILaunchConfigurationDelegate getDelegate(String mode) throws CoreException; - - /** - * Returns the delegates capable of launching in the specified modes. - * - * @param modes set of launch modes - * @return the <code>ILaunchDelegate</code>s capable of launching - * in the specified modes or an empty collection if none - * @throws CoreException - * @since 3.3 - * - * <p> - * <strong>EXPERIMENTAL</strong>. This method has been added as - * part of a work in progress. There is no guarantee that this API will - * remain unchanged during the 3.3 release cycle. Please do not use this API - * without consulting with the Platform/Debug team. - * </p> - */ - public ILaunchDelegate[] getDelegates(Set modes) throws CoreException; - - /** - * Returns the preferred launch delegate for this type in the specified mode combination. - * - * @param modes the set of modes to support - * @return the preferred delegate or <code>null</code> if none - * @throws CoreException - * - * @since 3.3 - * - * EXPERIMENTAL - */ - public ILaunchDelegate getPreferredDelegate(Set modes) throws CoreException; - - /** - * Sets the preferred launch delegate for this type in the specified mode combination. - * - * @param modes launch mode combination - * @param delegate preferred launch delegate - * @throws CoreException - * - * @since 3.3 - * - * EXPERIMENTAL - */ - public void setPreferredDelegate(Set modes, ILaunchDelegate delegate) throws CoreException; - - /** - * Returns whether this launch configuration supports the specified launch - * mode combination. - * - * @param modes launch mode combination - * @return whether the launch mode combination is supported - * @since 3.3 - * <p> - * <strong>EXPERIMENTAL</strong>. This method has been added as - * part of a work in progress. There is no guarantee that this API will - * remain unchanged during the 3.3 release cycle. Please do not use this API - * without consulting with the Platform/Debug team. - * </p> - */ - public boolean supportsModeCombination(Set modes); - - /** - * Returns the unique identifier for this type of launch configuration - * - * @return the unique identifier for this type of launch configuration - */ - public String getIdentifier(); - - /** - * Returns the name of this type of launch configuration. - * - * @return the name of this type of launch configuration - */ - public String getName(); - - /** - * 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(); - - /** - * Returns the identifier of the persistable source locator registered with - * this launch configurations type, or <code>null</code> if unspecified. - * A source locator can be specified by a launch configuration type or - * launch delegate extension's <code>sourceLocatorId</code> attribute. - * <p> - * Only one source locator should be provided per launch configuration type - * and its launch delegates. - * </p> - * @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 source path computer registered with this launch configuration - * type or <code>null</code> if unspecified. A source path computer can be - * specified by a launch configuration type or launch delegate extension's - * <code>sourcePathComputerId</code> attribute. - * <p> - * Only one source path computer should be provided per launch configuration type - * and its launch delegates. - * </p> - * @return the source path computer registered with this launch configuration - * type or <code>null</code> if unspecified - * @since 3.0 - */ - public ISourcePathComputer getSourcePathComputer(); - - /** - * Returns all of the registered supported modes for this launch configuration type. - * This method does not return null. - * - * <p> - * The returned set does not convey any mode combination capability nor does it describe how or what the type can launch, all this method does is return - * a set of strings of all the modes in some way associated with this type - * </p> - * - * @return the set of all supported modes - * @since 3.2 - * - * @deprecated Since 3.3 all modes are provided as sets and not individual strings. The method <code>getSupportedModeCombinations</code> - * should be used instead to retrieve the complete listing of supported modes and their allowable combinations. - */ - public Set getSupportedModes(); - - /** - * Returns a <code>java.util.Set</code> of <code>java.util.Set</code>s containing all of the - * supported launch mode combinations for this type. - * - * @return a set of sets of all the supported mode combinations supported by this type - * - * @since 3.3 - * - * EXPERIMENTAL - */ - public Set getSupportedModeCombinations(); - - /** - * 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 - * accessible 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 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 the plug-in that contributed this launch configuration type. - * - * @return the name of contributing plug-in - * @since 3.3 - * - * <p> - * <strong>EXPERIMENTAL</strong>. This method has been added as - * part of a work in progress. There is no guarantee that this API will - * remain unchanged during the 3.3 release cycle. Please do not use this API - * without consulting with the Platform/Debug team. - * </p> - */ - public String getContributorName(); - -} 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 36e7ee96e..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java +++ /dev/null @@ -1,234 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.debug.core; - - -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IResource; -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); - - /** - * Sets the resources associated with this launch configuration, possibly <code>null</code>. - * Clients contributing launch configuration types are responsible for maintaining - * resource mappings. - * - * @param resources the resource to map to this launch configuration or <code>null</code> - * @since 3.2 - */ - public void setMappedResources(IResource[] resources); - - /** - * Set the launch modes for this configuration. - * Over-writes existing launch modes. - * <p> - * Setting launch modes on a configuration allows the configuration to - * be launched in a mixed mode - for example, debug and profile. - * </p> - * @param modes launch mode identifiers to set on this configuration - * or <code>null</code> to clear mode settings - * - * <p> - * <strong>EXPERIMENTAL</strong>. This method has been added as - * part of a work in progress. There is no guarantee that this API will - * remain unchanged during the 3.3 release cycle. Please do not use this API - * without consulting with the Platform/Debug team. - * </p> - * @since 3.3 - */ - public void setModes(Set modes); - - /** - * Adds the specified launch modes to this configuration's settings. - * <p> - * Setting launch modes on a configuration allows the configuration to - * be launched in a mixed mode - for example, debug and profile. - * </p> - * @param modes launch mode identifiers to append to the current set of - * launch modes set on this configuration - * - * <p> - * <strong>EXPERIMENTAL</strong>. This method has been added as - * part of a work in progress. There is no guarantee that this API will - * remain unchanged during the 3.3 release cycle. Please do not use this API - * without consulting with the Platform/Debug team. - * </p> - * @since 3.3 - */ - public void addModes(Set modes); - - /** - * Removes the specified launch modes from this configuration's settings. - * <p> - * Setting launch modes on a configuration allows the configuration to - * be launched in a mixed mode - for example, debug and profile. - * </p> - * @param modes launch mode identifiers to remove from the current set of - * launch modes set on this configuration - * - * <p> - * <strong>EXPERIMENTAL</strong>. This method has been added as - * part of a work in progress. There is no guarantee that this API will - * remain unchanged during the 3.3 release cycle. Please do not use this API - * without consulting with the Platform/Debug team. - * </p> - * @since 3.3 - */ - public void removeModes(Set modes); -} diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchDelegate.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchDelegate.java deleted file mode 100644 index cf480d75b..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchDelegate.java +++ /dev/null @@ -1,89 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.debug.core; - -import java.util.List; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.debug.core.model.ILaunchConfigurationDelegate; - -/** - * A proxy to an {@link ILaunchConfigurationDelegate}. Represents a - * launch delegate contributed to the <code>org.eclipse.debug.core.launchDelegates</code> - * extension point. - * - * @since 3.3 - * <p> - * <strong>EXPERIMENTAL</strong>. This interface has been added as - * part of a work in progress. There is no guarantee that this API will - * remain unchanged during the 3.3 release cycle. Please do not use this API - * without consulting with the Platform/Debug team. - * </p> - */ -public interface ILaunchDelegate { - - /** - * Returns this delegate's unique identifier. - * - * @return launch delegate identifier - */ - public String getId(); - - /** - * Returns a human readable name for this launch delegate - * or <code>null</code> if none. - * - * @return name or <code>null</code> - */ - public String getName(); - - /** - * Returns a description of this launch delegate, or - * <code>null</code> if none. - * - * @return description or <code>null</code> - */ - public String getDescription(); - - /** - * Returns the name of the plug-in that contributed this delegate. - * - * @return contributor name - */ - public String getContributorName(); - - /** - * Returns the underlying launch configuration. - * Causes the delegate to be instantiated. - * - * @return launch configuration delegate - * @exception CoreException if unable to instantiate the delegate - */ - public ILaunchConfigurationDelegate getDelegate() throws CoreException; - - /** - * Returns the complete set of launch modes supported by this delegate as a list of sets. - * Each set contains one of more launch mode identifiers. When a set contains more than - * one launch mode, it indicates that a mixed launch mode is supported. - * If no modes are available an empty list is returned. - * - * @return the complete set of launch modes this delegate supports - */ - public List getModes(); - - /** - * Returns the id of the plug-in that contributed this launch delegate. - * - * @return the id of the plug-in that contributed this launch delegate - */ - public String getPluginIdentifier(); - -} 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 427b6f4f9..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchListener.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 7cbf24ba6..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchManager.java +++ /dev/null @@ -1,464 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 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 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); - /** - * 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); - /** - * Adds the given listener to the collection of registered launch listeners. - * Has no effect if an identical listener is already registered. - * - * @param listener the listener to register - * @since 2.1 - */ - public void addLaunchListener(ILaunchesListener listener); - /** - * Adds the given listener to the collection of registered launch listeners. - * Has no effect if an identical listener is already registered. - * - * @param listener the listener to register - */ - public void addLaunchListener(ILaunchListener listener); - /** - * 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); - /** - * Returns the collection of debug targets currently registered with this - * launch manager. - * - * @return an array of debug targets - */ - public IDebugTarget[] getDebugTargets(); - /** - * 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 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 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 retrieving - * a launch configuration - * @since 2.0 - */ - public ILaunchConfiguration[] getLaunchConfigurations(ILaunchConfigurationType type) throws CoreException; - - /** - * 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); - - /** - * Returns all defined launch configuration type extensions - * - * @return all defined launch configuration type extensions - * @since 2.0 - */ - public ILaunchConfigurationType[] getLaunchConfigurationTypes(); - - /** - * Returns the collection of launches currently registered - * with this launch manager. - * - * @return an array of launches - */ - public ILaunch[] getLaunches(); - - /** - * 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 all registered launch modes. - * - * @return all registered launch modes - * @since 3.0 - */ - public ILaunchMode[] getLaunchModes(); - - /** - * Returns a collection of launch configurations that required migration to be - * compatible with current tooling. - * - * @return a collection of launch configurations that required migration - * @exception org.eclipse.core.runtime.CoreException if an exception occurs determining - * migration candidates - * @since 3.2 - */ - public ILaunchConfiguration[] getMigrationCandidates() 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 the native system environment variables as a map of - * variable names and values (Strings). - * <p> - * Note that WIN32 system environment preserves - * the case of variable names but is otherwise case insensitive. - * Depending on what you intend to do with the environment, the - * lack of normalization may or may not be create problems. On - * WIN32, this method normalizes mixed-case keys variable names - * to upper case. Use {@link #getNativeEnvironmentCasePreserved()} - * instead to get a WIN32 system environment where the keys are - * the mixed-case variable names recorded by the OS. - * </p> - * - * @return the native system environment variables; on WIN32, mixed-case - * variable names (keys) have been normalized to upper case - * (key type: <code>String</code>; value type: <code>String</code>) - * @since 3.0 - */ - public Map getNativeEnvironment(); - - /** - * Returns the native system environment variables as a map of - * variable names and values (Strings). - * <p> - * Note that WIN32 system environment preserves - * the case of variable names but is otherwise case insensitive. - * Depending on what you intend to do with the environment, the - * lack of normalization may or may not be create problems. This - * method returns mixed-case keys using the variable names - * recorded by the OS. - * Use {@link #getNativeEnvironment()} instead to get a WIN32 system - * environment where all keys have been normalized to upper case. - * </p> - * - * @return the native system environment variables; on WIN32, mixed-case - * variable names (keys) are returned without normalization - * (key type: <code>String</code>; value type: <code>String</code>) - * @since 3.1 - */ - public Map getNativeEnvironmentCasePreserved(); - - /** - * Returns the collection of processes currently registered with this - * launch manager. - * - * @return an array of processes - */ - public IProcess[] getProcesses(); - - /** - * 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 all registered source container type extensions. - * - * @return all registered source container type extensions - * @since 3.0 - */ - public ISourceContainerType[] getSourceContainerTypes(); - - /** - * 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); - - /** - * 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; - - /** - * 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); - - /** - * 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; - - /** - * 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 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); - - - /** - * 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); - - /** - * Removes the given listener from the collection of registered launch listeners. - * Has no effect if an identical listener is not already registered. - * - * @param listener the listener to unregister - * @since 2.1 - */ - public void removeLaunchListener(ILaunchesListener listener); - - /** - * Removes the given listener from the collection of registered launch listeners. - * Has no effect if an identical listener is not already registered. - * - * @param listener the listener to unregister - */ - public void removeLaunchListener(ILaunchListener listener); - -} - - 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 248c820d2..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchMode.java +++ /dev/null @@ -1,65 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 identifier specified by the <code>mode</code> attribute - * and a human readable label specified by the <code>label</code> attribute. - * <pre> - * <extension point="org.eclipse.debug.core.launchModes"> - * <launchMode - * mode="profile" - * label="Profile"> - * </launchMode> - * </extension> - * </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(); - - /** - * Returns a human readable label for this launch mode when used in a - * cascade menu. For example, "Run As". Allows the label to be - * properly externalized. - * <p> - * A new attribute has been added the the launch mode extension in 3.2 - * to specify this label. When unspecified a default label is generated - * by concatenation, for backwards compatibility. - * </p> - * @return human readable label for this launch mode when used in a - * cascade menu - * @since 3.2 - */ - public String getLaunchAsLabel(); -} 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 1c93c48e4..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 analogous 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 7bf7022ca..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchesListener2.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 df4fb4872..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureProvider.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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> - * The following is an example of a logical structure provider extension: - * <pre> - * <extension point="org.eclipse.debug.core.logicalStructureProviders"> - * <logicalStructureProvider - * class="com.example.ExampleLogicalStructureProvider" - * modelIdentifier="com.example.debug.model"> - * </logicalStructureProvider> - * </extension> - * </pre> - * </p> - * In the example above, the specified logical structure provider will be consulted for - * alternative logical structures for values from the <code>com.example.debug.model</code> - * debug model as they are displayed in the variables view. - * </p> - * <p> - * Clients contributing logical structure providers must 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 ae049d52b..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILogicalStructureType.java +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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> - * <extension point="org.eclipse.debug.core.logicalStructureTypes"> - * <logicalStructureType - * id="com.example.ExampleLogicalStructure" - * class="com.example.ExampleLogicalStructureDelegate" - * modelIdentifier="com.example.debug.model" - * description="Ordered Collection"> - * </logicalStructureType> - * </extension> - * </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> - * Clients contributing logicalStructureType extensions are not intended to implement - * this interface. Rather, they provide an <code>ILogicalStructureTypeDelegate</code> - * that optionally implements <code>ILogicalStructureTypeDelegate2</code> to provide - * dynamic descriptions of logical structures. - * Since 3.1, clients contributing logicalStructureProviders extensions may implement this - * interface to return a collection of logical structure types applicable to a value. - * </p> - * @since 3.0 - * @see org.eclipse.debug.core.model.ILogicalStructureTypeDelegate - * @see org.eclipse.debug.core.ILogicalStructureProvider - */ -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 65ff4d535..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockListener.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 have 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 bbafff856..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IMemoryBlockManager.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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); - - /** - * Unregisters the given listener for memory block addition and - * removal notification. 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 associated 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 802ffc917..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IProcessFactory.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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>DebugPlugin.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> - * <extension point="org.eclipse.debug.core.processFactories"> - * <processFactory - * id="com.example.ExampleIdentifier" - * class="com.example.ExampleProcessFactory"> - * </processFactory> - * </extension> - * </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> - * <p> - * Clients contributing a process factory are intended to implement this interface. - * </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 571b06408..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IStatusHandler.java +++ /dev/null @@ -1,78 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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> - * <extension point="org.eclipse.debug.core.statusHandlers"> - * <statusHandler - * id="com.example.ExampleIdentifier" - * class="com.example.ExampleStatusHandler" - * plugin="com.example.ExamplePluginId" - * code="123"> - * </statusHandler> - * </extension> - * </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 a074c89f8..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/IStreamListener.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 80a2a4e36..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/Launch.java +++ /dev/null @@ -1,590 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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. - * </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 indicating that change notification should - * be suppressed. <code>true</code> until this - * launch has been initialized. - */ - 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) { - fConfiguration = launchConfiguration; - setSourceLocator(locator); - fMode = mode; - fSuppressChange = false; - getLaunchManager().addLaunchListener(this); - getLaunchManager().addLaunchConfigurationListener(this); - } - - /** - * Registers debug event listener. - */ - private void addEventListener() { - DebugPlugin.getDefault().addDebugEventListener(this); - } - - /** - * Removes debug event listener. - */ - private void removeEventListener() { - DebugPlugin.getDefault().removeDebugEventListener(this); - } - - /** - * @see org.eclipse.debug.core.model.ITerminate#canTerminate() - */ - public 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 Object[] getChildren() { - ArrayList children = new ArrayList(getDebugTargets0()); - children.addAll(getProcesses0()); - return children.toArray(); - } - - /** - * @see ILaunch#getDebugTarget() - */ - public IDebugTarget getDebugTarget() { - if (!getDebugTargets0().isEmpty()) { - return (IDebugTarget)getDebugTargets0().get(0); - } - return null; - } - - /** - * @see ILaunch#getProcesses() - */ - public 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 ISourceLocator getSourceLocator() { - return fLocator; - } - - /** - * @see ILaunch#setSourceLocator(ISourceLocator) - */ - public void setSourceLocator(ISourceLocator sourceLocator) { - fLocator = sourceLocator; - } - - /** - * @see org.eclipse.debug.core.model.ITerminate#isTerminated() - */ - public 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 void terminate() throws DebugException { - MultiStatus status= - new MultiStatus(DebugPlugin.getUniqueIdentifier(), DebugException.REQUEST_FAILED, DebugCoreMessages.Launch_terminate_failed, null); - - // 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 String getLaunchMode() { - return fMode; - } - - /** - * @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 void addDebugTarget(IDebugTarget target) { - if (target != null) { - if (!getDebugTargets0().contains(target)) { - addEventListener(); - getDebugTargets0().add(target); - fireChanged(); - } - } - } - - /** - * @see ILaunch#removeDebugTarget(IDebugTarget) - */ - public void removeDebugTarget(IDebugTarget target) { - if (target != null) { - if (getDebugTargets0().remove(target)) { - fireChanged(); - } - } - } - - /** - * @see ILaunch#addProcess(IProcess) - */ - public void addProcess(IProcess process) { - if (process != null) { - if (!getProcesses0().contains(process)) { - addEventListener(); - getProcesses0().add(process); - fireChanged(); - } - } - } - - /** - * @see ILaunch#removeProcess(IProcess) - */ - public 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); - } - removeEventListener(); - } - - /** - * @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)) { - removeEventListener(); - getLaunchManager().removeLaunchListener(this); - getLaunchManager().removeLaunchConfigurationListener(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())) { - fConfiguration = 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) { - fConfiguration = 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(); - } - } - } - } - } - - /* (non-Javadoc) - * @see org.eclipse.core.runtime.PlatformObject#getAdapter(java.lang.Class) - */ - public Object getAdapter(Class adapter) { - if (adapter.equals(ILaunch.class)) { - return this; - } - return super.getAdapter(adapter); - } - - - -} 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 3fd04ff38..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/Breakpoint.java +++ /dev/null @@ -1,341 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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[] {Boolean.valueOf(persisted), Boolean.valueOf(!persisted)}); - } - } - - /** - * 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.Breakpoint_no_associated_marker, null)); - } - 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()); - } - } - -} diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/DebugElement.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/DebugElement.java deleted file mode 100644 index 907f308e4..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/DebugElement.java +++ /dev/null @@ -1,163 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.debug.core.model; - -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; - -/** - * Implementation of common function for debug elements. - * <p> - * Clients may subclass this class. - * </p> - * @since 3.1 - */ -public abstract class DebugElement extends PlatformObject implements IDebugElement { - - private IDebugTarget fTarget; - - /** - * Constructs a debug element referring to an artifact in the given - * debug target. - * - * @param target debug target containing this element - */ - public DebugElement(IDebugTarget target) { - fTarget = target; - } - - /* (non-Javadoc) - * - * Debug target implementation should override this method. - * - * @see org.eclipse.debug.core.model.IDebugElement#getDebugTarget() - */ - public IDebugTarget getDebugTarget() { - return fTarget; - } - - /* (non-Javadoc) - * @see org.eclipse.debug.core.model.IDebugElement#getLaunch() - */ - public ILaunch getLaunch() { - return getDebugTarget().getLaunch(); - } - - /* (non-Javadoc) - * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class) - */ - public Object getAdapter(Class adapter) { - if (adapter == IDebugElement.class) { - return this; - } - - // a debug target may not implement IStepFilters - if (adapter == IStepFilters.class) { - if (getDebugTarget() instanceof IStepFilters) - return getDebugTarget(); - } - if (adapter == IDebugTarget.class) { - return getDebugTarget(); - } - if (adapter == ILaunch.class) { - return getLaunch(); - } - if (adapter == IProcess.class) { - return getDebugTarget().getProcess(); - } - return super.getAdapter(adapter); - } - - /** - * Fires a debug event. - * - * @param event debug event to fire - */ - public void fireEvent(DebugEvent event) { - DebugPlugin.getDefault().fireDebugEventSet(new DebugEvent[] {event}); - } - - /** - * Fires a change event for this debug element - * with the specified detail code. - * - * @param detail detail code for the change event, - * such as <code>DebugEvent.STATE</code> or <code>DebugEvent.CONTENT</code> - */ - public void fireChangeEvent(int detail) { - fireEvent(new DebugEvent(this, DebugEvent.CHANGE, detail)); - } - - /** - * Fires a creation event for this debug element. - */ - public void fireCreationEvent() { - fireEvent(new DebugEvent(this, DebugEvent.CREATE)); - } - - /** - * Fires a resume for this debug element with - * the specified detail code. - * - * @param detail detail code for the resume event, such - * as <code>DebugEvent.STEP_OVER</code> - */ - public void fireResumeEvent(int detail) { - fireEvent(new DebugEvent(this, DebugEvent.RESUME, detail)); - } - - /** - * Fires a suspend event for this debug element with - * the specified detail code. - * - * @param detail detail code for the suspend event, such - * as <code>DebugEvent.BREAKPOINT</code> - */ - public void fireSuspendEvent(int detail) { - fireEvent(new DebugEvent(this, DebugEvent.SUSPEND, detail)); - } - - /** - * Fires a terminate event for this debug element. - */ - public void fireTerminateEvent() { - fireEvent(new DebugEvent(this, DebugEvent.TERMINATE)); - } - - /** - * Throws a debug exception with a status code of <code>TARGET_REQUEST_FAILED</code>. - * - * @param message exception message - * @param e underlying exception or <code>null</code> - * @throws DebugException - */ - protected void requestFailed(String message, Throwable e) throws DebugException { - throw new DebugException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), - DebugException.TARGET_REQUEST_FAILED, message, e)); - } - - /** - * Throws a debug exception with a status code of <code>NOT_SUPPORTED</code>. - * - * @param message exception message - * @param e underlying exception or <code>null</code> - * @throws DebugException - */ - protected void notSupported(String message, Throwable e) throws DebugException { - throw new DebugException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), - DebugException.NOT_SUPPORTED, message, e)); - } -} 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 d25865518..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IBreakpoint.java +++ /dev/null @@ -1,222 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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> - * <extension point="org.eclipse.debug.core.breakpoints"> - * <breakpoint - * id="com.example.Breakpoint" - * class="com.example.Breakpoint" - * markerType="com.example.BreakpointMarker"> - * </breakpoint> - * </extension> - * <extension point="org.eclipse.core.resources.markers"> - * <marker - * id="com.example.BreakpointMarker" - * super type="org.eclipse.debug.core.breakpointMarker" - * attribute name ="exampleAttribute"> - * </marker> - * </extension> - * </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 across workspace - * invocations. - * - * @see org.eclipse.core.resources.IMarker#getAttribute(String, boolean) - */ - public static final String PERSISTED= "org.eclipse.debug.core.persisted"; //$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; - -} - - 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 a6defd6c5..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugElement.java +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 49fd1777a..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugModelProvider.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 0eb074a1a..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDebugTarget.java +++ /dev/null @@ -1,95 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 c0cf267d5..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDisconnect.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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/IDropToFrame.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDropToFrame.java deleted file mode 100644 index 79229afd4..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IDropToFrame.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 drop to frame. Drop to frame - * generally means popping a selected stack frame (and all frames above it) from - * the execution stack and then stepping back into the frame. - * - * @since 3.1 - */ -public interface IDropToFrame { - - /** - * Returns whether this element can currently perform a drop to frame. - * @return whether this element can currently perform a drop to frame - */ - public boolean canDropToFrame(); - - /** - * Performs a drop to frame on this element. Implementations must generate - * events such that debug clients can update appropriately, such as corresponding - * <code>RESUME</code> and <code>SUSPEND</code> events, or a single <code>CHANGE</code> - * event when the drop is complete. Implementations should implement drop to frame - * in a non-blocking fashion. - * - * @throws 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 dropToFrame() throws DebugException; -} 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 3ba24d400..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IErrorReportingExpression.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 31c4f25d7..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IExpression.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 24e375c12..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFilteredStep.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 463faa3ff..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IFlushableStreamMonitor.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 0b66289af..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IIndexedValue.java +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 e6480995f..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 525b86a90..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILaunchConfigurationDelegate2.java +++ /dev/null @@ -1,94 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 occurs 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 launched - * @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 9b7b4cf0c..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILineBreakpoint.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 50865a79e..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 representing 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 logical 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 occurs 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 82827e79e..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ILogicalStructureTypeDelegate2.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 plug-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 structure 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 7740c8adc..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlock.java +++ /dev/null @@ -1,84 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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. - * <p> - * Clients may implement this interface. - * </p> - * @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 specified 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 cb4134807..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockExtension.java +++ /dev/null @@ -1,243 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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; - -/** - * Extensions to {@link org.eclipse.debug.core.model.IMemoryBlock}. Allows - * for bytes to be accessed in a larger address space, and for state information - * to be provided for each byte. - * <p> - * Clients may optionally implement this interface when providing implementations of - * {@link org.eclipse.debug.core.model.IMemoryBlock}. - * </p> - * @since 3.1 - * @see org.eclipse.debug.core.model.MemoryByte - */ -public interface IMemoryBlockExtension extends IMemoryBlock { - - /** - * Returns the expression used to create this memory block. An expression can - * be used as name for a memory block and typically represents an expression - * used to compute a base address for a memory block. - * - * @return the expression used to create this memory block - */ - public String getExpression(); - - /** - * Returns the base address of this memory block as a big integer. The - * address is in terms of addressable units. - * - * @return the base address of this memory block - * @throws DebugException if unable to retrieve the base address - */ - public BigInteger getBigBaseAddress() throws DebugException; - - /** - * Returns the hard start address of this memory block as a big integer, or - * <code>null</code> if none. A <code>null</code> start address indicates that - * memory may be retrieved at any address less than this memory block's base - * address. - * - * @return the hard start address of this memory block or <code>null</code> - * @throws DebugException if unable to retrieve the start address of this memory block. - */ - public BigInteger getMemoryBlockStartAddress() throws DebugException; - - /** - * Returns the hard end address of this memory block as a big integer, or - * <code>null</code> if none. A <code>null</code> end address indicates that - * memory may be retrieved from any positive offset relative to the base address - * of this memory block. - * - * @return the hard end address of this memory block or <code>null</code> - * @throws DebugException if unable to retrieve the end address of this memory block. - */ - public BigInteger getMemoryBlockEndAddress() throws DebugException; - - /** - * Returns the length of this memory block, or -1 if unbounded. - * Returns "end address - start address" for a memory block with a fixed - * length (i.e. when both start and end address are known). - * Returns -1 for an unbounded memory block (i.e. when start or end address is - * <code>null</code>). - * - * @return length of this memory block or -1 if unbounded - * @throws DebugException if unable to retrieve the length of this memory block. - */ - public BigInteger getBigLength() throws DebugException; - - /** - * Returns the address size of this memory block in number of bytes. The address - * size indicates the number of bytes used to construct an address. - * - * @return address size in number of bytes - * @throws DebugException if unable to retrieve the address size - */ - public int getAddressSize() throws DebugException; - - /** - * Returns whether the base address of this memory block can be modified. - * - * @return whether the base address of this memory block can be modified - * @throws DebugException is unable to determine if base address modification is supported - */ - public boolean supportBaseAddressModification() throws DebugException; - - /** - * Returns whether this memory block manages the change state of its bytes. - * <p> - * If a memory block manages changes the memory block is responsible for - * setting the <code>CHANGED</code> state of its <code>MemoryByte</code>'s - * returned from <code>getBytesFromAddress</code> and - * <code>getBytesFromOffset</code>. The changed state of a byte should - * be updated each time a thread suspends in a memory block's target. - * </p> - * @return whether this memory block manages the change state of its bytes - */ - public boolean supportsChangeManagement(); - - /** - * Sets the base address of this memory block to the given address. - * - * @param address new base address - * @throws DebugException if unable to modify the base address, or modification - * of the base address fails - */ - public void setBaseAddress(BigInteger address) throws DebugException; - - /** - * Returns bytes from this memory block based on the base address and - * addressable size of this memory block. - * <p> - * A memory block may be asked to retrieve bytes beyond it's start - * or end address. If a memory block is unable to retrieve memory outside - * these boundaries, implementations should return memory bytes with - * the <code>READABLE</code> bit turned off for each byte outside - * the of the accessible range. An exception should not be thrown in this - * case. - * </p> - * @param unitOffset zero based offset into this memory block at which to start - * retrieving bytes in terms of addressable units. Client should retrieve - * memory starting from "base address + offset". - * @param addressableUnits the number of addressable units to retrieve - * @return an array of bytes from this memory block based on the given offset - * and number of units. The size of the array returned must to be equal to - * <code>units</code> * <code>getAddressableSize()</code>. - * @throws DebugException if unable to retrieve the specified bytes due to - * a failure communicating with the target - * @see MemoryByte - */ - public MemoryByte[] getBytesFromOffset(BigInteger unitOffset, long addressableUnits) throws DebugException; - - /** - * Returns bytes from this memory block based on the given address and the - * addressable size of this memory block. - * <p> - * A memory block may be asked to retrieve bytes beyond it's start - * or end address. If a memory block is unable to retrieve memory outside - * these boundaries, implementations should return memory bytes with - * the <code>READABLE</code> bit turned off for each byte outside - * the of the accessible range. An exception should not be thrown in this - * case. - * </p> - * @param address address at which to begin retrieving bytes in terms - * of addressable units - * @param units is the number of addressable units of memory to retrieve - * @return an array of bytes from this memory block based on the given address - * and number of units. The size of the array returned must to be equal to - * <code>units</code> * <code>getAddressableSize()</code>. - * @throws DebugException if unable to retrieve the specified bytes due to - * a failure communicating with the target - * @see MemoryByte - */ - public MemoryByte[] getBytesFromAddress(BigInteger address, long units) throws DebugException; - - /** - * Sets bytes in this memory block at the specified offset within this memory block to - * the specified bytes. The offset is zero based. After successfully modifying the - * specified bytes, a debug event should be fired with a kind of <code>CHANGE</code>. - * - * @param offset the zero based offset at which to set the new value. Modify - * the memory starting from base address + offset. - * @param bytes replacement bytes - * @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> - * @see org.eclipse.debug.core.DebugEvent - */ - public void setValue(BigInteger offset, byte[] bytes) throws DebugException; - - /** - * Connects the given client to this memory block. Allows a memory block - * to know when it is being monitored. Has no effect if an identical - * client is already connected. - * <p> - * Memory blocks supporting change management may selectively turn off - * change management when no clients are connected, for reasons of - * efficiency. Clients that require access to change state information - * are required to connect to a memory block before change information - * is considered to be valid. - * </p> - * @param client the client to connect - */ - public void connect(Object client); - - /** - * Disconnects the given client from this memory block. Has no effect if - * an identical client is not already connected. - * - * @param client the client to disconnect - */ - public void disconnect(Object client); - - /** - * Returns the possibly empty list of clients currently connected to this - * memory block. - * - * @return the possibly empty list of clients currently connected to this - * memory block - */ - public Object[] getConnections(); - - /** - * Dispose this memory block. Connected clients are disconnected. - * @throws DebugException if the memory block cannot be disposed. - */ - public void dispose() throws DebugException; - - /** - * Returns the origin of this memory block. - * - * @return the origin of this memory block - */ - public IMemoryBlockRetrieval getMemoryBlockRetrieval(); - - /** - * Returns this memory block's addressable size in number of bytes. The addressable size - * of memory block indicates the minimum number of bytes that can be retrieved as - * a single unit. - * - * @return this memory block's addressable size - * @throws DebugException if the addressable size cannot be obtained. - */ - public int getAddressableSize() throws DebugException; -} 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 925366297..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrieval.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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/IMemoryBlockRetrievalExtension.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrievalExtension.java deleted file mode 100644 index f6aea1b55..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IMemoryBlockRetrievalExtension.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ - -package org.eclipse.debug.core.model; - -import org.eclipse.debug.core.DebugException; - - -/** - * Extended capabilities for memory block retrieval. Supports the retrieval - * of memory blocks based on an expression and context. - * - * @since 3.1 - */ -public interface IMemoryBlockRetrievalExtension extends IMemoryBlockRetrieval { - - /** - * Retrieves and returns a memory block. - * - * @param expression expression to be evaluated to an address - * @param context context for evaluating the expression. This is typically - * a debug element. - * @return a memory block based on the given expression and context - * @throws DebugException if unable to retrieve the specified memory - */ - - public IMemoryBlockExtension getExtendedMemoryBlock(String expression, Object context) 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 fe7ac033b..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IPersistableSourceLocator.java +++ /dev/null @@ -1,84 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 specific 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> - * <extension point="org.eclipse.debug.core.sourceLocators"> - * <sourceLocator - * id="com.example.ExampleIdentifier" - * class="com.example.ExampleSourceLocator" - * name="Example Source Locator"> - * </sourceLocator> - * </extension> - * </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 source 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 7ce2452b4..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IProcess.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 d3bd7390c..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegister.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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. - * <p> - * Clients may implement this interface. - * </p> - * @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 528df358f..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IRegisterGroup.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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. - * <p> - * Clients may implement this interface. - * </p> - * @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 6dda097fe..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/ISourceLocator.java +++ /dev/null @@ -1,68 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 72ee242e1..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStackFrame.java +++ /dev/null @@ -1,182 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 009aaad14..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStep.java +++ /dev/null @@ -1,96 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 1e11c956c..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStepFilters.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 interface 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 fdabfb2d7..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamMonitor.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 120e5e831..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-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 d0294dbb9..000000000 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/model/IStreamsProxy2.java +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2005 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - ************** |