Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonah Graham2018-11-23 08:04:51 -0500
committerJonah Graham2018-11-23 08:59:46 -0500
commit3caea240a38caa9b4913481ba9fb41d9b57a032c (patch)
tree240ffcb07ecd6e2d5029743bacd81e280e07adf8
parentff75ae80fa44dfc925064f7ca0169ac80997bc77 (diff)
downloadorg.eclipse.cdt-3caea240a38caa9b4913481ba9fb41d9b57a032c.tar.gz
org.eclipse.cdt-3caea240a38caa9b4913481ba9fb41d9b57a032c.tar.xz
org.eclipse.cdt-3caea240a38caa9b4913481ba9fb41d9b57a032c.zip
Bug 540373: Format some Java files that were missed
Some files which has other cleanups applied meant they needed to be reformatted again. e.g. the removing of type parameters shortened some lines of code that meant the wrapping changed. Change-Id: I68ca09567b9530cc2a085c33923642b6de2ec77b
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutoconfSubstRule.java2
-rw-r--r--build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/PathInfo.java3
-rw-r--r--build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DiscoveredPathManager.java3
-rw-r--r--build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/PerProjectSICollector.java3
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/Preconditions.java3
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java3
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java3
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuilderExternalSettingsProvider.java3
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java3
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/BuildEntryStorage.java3
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/tcmodification/PathComparator.java3
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/tcmodification/TcModificationUtil.java6
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/tcmodification/ToolListModification.java3
-rw-r--r--codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/CodanCorePlugin.java4
-rw-r--r--core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsListenersTests.java9
-rw-r--r--core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/settings/model/CProjectDescriptionDeltaTests.java6
-rw-r--r--core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/ProjectLanguageConfiguration.java3
-rw-r--r--core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/language/settings/providers/LanguageSettingsProvidersSerializer.java3
-rw-r--r--core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/xml/XmlProjectDescriptionStorage.java3
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/export/ExternalExportProjectProvider.java3
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/util/Profiler.java3
-rw-r--r--core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/UserDefinedEnvironmentSupplier.java3
-rw-r--r--core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/FoldingTest.java3
-rw-r--r--core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/FoldingTestBase.java3
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java3
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/EclipsePreferencesAdapter.java3
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/ProjectLanguageMappingWidget.java3
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsEntriesTab.java3
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/workingsets/AbstractWorkingSetConfigsContribution.java3
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/workingsets/IWorkingSetProjectConfigurationFactory.java3
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/workingsets/WorkingSetConfiguration.java3
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/CHelpConfigurationPropertyPage.java3
-rw-r--r--core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/TemplateClassWizard.java3
-rw-r--r--core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/pages/TemplateInputDialog.java3
-rw-r--r--debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/Trace.java4
-rw-r--r--debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/sourcelookup/CSourceNotFoundEditor.java3
-rw-r--r--debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/executables/SourceFilesViewer.java3
-rw-r--r--dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBPatternMatchingExpressions.java9
-rw-r--r--dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBRunControl_7_0_NS.java3
-rw-r--r--dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/framework/SyncUtil.java15
-rw-r--r--dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/CommandTimeoutTest.java4
-rw-r--r--dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/LaunchConfigurationAndRestartTest.java9
-rw-r--r--dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MICatchpointsTest.java6
-rw-r--r--dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIModifiedServicesTest.java4
-rw-r--r--dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRegistersTest.java4
-rw-r--r--dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRunControlTargetAvailableTest.java12
-rw-r--r--dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRunControlTest.java8
-rw-r--r--dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/OperationsWhileTargetIsRunningTest.java8
-rw-r--r--dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/SourceLookupTest.java3
-rw-r--r--dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/StepIntoSelectionTest.java6
-rw-r--r--dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/nonstop/GDBMultiNonStopRunControlTest.java248
-rw-r--r--dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/nonstop/ThreadStackFrameSyncTest.java16
-rw-r--r--dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyColumnSupport.java3
-rw-r--r--dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/breakpoints/BreakpointVMNode.java9
-rw-r--r--dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/breakpoints/BreakpointVMProvider.java3
-rw-r--r--dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/numberformat/FormattedValueRetriever.java6
-rw-r--r--dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/BreakpointsMediator.java6
-rw-r--r--dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/BreakpointsMediator2.java6
-rw-r--r--dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/command/CommandCache.java6
-rw-r--r--dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/service/DsfSession.java43
-rw-r--r--dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/ACPMSumDataGenerator.java368
-rw-r--r--dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/ACPMSumDataViewer.java819
-rw-r--r--dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/AsyncDataViewer.java473
-rw-r--r--dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/AsyncSumDataGenerator.java245
-rw-r--r--dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/AsyncSumDataViewer.java667
-rw-r--r--dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/DataGeneratorCacheManager.java259
-rw-r--r--dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/DataGeneratorWithExecutor.java777
-rw-r--r--dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/DataGeneratorWithThread.java410
-rw-r--r--dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/IDataGenerator.java53
-rw-r--r--dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/SyncDataViewer.java328
-rw-r--r--dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/requestmonitor/Async2Plus2.java30
-rw-r--r--dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/requestmonitor/AsyncHelloWorld.java57
-rw-r--r--dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/requestmonitor/AsyncQuicksort.java205
-rw-r--r--dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/FormattedValueTests.java9
-rw-r--r--memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/GoToAddressBarWidget.java3
-rw-r--r--memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/MemoryBrowser.java4
-rw-r--r--qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeEnvInfo.java6
-rw-r--r--qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeInfo.java3
-rw-r--r--qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/pdom/QtPDOMQObject.java6
-rw-r--r--testsrunner/org.eclipse.cdt.testsrunner/src/org/eclipse/cdt/testsrunner/internal/model/TestingSession.java3
80 files changed, 2547 insertions, 2739 deletions
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutoconfSubstRule.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutoconfSubstRule.java
index 6f7ba8fe88..16cec4204f 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutoconfSubstRule.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/AutoconfSubstRule.java
@@ -76,7 +76,7 @@ public class AutoconfSubstRule implements IPredicateRule {
// A valid id has some alphabetic character in it.
isId = true;
} else if (c >= '0' && c <= '9' || c == '_') {
- // continue
+ // continue
} else if (c == '@' && isId)
return getSuccessToken();
else
diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/PathInfo.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/PathInfo.java
index 762dc37182..349f4dd579 100644
--- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/PathInfo.java
+++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/PathInfo.java
@@ -45,8 +45,7 @@ public final class PathInfo {
fQuoteIncludePaths = quoteIncludePaths != null && quoteIncludePaths.length != 0
? (IPath[]) quoteIncludePaths.clone()
: EMPTY_PATH_ARRAY;
- fSymbols = symbols != null && symbols.size() != 0 ? getInternedHashMap(symbols)
- : new HashMap<>(0);
+ fSymbols = symbols != null && symbols.size() != 0 ? getInternedHashMap(symbols) : new HashMap<>(0);
fIncludeFiles = includeFiles != null && includeFiles.length != 0 ? (IPath[]) includeFiles.clone()
: EMPTY_PATH_ARRAY;
fMacroFiles = macroFiles != null && macroFiles.length != 0 ? (IPath[]) macroFiles.clone() : EMPTY_PATH_ARRAY;
diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DiscoveredPathManager.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DiscoveredPathManager.java
index 02e79c7cfc..02723556bf 100644
--- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DiscoveredPathManager.java
+++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DiscoveredPathManager.java
@@ -339,8 +339,7 @@ public class DiscoveredPathManager implements IDiscoveredPathManager, IResourceC
PerFileDiscoveredPathContainer container = new PerFileDiscoveredPathContainer(project);
CoreModel.setPathEntryContainer(new ICProject[] { cProject }, container, null);
if (changedResources != null) {
- List<PathEntryContainerChanged> changeDelta = new ArrayList<>(
- changedResources.size());
+ List<PathEntryContainerChanged> changeDelta = new ArrayList<>(changedResources.size());
for (IResource resource : changedResources) {
IPath path = resource.getFullPath();
changeDelta.add(
diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/PerProjectSICollector.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/PerProjectSICollector.java
index 70b5171ddf..9f17d0ac91 100644
--- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/PerProjectSICollector.java
+++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig2/PerProjectSICollector.java
@@ -338,8 +338,7 @@ public class PerProjectSICollector implements IScannerInfoCollector3, IScannerIn
LinkedHashMap<String, SymbolEntry> persistedSymbols = discPathInfo.getSymbolMap();
// Step 3. Merge scanner config from steps 1 and 2
- LinkedHashMap<String, SymbolEntry> candidateSymbols = new LinkedHashMap<>(
- persistedSymbols);
+ LinkedHashMap<String, SymbolEntry> candidateSymbols = new LinkedHashMap<>(persistedSymbols);
addedSymbols |= ScannerConfigUtil.scAddSymbolEntryMap2SymbolEntryMap(candidateSymbols,
sumDiscoveredSymbols);
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/Preconditions.java b/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/Preconditions.java
index 7e92e4129d..68094517da 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/Preconditions.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/suite/org/eclipse/cdt/managedbuilder/tests/suite/Preconditions.java
@@ -58,8 +58,7 @@ public class Preconditions extends TestCase {
IContentType contentTypeC = manager.getContentType(CCorePlugin.CONTENT_TYPE_CSOURCE);
fileExts.addAll(Arrays.asList(contentTypeC.getFileSpecs(IContentType.FILE_EXTENSION_SPEC)));
- Set<String> expectedExts = new TreeSet<>(
- Arrays.asList(new String[] { "C", "c", "c++", "cc", "cpp", "cxx" }));
+ Set<String> expectedExts = new TreeSet<>(Arrays.asList(new String[] { "C", "c", "c++", "cc", "cpp", "cxx" }));
assertEquals("Precodition FAILED - Content Types do not match expected defaults.", expectedExts.toString(),
fileExts.toString());
}
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java
index 29c0bcaa53..a498ba1363 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java
@@ -2163,8 +2163,7 @@ public class ManagedBuildManager extends AbstractCExtension {
// Call the start up config extensions. These may rely on the standard elements
// having already been loaded so we wait to call them from here.
if (startUpConfigElements != null) {
- buildDefStartupList = new ArrayList<>(
- startUpConfigElements.size());
+ buildDefStartupList = new ArrayList<>(startUpConfigElements.size());
for (IManagedConfigElement startUpConfigElement : startUpConfigElements) {
IManagedBuildDefinitionsStartup customConfigLoader;
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
index a6fb4c7d96..666187ed6c 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
@@ -1466,8 +1466,7 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
ICSettingEntry[] libs = CDataUtil.resolveEntries(unresolved, des);
if (libs.length > 0) {
for (ICExternalSetting setting : des.getExternalSettings()) {
- Set<ICSettingEntry> entries = new LinkedHashSet<>(
- Arrays.asList(setting.getEntries()));
+ Set<ICSettingEntry> entries = new LinkedHashSet<>(Arrays.asList(setting.getEntries()));
for (ICSettingEntry lib : libs) {
if (entries.contains(lib)) {
entries.remove(lib);
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuilderExternalSettingsProvider.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuilderExternalSettingsProvider.java
index 0c06fe854c..4664856136 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuilderExternalSettingsProvider.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/HeadlessBuilderExternalSettingsProvider.java
@@ -91,8 +91,7 @@ public class HeadlessBuilderExternalSettingsProvider extends CExternalSettingPro
if (desc == null)
continue;
for (ICConfigurationDescription cfg : desc.getConfigurations()) {
- ArrayList<String> extSettingIds = new ArrayList<>(
- Arrays.asList(cfg.getExternalSettingsProviderIds()));
+ ArrayList<String> extSettingIds = new ArrayList<>(Arrays.asList(cfg.getExternalSettingsProviderIds()));
for (Iterator<String> it = extSettingIds.iterator(); it.hasNext();)
if (ID.equals(it.next()))
it.remove();
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java
index 47669958f4..8a16828d6c 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Option.java
@@ -296,8 +296,7 @@ public class Option extends BuildObject implements IOption, IBuildPropertiesRest
case UNDEF_MACRO_FILES:
if (option.value != null) {
@SuppressWarnings("unchecked")
- ArrayList<OptionStringValue> list = new ArrayList<>(
- (ArrayList<OptionStringValue>) option.value);
+ ArrayList<OptionStringValue> list = new ArrayList<>((ArrayList<OptionStringValue>) option.value);
value = list;
}
if (option.defaultValue != null) {
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/BuildEntryStorage.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/BuildEntryStorage.java
index 91f4563b20..9a8c242ab8 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/BuildEntryStorage.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/dataprovider/BuildEntryStorage.java
@@ -254,8 +254,7 @@ public class BuildEntryStorage extends AbstractEntryStorage {
} else {
// If resolved, add each resolved entry as a separate UserEntryInfo
boolean isMultiple = rVes.length > 1;
- List<UserEntryInfo> sequense = isMultiple ? new ArrayList<>(rVes.length)
- : null;
+ List<UserEntryInfo> sequense = isMultiple ? new ArrayList<>(rVes.length) : null;
for (OptionStringValue rVe : rVes) {
ICLanguageSettingEntry entry = createUserEntry(option, rVe, flags, subst);
entryList.add(new UserEntryInfo(entry, ve, rVe, sequense));
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/tcmodification/PathComparator.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/tcmodification/PathComparator.java
index 0729b097a0..ba3c0dc083 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/tcmodification/PathComparator.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/tcmodification/PathComparator.java
@@ -113,8 +113,7 @@ public class PathComparator implements Comparator<IPath> {
//all children
SortedMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> children = getChildPathMap(map, path, false,
false);
- SortedMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> result = new TreeMap<>(
- INSTANCE);
+ SortedMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> result = new TreeMap<>(INSTANCE);
for (Iterator<Map.Entry<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>>> iter = children.entrySet()
.iterator(); iter.hasNext(); iter = children.entrySet().iterator()) {
Map.Entry<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> entry = iter.next();
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/tcmodification/TcModificationUtil.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/tcmodification/TcModificationUtil.java
index d3c08b071b..055a8cd90a 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/tcmodification/TcModificationUtil.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/tcmodification/TcModificationUtil.java
@@ -213,8 +213,7 @@ public class TcModificationUtil {
int[] types = new int[] { IRealBuildObjectAssociation.OBJECT_TOOLCHAIN,
IRealBuildObjectAssociation.OBJECT_BUILDER, IRealBuildObjectAssociation.OBJECT_TOOL, };
- TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> result = new TreeMap<>(
- PathComparator.INSTANCE);
+ TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> result = new TreeMap<>(PathComparator.INSTANCE);
@SuppressWarnings("unchecked")
TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> clone = (TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>>) initialMap
.clone();
@@ -572,8 +571,7 @@ public class TcModificationUtil {
public static TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> createPathMap(
PerTypeMapStorage<IRealBuildObjectAssociation, Set<IPath>> storage) {
int[] types = ObjectTypeBasedStorage.getSupportedObjectTypes();
- TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> result = new TreeMap<>(
- PathComparator.INSTANCE);
+ TreeMap<IPath, PerTypeSetStorage<IRealBuildObjectAssociation>> result = new TreeMap<>(PathComparator.INSTANCE);
for (int i = 0; i < types.length; i++) {
int type = types[i];
Map<IRealBuildObjectAssociation, Set<IPath>> map = storage.getMap(type, false);
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/tcmodification/ToolListModification.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/tcmodification/ToolListModification.java
index 6e89dc52a1..782954300d 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/tcmodification/ToolListModification.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/tcmodification/ToolListModification.java
@@ -247,8 +247,7 @@ public abstract class ToolListModification implements IToolListModification {
fOperations = new ModificationOperation[0];
}
} else {
- List<ModificationOperation> opList = new ArrayList<>(
- fCompatibleTools.size() + 1);
+ List<ModificationOperation> opList = new ArrayList<>(fCompatibleTools.size() + 1);
Set<Tool> keySet = fCompatibleTools.keySet();
for (Tool tool : keySet) {
if (tool == fRealTool)
diff --git a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/CodanCorePlugin.java b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/CodanCorePlugin.java
index ccf3ebf3f6..772f2198e4 100644
--- a/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/CodanCorePlugin.java
+++ b/codan/org.eclipse.cdt.codan.core/src/org/eclipse/cdt/codan/core/CodanCorePlugin.java
@@ -183,8 +183,8 @@ public class CodanCorePlugin extends Plugin {
if (bundle != null) {
BundleContext context = bundle.getBundleContext();
if (context != null) {
- ServiceTracker<DebugOptions, DebugOptions> tracker = new ServiceTracker<>(
- context, DebugOptions.class.getName(), null);
+ ServiceTracker<DebugOptions, DebugOptions> tracker = new ServiceTracker<>(context,
+ DebugOptions.class.getName(), null);
try {
tracker.open();
debugOptions = tracker.getService();
diff --git a/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsListenersTests.java b/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsListenersTests.java
index 062014dafd..50d9d2109b 100644
--- a/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsListenersTests.java
+++ b/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/language/settings/providers/LanguageSettingsListenersTests.java
@@ -534,16 +534,14 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
// add global provider which is not engaged
ILanguageSettingsProvider provider = new MockListenerRegisterer(PROVIDER_CUSTOM_GLOBAL,
PROVIDER_CUSTOM_GLOBAL_NAME);
- List<ILanguageSettingsProvider> providers = new ArrayList<>(
- workspaceProvidersOriginal);
+ List<ILanguageSettingsProvider> providers = new ArrayList<>(workspaceProvidersOriginal);
providers.add(provider);
LanguageSettingsManager.setWorkspaceProviders(providers);
assertEquals(0, MockListenerRegisterer.getCount(PROVIDER_CUSTOM_GLOBAL));
}
{
// remove global provider and restore original list
- List<ILanguageSettingsProvider> providers = new ArrayList<>(
- workspaceProvidersOriginal);
+ List<ILanguageSettingsProvider> providers = new ArrayList<>(workspaceProvidersOriginal);
LanguageSettingsManager.setWorkspaceProviders(providers);
assertEquals(0, MockListenerRegisterer.getCount(PROVIDER_CUSTOM_GLOBAL));
}
@@ -601,8 +599,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
}
{
// remove global provider
- List<ILanguageSettingsProvider> providers = new ArrayList<>(
- workspaceProvidersOriginal);
+ List<ILanguageSettingsProvider> providers = new ArrayList<>(workspaceProvidersOriginal);
LanguageSettingsManager.setWorkspaceProviders(providers);
assertEquals(0, MockListenerRegisterer.getCount(PROVIDER_CUSTOM_GLOBAL));
}
diff --git a/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/settings/model/CProjectDescriptionDeltaTests.java b/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/settings/model/CProjectDescriptionDeltaTests.java
index 9e55ac3dca..3b864e8841 100644
--- a/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/settings/model/CProjectDescriptionDeltaTests.java
+++ b/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/settings/model/CProjectDescriptionDeltaTests.java
@@ -598,8 +598,7 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase {
assertNotNull(cfgDescription);
// Modification SOURCE_ADDED
- List<ICSourceEntry> sourceEntries = new ArrayList<>(
- Arrays.asList(cfgDescription.getSourceEntries()));
+ List<ICSourceEntry> sourceEntries = new ArrayList<>(Arrays.asList(cfgDescription.getSourceEntries()));
ICSourceEntry testSourceEntry = new CSourceEntry(project.getFullPath().append("test_src"), null,
ICSettingEntry.RESOLVED);
sourceEntries.add(testSourceEntry);
@@ -648,8 +647,7 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase {
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
- List<ICSourceEntry> sourceEntries = new ArrayList<>(
- Arrays.asList(cfgDescription.getSourceEntries()));
+ List<ICSourceEntry> sourceEntries = new ArrayList<>(Arrays.asList(cfgDescription.getSourceEntries()));
sourceEntries.add(testSourceEntry);
cfgDescription.setSourceEntries(sourceEntries.toArray(new ICSourceEntry[0]));
diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/ProjectLanguageConfiguration.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/ProjectLanguageConfiguration.java
index 14afe48544..d0fe1db655 100644
--- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/ProjectLanguageConfiguration.java
+++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/language/ProjectLanguageConfiguration.java
@@ -244,8 +244,7 @@ public class ProjectLanguageConfiguration {
* @param file
*/
public void setFileMappings(IFile file, Map<String, String> mappings) {
- fFileConfigurationMappings.put(file.getProjectRelativePath().toPortableString(),
- new TreeMap<>(mappings));
+ fFileConfigurationMappings.put(file.getProjectRelativePath().toPortableString(), new TreeMap<>(mappings));
}
private Map<String, Map<String, String>> copyLanguageMappings(Map<String, Map<String, String>> mappings,
diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/language/settings/providers/LanguageSettingsProvidersSerializer.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/language/settings/providers/LanguageSettingsProvidersSerializer.java
index 194f82d042..02110ec446 100644
--- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/language/settings/providers/LanguageSettingsProvidersSerializer.java
+++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/language/settings/providers/LanguageSettingsProvidersSerializer.java
@@ -1208,8 +1208,7 @@ public class LanguageSettingsProvidersSerializer {
String[] ids = ((ILanguageSettingsProvidersKeeper) cfgDescription)
.getDefaultLanguageSettingsProvidersIds();
if (ids != null) {
- List<ILanguageSettingsProvider> providers = new ArrayList<>(
- ids.length);
+ List<ILanguageSettingsProvider> providers = new ArrayList<>(ids.length);
for (String id : ids) {
if (LanguageSettingsExtensionManager.isPreferShared(id)) {
providers.add(LanguageSettingsManager.getWorkspaceProvider(id));
diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/xml/XmlProjectDescriptionStorage.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/xml/XmlProjectDescriptionStorage.java
index de82650c68..6a16807b64 100644
--- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/xml/XmlProjectDescriptionStorage.java
+++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/xml/XmlProjectDescriptionStorage.java
@@ -190,8 +190,7 @@ public class XmlProjectDescriptionStorage extends AbstractCProjectDescriptionSto
/** A soft reference to the read-only project description
* Volatile provides a memory barrier in Java 5+ */
- private volatile Reference<ICProjectDescription> fProjectDescription = new SoftReference<>(
- null);
+ private volatile Reference<ICProjectDescription> fProjectDescription = new SoftReference<>(null);
/** The last modification stamp of the .cproject project description file */
private volatile long projectModificaitonStamp = IResource.NULL_STAMP;
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/export/ExternalExportProjectProvider.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/export/ExternalExportProjectProvider.java
index 4d7e4113b5..5b9485c539 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/export/ExternalExportProjectProvider.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/export/ExternalExportProjectProvider.java
@@ -153,8 +153,7 @@ public class ExternalExportProjectProvider extends AbstractExportProjectProvider
content.createLink(new Path(location.getAbsolutePath()), IResource.NONE, null);
// Setup path entries
- List<IPathEntry> entries = new ArrayList<>(
- Arrays.asList(CoreModel.getRawPathEntries(cproject)));
+ List<IPathEntry> entries = new ArrayList<>(Arrays.asList(CoreModel.getRawPathEntries(cproject)));
// pre-include files
for (String path : includeFiles) {
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/util/Profiler.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/util/Profiler.java
index 5bedde683a..5dd2cdafa0 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/util/Profiler.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/util/Profiler.java
@@ -152,8 +152,7 @@ public class Profiler {
}
if (!profiler.counters.isEmpty()) {
- List<Map.Entry<String, int[]>> keyList = new ArrayList<>(
- profiler.counters.entrySet());
+ List<Map.Entry<String, int[]>> keyList = new ArrayList<>(profiler.counters.entrySet());
Comparator<Map.Entry<String, int[]>> c2 = new Comparator<Map.Entry<String, int[]>>() {
@Override
public int compare(Entry<String, int[]> o1, Entry<String, int[]> o2) {
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/UserDefinedEnvironmentSupplier.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/UserDefinedEnvironmentSupplier.java
index e9889bd349..21ccb7de47 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/UserDefinedEnvironmentSupplier.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/UserDefinedEnvironmentSupplier.java
@@ -256,8 +256,7 @@ public class UserDefinedEnvironmentSupplier extends StorableEnvironmentLoader
private IEnvironmentVariable[] combineVariables(IEnvironmentVariable[] oldVariables,
IEnvironmentVariable[] newVariables) {
- Map<String, IEnvironmentVariable> vars = new HashMap<>(
- oldVariables.length + newVariables.length);
+ Map<String, IEnvironmentVariable> vars = new HashMap<>(oldVariables.length + newVariables.length);
for (IEnvironmentVariable variable : oldVariables)
vars.put(variable.getName(), variable);
for (IEnvironmentVariable variable : newVariables) {
diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/FoldingTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/FoldingTest.java
index 0fad01f43f..3a089ff9f7 100644
--- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/FoldingTest.java
+++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/FoldingTest.java
@@ -131,8 +131,7 @@ public class FoldingTest extends FoldingTestBase {
}
private void assertNoKeyCollisions() {
- ProjectionAnnotationModel model = fEditor
- .getAdapter(ProjectionAnnotationModel.class);
+ ProjectionAnnotationModel model = fEditor.getAdapter(ProjectionAnnotationModel.class);
assertNotNull(model);
int annotations = 0;
Set<Object> keys = new HashSet<>();
diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/FoldingTestBase.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/FoldingTestBase.java
index 2e738b1a86..fb8824b24d 100644
--- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/FoldingTestBase.java
+++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/FoldingTestBase.java
@@ -253,8 +253,7 @@ abstract public class FoldingTestBase extends BaseUITestCase {
protected PositionAndCollapsed[] getFoldingPositions() {
List<PositionAndCollapsed> positionAndCollapseds = new ArrayList<>();
- ProjectionAnnotationModel model = fEditor
- .getAdapter(ProjectionAnnotationModel.class);
+ ProjectionAnnotationModel model = fEditor.getAdapter(ProjectionAnnotationModel.class);
assertNotNull(model);
for (Iterator<Annotation> iter = model.getAnnotationIterator(); iter.hasNext();) {
Annotation ann = iter.next();
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java
index f0b7ce3b2c..183d606b18 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CEditor.java
@@ -1344,8 +1344,7 @@ public class CEditor extends TextEditor
* AST reconciling listeners.
* @since 4.0
*/
- private final ListenerList<ICReconcilingListener> fReconcilingListeners = new ListenerList<>(
- ListenerList.IDENTITY);
+ private final ListenerList<ICReconcilingListener> fReconcilingListeners = new ListenerList<>(ListenerList.IDENTITY);
/**
* Semantic highlighting manager
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/EclipsePreferencesAdapter.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/EclipsePreferencesAdapter.java
index e5a265580d..d3f916e79b 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/EclipsePreferencesAdapter.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/EclipsePreferencesAdapter.java
@@ -57,8 +57,7 @@ class EclipsePreferencesAdapter implements IPreferenceStore {
}
/** Listeners on on this adapter */
- private ListenerList<IPropertyChangeListener> fListeners = new ListenerList<>(
- ListenerList.IDENTITY);
+ private ListenerList<IPropertyChangeListener> fListeners = new ListenerList<>(ListenerList.IDENTITY);
/** Listener on the node */
private IEclipsePreferences.IPreferenceChangeListener fListener = new PreferenceChangeListener();
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/ProjectLanguageMappingWidget.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/ProjectLanguageMappingWidget.java
index 93a52254bf..1d5c0324a2 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/ProjectLanguageMappingWidget.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/ProjectLanguageMappingWidget.java
@@ -253,8 +253,7 @@ public class ProjectLanguageMappingWidget extends LanguageMappingWidget {
}
if (fChild != null) {
- Set<String> overrides = new HashSet<>(
- createWorkspaceContentTypeFilter(fConfigurationContentTypeMappings));
+ Set<String> overrides = new HashSet<>(createWorkspaceContentTypeFilter(fConfigurationContentTypeMappings));
fChild.setOverriddenContentTypes(overrides);
fChild.refreshMappings();
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsEntriesTab.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsEntriesTab.java
index d085ab5de4..d164199589 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsEntriesTab.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsEntriesTab.java
@@ -1190,8 +1190,7 @@ public class LanguageSettingsEntriesTab extends AbstractCPropertyTab {
IResource rc = getResource();
List<ILanguageSettingsProvider> oldProviders = ((ILanguageSettingsProvidersKeeper) cfgDescription)
.getLanguageSettingProviders();
- List<ILanguageSettingsProvider> newProviders = new ArrayList<>(
- oldProviders.size());
+ List<ILanguageSettingsProvider> newProviders = new ArrayList<>(oldProviders.size());
// clear entries for a given resource for all languages where applicable
providers: for (ILanguageSettingsProvider provider : oldProviders) {
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/workingsets/AbstractWorkingSetConfigsContribution.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/workingsets/AbstractWorkingSetConfigsContribution.java
index 617f67bda2..98b0ac8dc7 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/workingsets/AbstractWorkingSetConfigsContribution.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/workingsets/AbstractWorkingSetConfigsContribution.java
@@ -74,8 +74,7 @@ abstract class AbstractWorkingSetConfigsContribution extends CompoundContributio
}
// sort the configurations by name
- List<IWorkingSetConfiguration> configs = new java.util.ArrayList<>(
- getWorkingSet().getConfigurations());
+ List<IWorkingSetConfiguration> configs = new java.util.ArrayList<>(getWorkingSet().getConfigurations());
Collections.sort(configs, configOrdering);
IContributionItem[] result = new IContributionItem[configs.size()];
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/workingsets/IWorkingSetProjectConfigurationFactory.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/workingsets/IWorkingSetProjectConfigurationFactory.java
index 728ed011d2..b460492883 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/workingsets/IWorkingSetProjectConfigurationFactory.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/workingsets/IWorkingSetProjectConfigurationFactory.java
@@ -210,8 +210,7 @@ public interface IWorkingSetProjectConfigurationFactory {
// first pass to populate the map with immediate requireds
IWorkspace ws = ResourcesPlugin.getWorkspace();
for (IProjectNatureDescriptor next : ws.getNatureDescriptors()) {
- result.put(next.getNatureId(),
- new java.util.HashSet<>(Arrays.asList(next.getRequiredNatureIds())));
+ result.put(next.getNatureId(), new java.util.HashSet<>(Arrays.asList(next.getRequiredNatureIds())));
}
// now, iterate to add transitive requireds
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/workingsets/WorkingSetConfiguration.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/workingsets/WorkingSetConfiguration.java
index e18a4ed014..0feb2f1388 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/workingsets/WorkingSetConfiguration.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/workingsets/WorkingSetConfiguration.java
@@ -181,8 +181,7 @@ public class WorkingSetConfiguration implements IWorkingSetConfiguration {
public IStatus build(IProgressMonitor monitor) {
MultiStatus result = new MultiStatus(CUIPlugin.PLUGIN_ID, 0, WorkingSetMessages.WSConfig_build_problems, null);
- List<IWorkingSetProjectConfiguration> toBuild = new java.util.ArrayList<>(
- getProjectConfigurations().size());
+ List<IWorkingSetProjectConfiguration> toBuild = new java.util.ArrayList<>(getProjectConfigurations().size());
for (IWorkingSetProjectConfiguration next : getProjectConfigurations()) {
IProject project = next.resolveProject();
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/CHelpConfigurationPropertyPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/CHelpConfigurationPropertyPage.java
index 3451e6d51e..875559d81c 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/CHelpConfigurationPropertyPage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/CHelpConfigurationPropertyPage.java
@@ -89,8 +89,7 @@ public class CHelpConfigurationPropertyPage extends PropertyPage implements IWor
/* 0 */ CUIMessages.CHelpConfigurationPropertyPage_buttonLabels_CheckAll,
/* 1 */ CUIMessages.CHelpConfigurationPropertyPage_buttonLabels_UncheckAll };
- fCHelpBookList = new CheckedListDialogField<>(null, buttonLabels,
- new CHelpBookListLabelProvider());
+ fCHelpBookList = new CheckedListDialogField<>(null, buttonLabels, new CHelpBookListLabelProvider());
fCHelpBookList.setLabelText(CUIMessages.CHelpConfigurationPropertyPage_HelpBooks);
fCHelpBookList.setCheckAllButtonIndex(0);
fCHelpBookList.setUncheckAllButtonIndex(1);
diff --git a/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/TemplateClassWizard.java b/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/TemplateClassWizard.java
index 01e3dc822e..1878c751f1 100644
--- a/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/TemplateClassWizard.java
+++ b/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/TemplateClassWizard.java
@@ -81,8 +81,7 @@ public class TemplateClassWizard extends TemplatesChoiceWizard implements INewWi
@Override
public Template[] getTemplates() {
- SortedSet<TemplateCore> templateList = new TreeSet<>(
- TemplateCore.TEMPLATE_ID_CASE_INSENSITIVE_COMPARATOR);
+ SortedSet<TemplateCore> templateList = new TreeSet<>(TemplateCore.TEMPLATE_ID_CASE_INSENSITIVE_COMPARATOR);
templateList.addAll(Arrays.asList(TemplateEngineUI.getDefault().getTemplates()));
return templateList.toArray(new Template[templateList.size()]);
}
diff --git a/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/pages/TemplateInputDialog.java b/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/pages/TemplateInputDialog.java
index 393792abb4..defa490adc 100644
--- a/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/pages/TemplateInputDialog.java
+++ b/core/org.eclipse.cdt.ui/templateengine/org/eclipse/cdt/ui/templateengine/pages/TemplateInputDialog.java
@@ -100,7 +100,6 @@ public class TemplateInputDialog extends Dialog {
setShellStyle(getShellStyle() | SWT.RESIZE);
}
-
@Override
protected void configureShell(Shell shell) {
super.configureShell(shell);
@@ -108,7 +107,6 @@ public class TemplateInputDialog extends Dialog {
display = shell.getDisplay();
}
-
@Override
protected Control createDialogArea(Composite parent) {
@@ -216,7 +214,6 @@ public class TemplateInputDialog extends Dialog {
aText.addModifyListener(mListener);
}
-
@Override
protected void okPressed() {
if (option == TemplatePreferencePage.OPTION_ADD) {
diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/Trace.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/Trace.java
index 6626d88cf2..7b813938c9 100644
--- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/Trace.java
+++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/Trace.java
@@ -127,8 +127,8 @@ public class Trace {
if (bundle != null) {
BundleContext context = bundle.getBundleContext();
if (context != null) {
- ServiceTracker<DebugOptions, DebugOptions> tracker = new ServiceTracker<>(
- context, DebugOptions.class.getName(), null);
+ ServiceTracker<DebugOptions, DebugOptions> tracker = new ServiceTracker<>(context,
+ DebugOptions.class.getName(), null);
try {
tracker.open();
DebugOptions debugOptions = tracker.getService();
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/sourcelookup/CSourceNotFoundEditor.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/sourcelookup/CSourceNotFoundEditor.java
index 17b5f67833..f1ef15d560 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/sourcelookup/CSourceNotFoundEditor.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/sourcelookup/CSourceNotFoundEditor.java
@@ -313,8 +313,7 @@ public class CSourceNotFoundEditor extends CommonSourceNotFoundEditor {
private void addSourceMappingToDirector(String missingPath, IPath newSourcePath,
AbstractSourceLookupDirector director) throws CoreException {
- ArrayList<ISourceContainer> containerList = new ArrayList<>(
- Arrays.asList(director.getSourceContainers()));
+ ArrayList<ISourceContainer> containerList = new ArrayList<>(Arrays.asList(director.getSourceContainers()));
MappingSourceContainer foundMappings = null;
for (ISourceContainer container : containerList) {
if (container instanceof MappingSourceContainer) {
diff --git a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/executables/SourceFilesViewer.java b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/executables/SourceFilesViewer.java
index 1d52a2e317..c9e0a9fed2 100644
--- a/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/executables/SourceFilesViewer.java
+++ b/debug/org.eclipse.cdt.debug.ui/src/org/eclipse/cdt/debug/internal/ui/views/executables/SourceFilesViewer.java
@@ -77,8 +77,7 @@ public class SourceFilesViewer extends BaseViewer {
/** Tradeoff expensiveness of checking filesystem against likelihood
* that files will be added/removed/changed in the given time period */
static final long FILE_CHECK_DELTA = 30 * 1000;
- private static LRUCache<Object, TranslationUnitInfo> translationUnitInfoCache = new LRUCache<>(
- 1024);
+ private static LRUCache<Object, TranslationUnitInfo> translationUnitInfoCache = new LRUCache<>(1024);
public SourceFilesViewer(ExecutablesView view, Composite parent, int style) {
super(view, parent, style);
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBPatternMatchingExpressions.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBPatternMatchingExpressions.java
index 0783c3d873..40da8bd16e 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBPatternMatchingExpressions.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBPatternMatchingExpressions.java
@@ -662,8 +662,7 @@ public class GDBPatternMatchingExpressions extends AbstractDsfService implements
// Not only does selecting the element jump back and forth between the duplicates,
// but children of duplicated elements are not always right. Because of this, we
// remove all duplicates here.
- LinkedHashSet<IExpressionDMContext> uniqueSubExprSet = new LinkedHashSet<>(
- subExprList);
+ LinkedHashSet<IExpressionDMContext> uniqueSubExprSet = new LinkedHashSet<>(subExprList);
subExprList.clear();
subExprList.addAll(uniqueSubExprSet);
@@ -776,8 +775,7 @@ public class GDBPatternMatchingExpressions extends AbstractDsfService implements
matchArrays(exprDmc, new ImmediateDataRequestMonitor<List<IExpressionDMContext>>(rm) {
@Override
protected void handleSuccess() {
- final List<IExpressionDMContext> exprList = getData() != null ? getData()
- : new ArrayList<>();
+ final List<IExpressionDMContext> exprList = getData() != null ? getData() : new ArrayList<>();
matchLocals(exprDmc, new ImmediateDataRequestMonitor<List<IExpressionDMContext>>(rm) {
@Override
protected void handleSuccess() {
@@ -865,8 +863,7 @@ public class GDBPatternMatchingExpressions extends AbstractDsfService implements
final CountingRequestMonitor varNameCRM = new CountingRequestMonitor(getExecutor(), rm) {
@Override
public void handleSuccess() {
- ArrayList<IExpressionDMContext> matches = new ArrayList<>(
- localsDMData.length);
+ ArrayList<IExpressionDMContext> matches = new ArrayList<>(localsDMData.length);
String fullExpr = globDmc.getExpression().trim();
if (fullExpr.startsWith(GLOB_EXPRESSION_PREFIX)) {
diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBRunControl_7_0_NS.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBRunControl_7_0_NS.java
index 7bae81e398..fd2afcd16d 100644
--- a/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBRunControl_7_0_NS.java
+++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBRunControl_7_0_NS.java
@@ -2595,8 +2595,7 @@ public class GDBRunControl_7_0_NS extends AbstractDsfService
Set<IExecutionDMContext> specifiedExedDmcSet = new HashSet<>(Arrays.asList(contexts));
// A list that ignores threads for which the process is also present
- List<IExecutionDMContext> execDmcForOperationList = new ArrayList<>(
- specifiedExedDmcSet.size());
+ List<IExecutionDMContext> execDmcForOperationList = new ArrayList<>(specifiedExedDmcSet.size());
// Check for the case of a process selected along with some of its threads
for (IExecutionDMContext execDmc : specifiedExedDmcSet) {
diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/framework/SyncUtil.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/framework/SyncUtil.java
index ea1c4fa541..df37b5fdea 100644
--- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/framework/SyncUtil.java
+++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/framework/SyncUtil.java
@@ -170,8 +170,7 @@ public class SyncUtil {
public static MIStoppedEvent step(final IExecutionDMContext dmc, final StepType stepType, boolean reverse,
int massagedTimeout) throws Throwable {
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
- MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIStoppedEvent.class);
if (!reverse) {
fRunControl.getExecutor().submit(new Runnable() {
@@ -280,8 +279,7 @@ public class SyncUtil {
private static MIStoppedEvent resumeUntilStopped(final IExecutionDMContext dmc, int massagedTimeout)
throws Throwable {
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
- MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIStoppedEvent.class);
fRunControl.getExecutor().submit(new Runnable() {
@Override
@@ -308,8 +306,7 @@ public class SyncUtil {
}
public static MIRunningEvent resume(final IExecutionDMContext dmc, int massagedTimeout) throws Throwable {
- final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
- MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIRunningEvent.class);
fRunControl.getExecutor().submit(new Runnable() {
@Override
@@ -378,8 +375,7 @@ public class SyncUtil {
// if there is a sleep in the code between the resume and the time
// it stops; this will give us plenty of time to call this method.
public static MIStoppedEvent waitForStop(int timeout) throws Throwable {
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
- MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIStoppedEvent.class);
// Wait for the execution to suspend
return eventWaitor.waitForEvent(TestsPlugin.massageTimeout(timeout));
@@ -778,8 +774,7 @@ public class SyncUtil {
}
// Now wait for the stopped event of the restart
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
- MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIStoppedEvent.class);
// Perform the restart
Query<IContainerDMContext> query2 = new Query<IContainerDMContext>() {
diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/CommandTimeoutTest.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/CommandTimeoutTest.java
index 7555b47797..80834bc719 100644
--- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/CommandTimeoutTest.java
+++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/CommandTimeoutTest.java
@@ -97,8 +97,8 @@ public class CommandTimeoutTest extends BaseParametrizedTestCase {
doLaunch();
final DsfSession session = getGDBLaunch().getSession();
- ServiceEventWaitor<ICommandControlShutdownDMEvent> shutdownEventWaitor = new ServiceEventWaitor<>(
- session, ICommandControlShutdownDMEvent.class);
+ ServiceEventWaitor<ICommandControlShutdownDMEvent> shutdownEventWaitor = new ServiceEventWaitor<>(session,
+ ICommandControlShutdownDMEvent.class);
// Send the command that will timeout
Query<MIInfo> query = new Query<MIInfo>() {
diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/LaunchConfigurationAndRestartTest.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/LaunchConfigurationAndRestartTest.java
index 2436aab0cf..486e7e2e47 100644
--- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/LaunchConfigurationAndRestartTest.java
+++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/LaunchConfigurationAndRestartTest.java
@@ -714,8 +714,7 @@ public class LaunchConfigurationAndRestartTest extends BaseParametrizedTestCase
// Now step backwards to make sure reverse was enabled
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
- MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIStoppedEvent.class);
final int REVERSE_NUM_STEPS = 2;
final IExecutionDMContext execDmc = stoppedEvent.getDMContext();
@@ -780,8 +779,7 @@ public class LaunchConfigurationAndRestartTest extends BaseParametrizedTestCase
frame.getFunction().equals("stopAtOther"));
// Now step backwards all the way to the start to make sure reverse was enabled from the very start
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
- MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIStoppedEvent.class);
final int REVERSE_NUM_STEPS = 3;
Query<MIInfo> query2 = new Query<MIInfo>() {
@@ -854,8 +852,7 @@ public class LaunchConfigurationAndRestartTest extends BaseParametrizedTestCase
frame.getFunction().equals("main") && frame.getLine() == LAST_LINE_IN_MAIN);
// Now step backwards all the way to the start to make sure reverse was enabled from the very start
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
- MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fSession, MIStoppedEvent.class);
final int REVERSE_NUM_STEPS = 3;
Query<MIInfo> query2 = new Query<MIInfo>() {
diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MICatchpointsTest.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MICatchpointsTest.java
index 2eaac4b4c8..8f5ad1a846 100644
--- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MICatchpointsTest.java
+++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MICatchpointsTest.java
@@ -1302,8 +1302,7 @@ public class MICatchpointsTest extends BaseParametrizedTestCase {
assertEquals("Unexpected number of breakpoint-added events", 1, getBreakpointEventCount(BP_ADDED));
// Ensure the breakpoint service sees what we expect
- List<IBreakpointDMContext> bkptsAfter = new LinkedList<>(
- Arrays.asList(getBreakpoints(fBreakpointsDmc)));
+ List<IBreakpointDMContext> bkptsAfter = new LinkedList<>(Arrays.asList(getBreakpoints(fBreakpointsDmc)));
assertEquals("Breakpoints service reports unexpected number of breakpoints", bkptsBefore.length + 1,
bkptsAfter.size());
@@ -1361,8 +1360,7 @@ public class MICatchpointsTest extends BaseParametrizedTestCase {
// Ensure the breakpoint service sees what we expect. Ask the breakpoint
// service for the list of breakpoint against and make sure it differs
// only by the newly added one
- List<IBreakpointDMContext> bkptsAfter = new LinkedList<>(
- Arrays.asList(getBreakpoints(fBreakpointsDmc)));
+ List<IBreakpointDMContext> bkptsAfter = new LinkedList<>(Arrays.asList(getBreakpoints(fBreakpointsDmc)));
assertEquals("Breakpoints service reports unexpected number of breakpoints", bkptsBefore.length + 1,
bkptsAfter.size());
ListIterator<IBreakpointDMContext> iter = bkptsAfter.listIterator();
diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIModifiedServicesTest.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIModifiedServicesTest.java
index 10d47f175a..57da973156 100644
--- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIModifiedServicesTest.java
+++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIModifiedServicesTest.java
@@ -224,8 +224,8 @@ public class MIModifiedServicesTest extends BaseParametrizedTestCase {
private void resumeContainerContextExe() throws InterruptedException, ExecutionException, TimeoutException {
- final ServiceEventWaitor<IResumedDMEvent> resumedWaitor = new ServiceEventWaitor<>(
- getGDBLaunch().getSession(), IResumedDMEvent.class);
+ final ServiceEventWaitor<IResumedDMEvent> resumedWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
+ IResumedDMEvent.class);
Query<Void> query = new Query<Void>() {
@Override
diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRegistersTest.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRegistersTest.java
index 3118defa98..ed14ac8825 100644
--- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRegistersTest.java
+++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRegistersTest.java
@@ -413,8 +413,8 @@ public class MIRegistersTest extends BaseParametrizedTestCase {
*/
private List<IRegistersChangedDMEvent> writeRegisterWaitNotication(final IRegisterDMContext registerDmc,
final String regValue, final String formatId) throws Throwable {
- ServiceEventWaitor<IRegistersChangedDMEvent> eventWaitor = new ServiceEventWaitor<>(
- fSession, IRegistersChangedDMEvent.class);
+ ServiceEventWaitor<IRegistersChangedDMEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
+ IRegistersChangedDMEvent.class);
writeRegister(registerDmc, regValue, formatId);
diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRunControlTargetAvailableTest.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRunControlTargetAvailableTest.java
index 7c7671a07e..58d7ba19f8 100644
--- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRunControlTargetAvailableTest.java
+++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRunControlTargetAvailableTest.java
@@ -372,8 +372,7 @@ public class MIRunControlTargetAvailableTest extends BaseParametrizedTestCase {
// Wait up to 3 second for the target to suspend. Should happen within two seconds.
suspendedEventWaitor.waitForEvent(TestsPlugin.massageTimeout(3000));
- suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
- ISuspendedDMEvent.class);
+ suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(), ISuspendedDMEvent.class);
SyncUtil.resume();
@@ -575,8 +574,7 @@ public class MIRunControlTargetAvailableTest extends BaseParametrizedTestCase {
suspendedEventWaitor.waitForEvent(TestsPlugin.massageTimeout(3000));
// Now resume the target and check that we stop at all the breakpoints.
- suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
- ISuspendedDMEvent.class);
+ suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(), ISuspendedDMEvent.class);
SyncUtil.resume();
}
@@ -707,8 +705,7 @@ public class MIRunControlTargetAvailableTest extends BaseParametrizedTestCase {
suspendedEventWaitor.waitForEvent(TestsPlugin.massageTimeout(3000));
// Now resume the target and check that we stop at all the breakpoints.
- suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
- ISuspendedDMEvent.class);
+ suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(), ISuspendedDMEvent.class);
SyncUtil.resume();
}
@@ -835,8 +832,7 @@ public class MIRunControlTargetAvailableTest extends BaseParametrizedTestCase {
suspendedEventWaitor.waitForEvent(TestsPlugin.massageTimeout(3000));
// Now resume the target and check that we stop at all the breakpoints.
- suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
- ISuspendedDMEvent.class);
+ suspendedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(), ISuspendedDMEvent.class);
SyncUtil.resume();
}
diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRunControlTest.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRunControlTest.java
index d19784ef8d..4ec35480c8 100644
--- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRunControlTest.java
+++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRunControlTest.java
@@ -580,8 +580,8 @@ public class MIRunControlTest extends BaseParametrizedTestCase {
//TestsPlugin.debug("handleCompleted over");
}
};
- final ServiceEventWaitor<IResumedDMEvent> eventWaitor = new ServiceEventWaitor<>(
- getGDBLaunch().getSession(), IResumedDMEvent.class);
+ final ServiceEventWaitor<IResumedDMEvent> eventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
+ IResumedDMEvent.class);
final IContainerDMContext containerDmc = SyncUtil.getContainerContext();
@@ -629,8 +629,8 @@ public class MIRunControlTest extends BaseParametrizedTestCase {
}
};
- final ServiceEventWaitor<IResumedDMEvent> eventWaitor = new ServiceEventWaitor<>(
- getGDBLaunch().getSession(), IResumedDMEvent.class);
+ final ServiceEventWaitor<IResumedDMEvent> eventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
+ IResumedDMEvent.class);
fRunCtrl.getExecutor().submit(new Runnable() {
@Override
diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/OperationsWhileTargetIsRunningTest.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/OperationsWhileTargetIsRunningTest.java
index 2d5d7303c3..e9aff95a70 100644
--- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/OperationsWhileTargetIsRunningTest.java
+++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/OperationsWhileTargetIsRunningTest.java
@@ -215,8 +215,8 @@ public class OperationsWhileTargetIsRunningTest extends BaseParametrizedTestCase
// then we terminate the process, and confirm that there are no more processes
SyncUtil.resume();
- ServiceEventWaitor<IExitedDMEvent> exitedEventWaitor = new ServiceEventWaitor<>(
- getGDBLaunch().getSession(), IExitedDMEvent.class);
+ ServiceEventWaitor<IExitedDMEvent> exitedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
+ IExitedDMEvent.class);
Query<Object> query = new Query<Object>() {
@Override
@@ -297,8 +297,8 @@ public class OperationsWhileTargetIsRunningTest extends BaseParametrizedTestCase
// then we detach the process, and confirm that we are not longer running
SyncUtil.resume();
- ServiceEventWaitor<IExitedDMEvent> exitedEventWaitor = new ServiceEventWaitor<>(
- getGDBLaunch().getSession(), IExitedDMEvent.class);
+ ServiceEventWaitor<IExitedDMEvent> exitedEventWaitor = new ServiceEventWaitor<>(getGDBLaunch().getSession(),
+ IExitedDMEvent.class);
Query<Object> query = new Query<Object>() {
@Override
diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/SourceLookupTest.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/SourceLookupTest.java
index 297b5f211b..d0742df6dc 100644
--- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/SourceLookupTest.java
+++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/SourceLookupTest.java
@@ -353,8 +353,7 @@ public class SourceLookupTest extends BaseParametrizedTestCase {
protected void addSourceContainer(AbstractSourceLookupDirector director, ISourceContainer container)
throws CoreException {
- ArrayList<ISourceContainer> containerList = new ArrayList<>(
- Arrays.asList(director.getSourceContainers()));
+ ArrayList<ISourceContainer> containerList = new ArrayList<>(Arrays.asList(director.getSourceContainers()));
container.init(director);
containerList.add(container);
director.setSourceContainers(containerList.toArray(new ISourceContainer[containerList.size()]));
diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/StepIntoSelectionTest.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/StepIntoSelectionTest.java
index d7fe5dd96c..ddb9e54fe8 100644
--- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/StepIntoSelectionTest.java
+++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/StepIntoSelectionTest.java
@@ -186,8 +186,7 @@ public class StepIntoSelectionTest extends BaseParametrizedTestCase {
*/
private ISuspendedDMEvent triggerStepIntoSelection(final IExecutionDMContext exeContext, final String sourceName,
final int targetLine, final IFunctionDeclaration function, final boolean skipBreakPoints) throws Throwable {
- ServiceEventWaitor<ISuspendedDMEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
- ISuspendedDMEvent.class);
+ ServiceEventWaitor<ISuspendedDMEvent> eventWaitor = new ServiceEventWaitor<>(fSession, ISuspendedDMEvent.class);
Query<Object> query = new Query<Object>() {
@Override
@@ -207,8 +206,7 @@ public class StepIntoSelectionTest extends BaseParametrizedTestCase {
*/
private ISuspendedDMEvent triggerRunToLine(final IExecutionDMContext exeContext, final String sourceName,
final int targetLine, final boolean skipBreakPoints) throws Throwable {
- ServiceEventWaitor<ISuspendedDMEvent> eventWaitor = new ServiceEventWaitor<>(fSession,
- ISuspendedDMEvent.class);
+ ServiceEventWaitor<ISuspendedDMEvent> eventWaitor = new ServiceEventWaitor<>(fSession, ISuspendedDMEvent.class);
Query<Object> query = new Query<Object>() {
@Override
diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/nonstop/GDBMultiNonStopRunControlTest.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/nonstop/GDBMultiNonStopRunControlTest.java
index dce2138b3d..53c6418383 100644
--- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/nonstop/GDBMultiNonStopRunControlTest.java
+++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/nonstop/GDBMultiNonStopRunControlTest.java
@@ -353,8 +353,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -463,8 +463,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -577,8 +577,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -696,8 +696,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IMIExecutionDMContext[] threads = SyncUtil.getExecutionContexts();
assertTrue("Expected a single thread but got " + threads.length, threads.length == 1);
- final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
runAsyncCall(new AsyncRunnable<Object>() {
@Override
@@ -767,8 +767,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -777,8 +777,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IMIExecutionDMContext[] threads = SyncUtil.getExecutionContexts();
assertTrue("Expected two threads but got " + threads.length, threads.length == 2);
- final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
runAsyncCall(new AsyncRunnable<Object>() {
@Override
@@ -819,8 +819,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -829,8 +829,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IMIExecutionDMContext[] threads = SyncUtil.getExecutionContexts();
assertTrue("Expected two threads but got " + threads.length, threads.length == 2);
- final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
runAsyncCall(new AsyncRunnable<Object>() {
@Override
@@ -862,8 +862,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -876,8 +876,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IMIExecutionDMContext[] threads = SyncUtil.getExecutionContexts();
assertTrue("Expected two threads but got " + threads.length, threads.length == 2);
- final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
// No error should be thrown, the call should ignore running threads
runAsyncCall(new AsyncRunnable<Object>() {
@@ -910,8 +910,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -927,8 +927,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IMIExecutionDMContext[] threads = SyncUtil.getExecutionContexts();
assertTrue("Expected two threads but got " + threads.length, threads.length == 2);
- final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
// No error should be thrown, the call should ignore running threads
runAsyncCall(new AsyncRunnable<Object>() {
@@ -1000,8 +1000,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
});
assertFalse("expected no threads to be suspended, but found some", result);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
runAsyncCall(new AsyncRunnable<Object>() {
@Override
@@ -1031,8 +1031,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -1069,8 +1069,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -1113,8 +1113,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -1169,8 +1169,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -1444,8 +1444,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -1553,8 +1553,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -1666,8 +1666,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -1996,8 +1996,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -2109,8 +2109,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -2227,8 +2227,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -2345,8 +2345,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -2471,8 +2471,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -2585,8 +2585,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -2703,8 +2703,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -2824,8 +2824,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
public void testResumeProcessOneThreadStopped() throws Throwable {
final IExecutionDMContext[] processes = new IExecutionDMContext[] { SyncUtil.getContainerContext() };
- final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
runAsyncCall(new AsyncRunnable<Object>() {
@Override
@@ -2894,8 +2894,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -2903,8 +2903,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IExecutionDMContext[] processes = new IExecutionDMContext[] { SyncUtil.getContainerContext() };
- final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
runAsyncCall(new AsyncRunnable<Object>() {
@Override
@@ -2936,8 +2936,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -2949,8 +2949,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IExecutionDMContext[] processes = new IExecutionDMContext[] { SyncUtil.getContainerContext() };
- final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
// No error should be thrown, the call should ignore running threads
runAsyncCall(new AsyncRunnable<Object>() {
@@ -2983,8 +2983,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -2999,8 +2999,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IExecutionDMContext[] processes = new IExecutionDMContext[] { SyncUtil.getContainerContext() };
- final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
// No error should be thrown, the call should ignore running threads
runAsyncCall(new AsyncRunnable<Object>() {
@@ -3082,8 +3082,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
});
assertFalse("expected no process to be suspended, but found some", result);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
runAsyncCall(new AsyncRunnable<Object>() {
@Override
@@ -3113,8 +3113,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -3162,8 +3162,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -3217,8 +3217,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -3302,8 +3302,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
SyncUtil.getExecutionContext(0) };
- final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
runAsyncCall(new AsyncRunnable<Object>() {
@Override
@@ -3347,8 +3347,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
});
assertFalse("expected no contexts to be suspended, but found some", result);
- final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
// No error should be thrown, the call should ignore running processes
runAsyncCall(new AsyncRunnable<Object>() {
@@ -3381,8 +3381,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -3391,8 +3391,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
SyncUtil.getExecutionContext(0) };
- final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
runAsyncCall(new AsyncRunnable<Object>() {
@Override
@@ -3427,8 +3427,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -3441,8 +3441,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
SyncUtil.getExecutionContext(0) };
- final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
// No error should be thrown, the call should ignore running threads
runAsyncCall(new AsyncRunnable<Object>() {
@@ -3477,8 +3477,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -3491,8 +3491,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
SyncUtil.getExecutionContext(1) };
- final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
// No error should be thrown, the call should ignore running threads
runAsyncCall(new AsyncRunnable<Object>() {
@@ -3526,8 +3526,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -3543,8 +3543,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
SyncUtil.getExecutionContext(0) };
- final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
// No error should be thrown, the call should ignore running threads
runAsyncCall(new AsyncRunnable<Object>() {
@@ -3650,8 +3650,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
});
assertFalse("expected no process to be suspended, but found some", result);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
runAsyncCall(new AsyncRunnable<Object>() {
@Override
@@ -3682,8 +3682,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -3733,8 +3733,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -3790,8 +3790,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -3847,8 +3847,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -3937,8 +3937,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -3947,8 +3947,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
SyncUtil.getExecutionContext(0), SyncUtil.getExecutionContext(1) };
- final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
runAsyncCall(new AsyncRunnable<Object>() {
@Override
@@ -3983,8 +3983,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -3997,8 +3997,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
SyncUtil.getExecutionContext(0), SyncUtil.getExecutionContext(1) };
- final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
// No error should be thrown, the call should ignore running threads
runAsyncCall(new AsyncRunnable<Object>() {
@@ -4032,8 +4032,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -4049,8 +4049,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
final IExecutionDMContext[] execDmcs = new IExecutionDMContext[] { SyncUtil.getContainerContext(),
SyncUtil.getExecutionContext(0), SyncUtil.getExecutionContext(1) };
- final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIRunningEvent.class);
+ final ServiceEventWaitor<MIRunningEvent> eventWaitorRunning = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIRunningEvent.class);
// No error should be thrown, the call should ignore running threads
runAsyncCall(new AsyncRunnable<Object>() {
@@ -4086,8 +4086,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -4137,8 +4137,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitorStopped = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitorStopped.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
@@ -4194,8 +4194,8 @@ public class GDBMultiNonStopRunControlTest extends BaseParametrizedTestCase {
// Run program until both threads are stopped
SyncUtil.addBreakpoint("firstBreakpoint", false);
- final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRun.getSession(), MIStoppedEvent.class);
+ final ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRun.getSession(),
+ MIStoppedEvent.class);
SyncUtil.resumeAll();
eventWaitor.waitForEvent(TestsPlugin.massageTimeout(2000)); // Wait for first thread to stop
diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/nonstop/ThreadStackFrameSyncTest.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/nonstop/ThreadStackFrameSyncTest.java
index 5b197e9489..3a41449987 100644
--- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/nonstop/ThreadStackFrameSyncTest.java
+++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/nonstop/ThreadStackFrameSyncTest.java
@@ -157,8 +157,8 @@ public class ThreadStackFrameSyncTest extends BaseParametrizedTestCase {
*/
@Test
public void testChangingCurrentThreadCLINotification() throws Throwable {
- ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRunControl.getSession(), MIStoppedEvent.class);
+ ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRunControl.getSession(),
+ MIStoppedEvent.class);
// add a breakpoint in main
SyncUtil.addBreakpoint(SOURCE_NAME + ":" + getLineForTag("LINE_MAIN_ALL_THREADS_STARTED"), false);
@@ -193,8 +193,8 @@ public class ThreadStackFrameSyncTest extends BaseParametrizedTestCase {
*/
@Test
public void testChangingCurrentFrameCLINotification() throws Throwable {
- ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRunControl.getSession(), MIStoppedEvent.class);
+ ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRunControl.getSession(),
+ MIStoppedEvent.class);
// add a breakpoint in main
SyncUtil.addBreakpoint(SOURCE_NAME + ":" + getLineForTag("LINE_MAIN_ALL_THREADS_STARTED"), false);
@@ -229,8 +229,8 @@ public class ThreadStackFrameSyncTest extends BaseParametrizedTestCase {
*/
@Test
public void testGdbSyncServiceCanSwitchGDBThread() throws Throwable {
- ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRunControl.getSession(), MIStoppedEvent.class);
+ ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRunControl.getSession(),
+ MIStoppedEvent.class);
// add a breakpoint in main
SyncUtil.addBreakpoint(SOURCE_NAME + ":" + getLineForTag("LINE_MAIN_ALL_THREADS_STARTED"), false);
@@ -270,8 +270,8 @@ public class ThreadStackFrameSyncTest extends BaseParametrizedTestCase {
*/
@Test
public void testGdbSyncServiceCanSwitchGDBStackFrame() throws Throwable {
- ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(
- fMultiRunControl.getSession(), MIStoppedEvent.class);
+ ServiceEventWaitor<MIStoppedEvent> eventWaitor = new ServiceEventWaitor<>(fMultiRunControl.getSession(),
+ MIStoppedEvent.class);
// add a breakpoint in main
SyncUtil.addBreakpoint(SOURCE_NAME + ":" + getLineForTag("LINE_MAIN_ALL_THREADS_STARTED"), false);
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyColumnSupport.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyColumnSupport.java
index ebe9233d67..a1124a14ca 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyColumnSupport.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyColumnSupport.java
@@ -202,8 +202,7 @@ class DisassemblyColumnSupport implements IColumnSupport {
*/
@Override
public void dispose() {
- for (Iterator<IContributedRulerColumn> iter = new ArrayList<>(fColumns).iterator(); iter
- .hasNext();)
+ for (Iterator<IContributedRulerColumn> iter = new ArrayList<>(fColumns).iterator(); iter.hasNext();)
removeColumn(getRuler(), iter.next());
fColumns.clear();
}
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/breakpoints/BreakpointVMNode.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/breakpoints/BreakpointVMNode.java
index b6e9bae3b7..100d8a1d37 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/breakpoints/BreakpointVMNode.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/breakpoints/BreakpointVMNode.java
@@ -55,8 +55,7 @@ public class BreakpointVMNode extends AbstractBreakpointVMNode
@Override
public void update(ILabelUpdate[] updates) {
- Map<IElementLabelProvider, List<ILabelUpdate>> delegatesMap = new HashMap<>(
- 1, 1);
+ Map<IElementLabelProvider, List<ILabelUpdate>> delegatesMap = new HashMap<>(1, 1);
for (final ILabelUpdate update : updates) {
final IBreakpoint bp = ((BreakpointVMContext) update.getElement()).getBreakpoint();
@@ -164,8 +163,7 @@ public class BreakpointVMNode extends AbstractBreakpointVMNode
@Override
public void encodeElements(IElementMementoRequest[] updates) {
- Map<IElementMementoProvider, List<IElementMementoRequest>> delegatesMap = new HashMap<>(
- 1, 1);
+ Map<IElementMementoProvider, List<IElementMementoRequest>> delegatesMap = new HashMap<>(1, 1);
for (final IElementMementoRequest update : updates) {
final IBreakpoint bp = ((BreakpointVMContext) update.getElement()).getBreakpoint();
@@ -241,8 +239,7 @@ public class BreakpointVMNode extends AbstractBreakpointVMNode
@Override
public void compareElements(IElementCompareRequest[] updates) {
- Map<IElementMementoProvider, List<IElementCompareRequest>> delegatesMap = new HashMap<>(
- 1, 1);
+ Map<IElementMementoProvider, List<IElementCompareRequest>> delegatesMap = new HashMap<>(1, 1);
for (final IElementCompareRequest update : updates) {
final IBreakpoint bp = ((BreakpointVMContext) update.getElement()).getBreakpoint();
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/breakpoints/BreakpointVMProvider.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/breakpoints/BreakpointVMProvider.java
index 6caaed1dc7..a25654d5a0 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/breakpoints/BreakpointVMProvider.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/breakpoints/BreakpointVMProvider.java
@@ -144,8 +144,7 @@ public class BreakpointVMProvider extends AbstractVMProvider {
}
}
- List<BreakpointOrganizerVMContext> vmcs = new ArrayList<>(
- bpsLists.size());
+ List<BreakpointOrganizerVMContext> vmcs = new ArrayList<>(bpsLists.size());
for (Map.Entry<IAdaptable, List<IBreakpoint>> entry : bpsLists.entrySet()) {
List<IBreakpoint> bpsList = entry.getValue();
IBreakpoint[] bpsArray = bpsList.toArray(new IBreakpoint[bpsList.size()]);
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/numberformat/FormattedValueRetriever.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/numberformat/FormattedValueRetriever.java
index b3dbfc60a8..2f3507146e 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/numberformat/FormattedValueRetriever.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/numberformat/FormattedValueRetriever.java
@@ -424,10 +424,8 @@ public class FormattedValueRetriever {
final Map<IPropertiesUpdate, String[]> availableFormatsMap,
final Map<IPropertiesUpdate, String> elementFormatMap, final RequestMonitor rm) {
final List<IPropertiesUpdate> outstandingUpdates = new ArrayList<>(updates.length);
- final Map<IPropertiesUpdate, List<String>> requestedFormatsMap = new HashMap<>(
- updates.length * 4 / 3);
- final Map<IPropertiesUpdate, String> activeFormatsMap = new HashMap<>(
- updates.length * 4 / 3);
+ final Map<IPropertiesUpdate, List<String>> requestedFormatsMap = new HashMap<>(updates.length * 4 / 3);
+ final Map<IPropertiesUpdate, String> activeFormatsMap = new HashMap<>(updates.length * 4 / 3);
for (final IPropertiesUpdate update : updates) {
String preferredFormat = FormattedValueVMUtil.getPreferredFormat(update.getPresentationContext());
diff --git a/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/BreakpointsMediator.java b/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/BreakpointsMediator.java
index 0516ceaa24..b7c4b07d9f 100644
--- a/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/BreakpointsMediator.java
+++ b/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/BreakpointsMediator.java
@@ -203,8 +203,7 @@ public class BreakpointsMediator extends AbstractDsfService implements IBreakpoi
// We have to make a copy of the fPlatformBPs keys because uninstallBreakpoints()
// modifies the map as it walks through it.
- List<IBreakpointsTargetDMContext> platformBPKeysCopy = new ArrayList<>(
- fPlatformBPs.size());
+ List<IBreakpointsTargetDMContext> platformBPKeysCopy = new ArrayList<>(fPlatformBPs.size());
platformBPKeysCopy.addAll(0, fPlatformBPs.keySet());
for (IBreakpointsTargetDMContext dmc : platformBPKeysCopy) {
stopTrackingBreakpoints(dmc, countingRm);
@@ -567,8 +566,7 @@ public class BreakpointsMediator extends AbstractDsfService implements IBreakpoi
}
// Get the list of corresponding back-end breakpoints
- final List<IBreakpointDMContext> oldBpContexts = new ArrayList<>(
- breakpointIDs.get(breakpoint));
+ final List<IBreakpointDMContext> oldBpContexts = new ArrayList<>(breakpointIDs.get(breakpoint));
// Calculate the list of attributes maps that have not changed.
// Immediately add these to the list of new breakpoint contexts,
diff --git a/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/BreakpointsMediator2.java b/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/BreakpointsMediator2.java
index acc7b20781..0edd50cd18 100644
--- a/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/BreakpointsMediator2.java
+++ b/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/BreakpointsMediator2.java
@@ -319,8 +319,7 @@ public class BreakpointsMediator2 extends AbstractDsfService implements IBreakpo
// We have to make a copy of the fPlatformBPs keys because uninstallBreakpoints()
// modifies the map as it walks through it.
- List<IBreakpointsTargetDMContext> platformBPKeysCopy = new ArrayList<>(
- fPlatformBPs.size());
+ List<IBreakpointsTargetDMContext> platformBPKeysCopy = new ArrayList<>(fPlatformBPs.size());
platformBPKeysCopy.addAll(0, fPlatformBPs.keySet());
for (IBreakpointsTargetDMContext dmc : platformBPKeysCopy) {
stopTrackingBreakpoints(dmc, countingRm);
@@ -527,8 +526,7 @@ public class BreakpointsMediator2 extends AbstractDsfService implements IBreakpo
targetBPsAttempted.add(new TargetBP(attrsList.get(i)));
}
- final ArrayList<ITargetBreakpointInfo> targetBPsInstalled = new ArrayList<>(
- attrsList.size());
+ final ArrayList<ITargetBreakpointInfo> targetBPsInstalled = new ArrayList<>(attrsList.size());
// Update the breakpoint status when all back-end breakpoints have been installed
final CountingRequestMonitor installRM = new CountingRequestMonitor(getExecutor(), rm) {
diff --git a/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/command/CommandCache.java b/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/command/CommandCache.java
index e87663d3a1..9b70d91bac 100644
--- a/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/command/CommandCache.java
+++ b/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/command/CommandCache.java
@@ -287,8 +287,7 @@ public class CommandCache implements ICommandListener {
* them to point to the new super command.
*/
- for (CommandInfo waitingEntry : new ArrayList<>(
- fPendingQWaitingForCoalescedCompletion)) {
+ for (CommandInfo waitingEntry : new ArrayList<>(fPendingQWaitingForCoalescedCompletion)) {
if (waitingEntry.getCoalescedCmd() == currentUnsentEntry) {
/*
@@ -469,8 +468,7 @@ public class CommandCache implements ICommandListener {
* we create a new result from the coalesced command for it.
*/
- for (CommandInfo waitingEntry : new ArrayList<>(
- fPendingQWaitingForCoalescedCompletion)) {
+ for (CommandInfo waitingEntry : new ArrayList<>(fPendingQWaitingForCoalescedCompletion)) {
if (waitingEntry.getCoalescedCmd() == finalCachedCmd) {
diff --git a/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/service/DsfSession.java b/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/service/DsfSession.java
index 13d3c831bf..65cf406679 100644
--- a/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/service/DsfSession.java
+++ b/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/service/DsfSession.java
@@ -485,29 +485,28 @@ public class DsfSession {
Dictionary<String, ?> serviceProperties = (Dictionary<String, ?>) _serviceProperties;
// Build a list of listeners;
- SortedMap<ListenerEntry, List<Method>> listeners = new TreeMap<>(
- new Comparator<ListenerEntry>() {
- @Override
- public int compare(ListenerEntry o1, ListenerEntry o2) {
- if (o1.fListener == o2.fListener) {
- return 0;
- }
- if (o1.fListener instanceof IDsfService && !(o2.fListener instanceof IDsfService)) {
- return -1;
- } else if (o2.fListener instanceof IDsfService && !(o1.fListener instanceof IDsfService)) {
- return 1;
- } else if ((o1.fListener instanceof IDsfService) && (o2.fListener instanceof IDsfService)) {
- return ((IDsfService) o1.fListener).getStartupNumber()
- - ((IDsfService) o2.fListener).getStartupNumber();
- }
- return 1;
- }
+ SortedMap<ListenerEntry, List<Method>> listeners = new TreeMap<>(new Comparator<ListenerEntry>() {
+ @Override
+ public int compare(ListenerEntry o1, ListenerEntry o2) {
+ if (o1.fListener == o2.fListener) {
+ return 0;
+ }
+ if (o1.fListener instanceof IDsfService && !(o2.fListener instanceof IDsfService)) {
+ return -1;
+ } else if (o2.fListener instanceof IDsfService && !(o1.fListener instanceof IDsfService)) {
+ return 1;
+ } else if ((o1.fListener instanceof IDsfService) && (o2.fListener instanceof IDsfService)) {
+ return ((IDsfService) o1.fListener).getStartupNumber()
+ - ((IDsfService) o2.fListener).getStartupNumber();
+ }
+ return 1;
+ }
- @Override
- public boolean equals(Object obj) {
- return obj == this;
- }
- });
+ @Override
+ public boolean equals(Object obj) {
+ return obj == this;
+ }
+ });
// Build a list of listeners and methods that are registered for this event class.
Class<?> eventClass = event.getClass();
diff --git a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/ACPMSumDataGenerator.java b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/ACPMSumDataGenerator.java
index b3ac142d56..2e663a2354 100644
--- a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/ACPMSumDataGenerator.java
+++ b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/ACPMSumDataGenerator.java
@@ -14,6 +14,7 @@
//#ifdef exercises
package org.eclipse.cdt.examples.dsf.dataviewer;
//#else
+
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
//#endif
@@ -46,205 +47,190 @@ import org.eclipse.core.runtime.CoreException;
* invalidate their caches.
* </p>
*/
-public class ACPMSumDataGenerator
- implements IDataGenerator, IDataGenerator.Listener
-{
-
- /**
- * DSF executor used to serialize data access within this data generator.
- */
- final private DsfExecutor fExecutor;
-
- /**
- * Data generators to retrieve original data to perform calculations on.
- * The generators are accessed through the cache manager wrappers.
- */
- final private DataGeneratorCacheManager[] fDataGeneratorCMs;
-
- /**
- * List of listeners for this data generator.
- */
- final private List<Listener> fListeners = new LinkedList<Listener>();
-
- public ACPMSumDataGenerator(DsfExecutor executor,
- IDataGenerator[] generators)
- {
- fExecutor = executor;
-
- // Create wrappers for data generators and add ourselves as listener
- // to their events.
- fDataGeneratorCMs = new DataGeneratorCacheManager[generators.length];
- ImmediateInDsfExecutor immediateExecutor =
- new ImmediateInDsfExecutor(fExecutor);
- for (int i = 0; i < generators.length; i++) {
- fDataGeneratorCMs[i] = new DataGeneratorCacheManager(
- immediateExecutor, generators[i]);
- generators[i].addListener(this);
- }
- }
-
- @Override
+public class ACPMSumDataGenerator implements IDataGenerator, IDataGenerator.Listener {
+
+ /**
+ * DSF executor used to serialize data access within this data generator.
+ */
+ final private DsfExecutor fExecutor;
+
+ /**
+ * Data generators to retrieve original data to perform calculations on.
+ * The generators are accessed through the cache manager wrappers.
+ */
+ final private DataGeneratorCacheManager[] fDataGeneratorCMs;
+
+ /**
+ * List of listeners for this data generator.
+ */
+ final private List<Listener> fListeners = new LinkedList<Listener>();
+
+ public ACPMSumDataGenerator(DsfExecutor executor, IDataGenerator[] generators) {
+ fExecutor = executor;
+
+ // Create wrappers for data generators and add ourselves as listener
+ // to their events.
+ fDataGeneratorCMs = new DataGeneratorCacheManager[generators.length];
+ ImmediateInDsfExecutor immediateExecutor = new ImmediateInDsfExecutor(fExecutor);
+ for (int i = 0; i < generators.length; i++) {
+ fDataGeneratorCMs[i] = new DataGeneratorCacheManager(immediateExecutor, generators[i]);
+ generators[i].addListener(this);
+ }
+ }
+
+ @Override
public void getCount(final DataRequestMonitor<Integer> rm) {
- // Artificially delay the retrieval of the sum data to simulate
- // real processing time.
- fExecutor.schedule( new Runnable() {
- @Override
- public void run() {
- // Create the transaction here to put all the ugly
- // code in one place.
- new Transaction<Integer>() {
- @Override
- protected Integer process()
- throws Transaction.InvalidCacheException,
- CoreException
- {
- return processCount(this);
- }
- }.request(rm);
- }
- },
- PROCESSING_DELAY, TimeUnit.MILLISECONDS);
- }
-
- /**
- * Perform the calculation to get the max count for the given transaction.
- * @param transaction The ACPM transaction to use for calculation.
- * @return Calculated count.
- * @throws Transaction.InvalidCacheException {@link Transaction#process}
- * @throws CoreException See {@link Transaction#process}
- */
- private Integer processCount(Transaction<Integer> transaction)
- throws Transaction.InvalidCacheException, CoreException
- {
- // Assemble all needed count caches into a collection.
- List<ICache<Integer>> countCaches =
- new ArrayList<ICache<Integer>>(fDataGeneratorCMs.length);
- for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
- countCaches.add(dataGeneratorCM.getCount());
- }
- // Validate all count caches at once. This executes needed requests
- // in parallel.
- transaction.validate(countCaches);
-
- // Calculate the max value and return.
- int maxCount = 0;
- for (ICache<Integer> countCache : countCaches) {
- maxCount = Math.max(maxCount, countCache.getData());
- }
- return maxCount;
- }
-
- @Override
- public void getValue(final int index, final DataRequestMonitor<Integer> rm)
- {
- // Add a processing delay.
- fExecutor.schedule( new Runnable() {
- @Override
- public void run() {
- new Transaction<Integer>() {
- @Override
- protected Integer process()
- throws Transaction.InvalidCacheException,
- CoreException
- {
- return processValue(this, index);
- }
- }.request(rm);
- }
- },
- PROCESSING_DELAY, TimeUnit.MILLISECONDS);
- }
-
- /**
- * Perform the calculation to get the sum of values at given index.
- * @param transaction The ACPM transaction to use for calculation.
- * @param index Index of value to calculate.
- * @return Calculated value.
- * @throws Transaction.InvalidCacheException {@link Transaction#process}
- * @throws CoreException See {@link Transaction#process}
- */
- private Integer processValue(Transaction<Integer> transaction, int index)
- throws Transaction.InvalidCacheException, CoreException
- {
- List<ICache<Integer>> valueCaches =
- new ArrayList<ICache<Integer>>(fDataGeneratorCMs.length);
- for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
- valueCaches.add(dataGeneratorCM.getValue(index));
- }
- // Validate all value caches at once. This executes needed requests
- // in parallel.
- transaction.validate(valueCaches);
-
- int sum = 0;
- for (ICache<Integer> valueCache : valueCaches) {
- sum += valueCache.getData();
- }
- return sum;
- }
-
- @Override
+ // Artificially delay the retrieval of the sum data to simulate
+ // real processing time.
+ fExecutor.schedule(new Runnable() {
+ @Override
+ public void run() {
+ // Create the transaction here to put all the ugly
+ // code in one place.
+ new Transaction<Integer>() {
+ @Override
+ protected Integer process() throws Transaction.InvalidCacheException, CoreException {
+ return processCount(this);
+ }
+ }.request(rm);
+ }
+ }, PROCESSING_DELAY, TimeUnit.MILLISECONDS);
+ }
+
+ /**
+ * Perform the calculation to get the max count for the given transaction.
+ * @param transaction The ACPM transaction to use for calculation.
+ * @return Calculated count.
+ * @throws Transaction.InvalidCacheException {@link Transaction#process}
+ * @throws CoreException See {@link Transaction#process}
+ */
+ private Integer processCount(Transaction<Integer> transaction)
+ throws Transaction.InvalidCacheException, CoreException {
+ // Assemble all needed count caches into a collection.
+ List<ICache<Integer>> countCaches = new ArrayList<ICache<Integer>>(fDataGeneratorCMs.length);
+ for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
+ countCaches.add(dataGeneratorCM.getCount());
+ }
+ // Validate all count caches at once. This executes needed requests
+ // in parallel.
+ transaction.validate(countCaches);
+
+ // Calculate the max value and return.
+ int maxCount = 0;
+ for (ICache<Integer> countCache : countCaches) {
+ maxCount = Math.max(maxCount, countCache.getData());
+ }
+ return maxCount;
+ }
+
+ @Override
+ public void getValue(final int index, final DataRequestMonitor<Integer> rm) {
+ // Add a processing delay.
+ fExecutor.schedule(new Runnable() {
+ @Override
+ public void run() {
+ new Transaction<Integer>() {
+ @Override
+ protected Integer process() throws Transaction.InvalidCacheException, CoreException {
+ return processValue(this, index);
+ }
+ }.request(rm);
+ }
+ }, PROCESSING_DELAY, TimeUnit.MILLISECONDS);
+ }
+
+ /**
+ * Perform the calculation to get the sum of values at given index.
+ * @param transaction The ACPM transaction to use for calculation.
+ * @param index Index of value to calculate.
+ * @return Calculated value.
+ * @throws Transaction.InvalidCacheException {@link Transaction#process}
+ * @throws CoreException See {@link Transaction#process}
+ */
+ private Integer processValue(Transaction<Integer> transaction, int index)
+ throws Transaction.InvalidCacheException, CoreException {
+ List<ICache<Integer>> valueCaches = new ArrayList<ICache<Integer>>(fDataGeneratorCMs.length);
+ for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
+ valueCaches.add(dataGeneratorCM.getValue(index));
+ }
+ // Validate all value caches at once. This executes needed requests
+ // in parallel.
+ transaction.validate(valueCaches);
+
+ int sum = 0;
+ for (ICache<Integer> valueCache : valueCaches) {
+ sum += valueCache.getData();
+ }
+ return sum;
+ }
+
+ @Override
public void shutdown(final RequestMonitor rm) {
- for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
- dataGeneratorCM.getDataGenerator().removeListener(this);
- dataGeneratorCM.dispose();
- rm.done();
- }
- rm.done();
- }
-
- @Override
+ for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
+ dataGeneratorCM.getDataGenerator().removeListener(this);
+ dataGeneratorCM.dispose();
+ rm.done();
+ }
+ rm.done();
+ }
+
+ @Override
public void addListener(final Listener listener) {
- // Must access fListeners on executor thread.
- try {
- fExecutor.execute( new DsfRunnable() {
- @Override
+ // Must access fListeners on executor thread.
+ try {
+ fExecutor.execute(new DsfRunnable() {
+ @Override
public void run() {
- fListeners.add(listener);
- }
- });
- } catch (RejectedExecutionException e) {}
- }
-
- @Override
+ fListeners.add(listener);
+ }
+ });
+ } catch (RejectedExecutionException e) {
+ }
+ }
+
+ @Override
public void removeListener(final Listener listener) {
- // Must access fListeners on executor thread.
- try {
- fExecutor.execute( new DsfRunnable() {
- @Override
+ // Must access fListeners on executor thread.
+ try {
+ fExecutor.execute(new DsfRunnable() {
+ @Override
public void run() {
- fListeners.remove(listener);
- }
- });
- } catch (RejectedExecutionException e) {}
- }
-
- @Override
+ fListeners.remove(listener);
+ }
+ });
+ } catch (RejectedExecutionException e) {
+ }
+ }
+
+ @Override
public void countChanged() {
- // Must access fListeners on executor thread.
- try {
- fExecutor.execute( new DsfRunnable() {
- @Override
+ // Must access fListeners on executor thread.
+ try {
+ fExecutor.execute(new DsfRunnable() {
+ @Override
public void run() {
- for (Listener listener : fListeners) {
- listener.countChanged();
- }
- }
- });
- } catch (RejectedExecutionException e) {}
- }
-
- @Override
+ for (Listener listener : fListeners) {
+ listener.countChanged();
+ }
+ }
+ });
+ } catch (RejectedExecutionException e) {
+ }
+ }
+
+ @Override
public void valuesChanged(final Set<Integer> changed) {
- // Must access fListeners on executor thread.
- try {
- fExecutor.execute( new DsfRunnable() {
- @Override
+ // Must access fListeners on executor thread.
+ try {
+ fExecutor.execute(new DsfRunnable() {
+ @Override
public void run() {
- for (Object listener : fListeners) {
- ((Listener)listener).valuesChanged(changed);
- }
- }
- });
- } catch (RejectedExecutionException e) {}
- }
+ for (Object listener : fListeners) {
+ ((Listener) listener).valuesChanged(changed);
+ }
+ }
+ });
+ } catch (RejectedExecutionException e) {
+ }
+ }
}
diff --git a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/ACPMSumDataViewer.java b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/ACPMSumDataViewer.java
index 16f1060b63..cccab46b2f 100644
--- a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/ACPMSumDataViewer.java
+++ b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/ACPMSumDataViewer.java
@@ -14,6 +14,7 @@
//#ifdef exercises
package org.eclipse.cdt.examples.dsf.dataviewer;
//#else
+
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
//#endif
@@ -62,431 +63,409 @@ import org.eclipse.swt.widgets.Table;
* </p>
*/
@ConfinedToDsfExecutor("fDisplayExecutor")
-public class ACPMSumDataViewer implements ILazyContentProvider
-{
- /** View update frequency interval. */
- final private static int UPDATE_INTERVAL = 10000;
-
- /** Executor to use instead of Display.asyncExec(). **/
- @ThreadSafe
- final private DsfExecutor fDisplayExecutor;
-
- /** Executor to use when retrieving data from data providers */
- @ThreadSafe
- final private ImmediateInDsfExecutor fDataExecutor;
-
- // The viewer and generator that this content provider using.
- final private TableViewer fViewer;
- final private DataGeneratorCacheManager[] fDataGeneratorCMs;
- final private DataGeneratorCacheManager fSumGeneratorCM;
-
- // Fields used in request cancellation logic.
- private List<ValueRequestMonitor> fItemDataRequestMonitors =
- new LinkedList<ValueRequestMonitor>();
- private Set<Integer> fIndexesToCancel = new HashSet<Integer>();
- private int fCancelCallsPending = 0;
- private Future<?> fRefreshFuture;
-
- public ACPMSumDataViewer(TableViewer viewer,
- ImmediateInDsfExecutor dataExecutor, IDataGenerator[] generators,
- IDataGenerator sumGenerator)
- {
- fViewer = viewer;
- fDisplayExecutor = DisplayDsfExecutor.getDisplayDsfExecutor(
- fViewer.getTable().getDisplay());
- fDataExecutor = dataExecutor;
-
- // Create wrappers for data generators. Don't need to register as
- // listeners to generator events because the cache managers ensure data
- // are already registered for them.
- fDataGeneratorCMs = new DataGeneratorCacheManager[generators.length];
- for (int i = 0; i < generators.length; i++) {
- fDataGeneratorCMs[i] =
- new DataGeneratorCacheManager(fDataExecutor, generators[i]);
- }
- fSumGeneratorCM =
- new DataGeneratorCacheManager(fDataExecutor, sumGenerator);
-
- // Schedule a task to refresh the viewer periodically.
- fRefreshFuture = fDisplayExecutor.scheduleAtFixedRate(
- new Runnable() {
- @Override
- public void run() {
- queryItemCount();
- }
- },
- UPDATE_INTERVAL, UPDATE_INTERVAL, TimeUnit.MILLISECONDS);
- }
-
- @Override
+public class ACPMSumDataViewer implements ILazyContentProvider {
+ /** View update frequency interval. */
+ final private static int UPDATE_INTERVAL = 10000;
+
+ /** Executor to use instead of Display.asyncExec(). **/
+ @ThreadSafe
+ final private DsfExecutor fDisplayExecutor;
+
+ /** Executor to use when retrieving data from data providers */
+ @ThreadSafe
+ final private ImmediateInDsfExecutor fDataExecutor;
+
+ // The viewer and generator that this content provider using.
+ final private TableViewer fViewer;
+ final private DataGeneratorCacheManager[] fDataGeneratorCMs;
+ final private DataGeneratorCacheManager fSumGeneratorCM;
+
+ // Fields used in request cancellation logic.
+ private List<ValueRequestMonitor> fItemDataRequestMonitors = new LinkedList<ValueRequestMonitor>();
+ private Set<Integer> fIndexesToCancel = new HashSet<Integer>();
+ private int fCancelCallsPending = 0;
+ private Future<?> fRefreshFuture;
+
+ public ACPMSumDataViewer(TableViewer viewer, ImmediateInDsfExecutor dataExecutor, IDataGenerator[] generators,
+ IDataGenerator sumGenerator) {
+ fViewer = viewer;
+ fDisplayExecutor = DisplayDsfExecutor.getDisplayDsfExecutor(fViewer.getTable().getDisplay());
+ fDataExecutor = dataExecutor;
+
+ // Create wrappers for data generators. Don't need to register as
+ // listeners to generator events because the cache managers ensure data
+ // are already registered for them.
+ fDataGeneratorCMs = new DataGeneratorCacheManager[generators.length];
+ for (int i = 0; i < generators.length; i++) {
+ fDataGeneratorCMs[i] = new DataGeneratorCacheManager(fDataExecutor, generators[i]);
+ }
+ fSumGeneratorCM = new DataGeneratorCacheManager(fDataExecutor, sumGenerator);
+
+ // Schedule a task to refresh the viewer periodically.
+ fRefreshFuture = fDisplayExecutor.scheduleAtFixedRate(new Runnable() {
+ @Override
+ public void run() {
+ queryItemCount();
+ }
+ }, UPDATE_INTERVAL, UPDATE_INTERVAL, TimeUnit.MILLISECONDS);
+ }
+
+ @Override
public void dispose() {
- // Cancel the periodic task of refreshing the view.
- fRefreshFuture.cancel(false);
-
- // Need to dispose cache managers that were created in this class. This
- // needs to be done on the cache manager's thread.
- Query<Object> disposeCacheManagersQuery = new Query<Object>() {
- @Override
- protected void execute(DataRequestMonitor<Object> rm) {
- fSumGeneratorCM.dispose();
- for (DataGeneratorCacheManager dataGeneratorCM :
- fDataGeneratorCMs)
- {
- dataGeneratorCM.dispose();
- }
- rm.setData(new Object());
- rm.done();
- }
- };
- fDataExecutor.execute(disposeCacheManagersQuery);
- try {
- disposeCacheManagersQuery.get();
- }
- catch (InterruptedException e) {}
- catch (ExecutionException e) {}
-
- // Cancel any outstanding data requests.
- for (ValueRequestMonitor rm : fItemDataRequestMonitors) {
- rm.cancel();
- }
- fItemDataRequestMonitors.clear();
- }
-
- @Override
+ // Cancel the periodic task of refreshing the view.
+ fRefreshFuture.cancel(false);
+
+ // Need to dispose cache managers that were created in this class. This
+ // needs to be done on the cache manager's thread.
+ Query<Object> disposeCacheManagersQuery = new Query<Object>() {
+ @Override
+ protected void execute(DataRequestMonitor<Object> rm) {
+ fSumGeneratorCM.dispose();
+ for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
+ dataGeneratorCM.dispose();
+ }
+ rm.setData(new Object());
+ rm.done();
+ }
+ };
+ fDataExecutor.execute(disposeCacheManagersQuery);
+ try {
+ disposeCacheManagersQuery.get();
+ } catch (InterruptedException e) {
+ } catch (ExecutionException e) {
+ }
+
+ // Cancel any outstanding data requests.
+ for (ValueRequestMonitor rm : fItemDataRequestMonitors) {
+ rm.cancel();
+ }
+ fItemDataRequestMonitors.clear();
+ }
+
+ @Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- // Set the initial count to the viewer after the input is set.
- queryItemCount();
- }
+ // Set the initial count to the viewer after the input is set.
+ queryItemCount();
+ }
- @Override
+ @Override
public void updateElement(final int index) {
- // Calculate the visible index range.
- final int topIdx = fViewer.getTable().getTopIndex();
- final int botIdx = topIdx + getVisibleItemCount(topIdx);
-
- // Request the item for the given index.
- queryValue(index);
-
- // Invoke a cancel task with a delay. The delay allows multiple cancel
- // calls to be combined together improving performance of the viewer.
- fCancelCallsPending++;
- fDisplayExecutor.execute(
- new Runnable() { @Override
+ // Calculate the visible index range.
+ final int topIdx = fViewer.getTable().getTopIndex();
+ final int botIdx = topIdx + getVisibleItemCount(topIdx);
+
+ // Request the item for the given index.
+ queryValue(index);
+
+ // Invoke a cancel task with a delay. The delay allows multiple cancel
+ // calls to be combined together improving performance of the viewer.
+ fCancelCallsPending++;
+ fDisplayExecutor.execute(new Runnable() {
+ @Override
public void run() {
- cancelStaleRequests(topIdx, botIdx);
- }});
- }
-
- /**
- * Calculates the number of visible items based on the top item index and
- * table bounds.
- * @param top Index of top item.
- * @return calculated number of items in viewer
- */
- private int getVisibleItemCount(int top) {
- Table table = fViewer.getTable();
- int itemCount = table.getItemCount();
- return Math.min(
- (table.getBounds().height / table.getItemHeight()) + 2,
- itemCount - top);
- }
-
- /**
- * Retrieve the current count. When a new count is set to viewer, the viewer
- * will refresh all items as well.
- */
- private void queryItemCount() {
- // Create the request monitor to collect the count. This request
- // monitor will be completed by the following transaction.
- final DataRequestMonitor<Integer> rm =
- new DataRequestMonitor<Integer>(fDisplayExecutor, null)
- {
- @Override
- protected void handleSuccess() {
- setCountToViewer(getData());
- }
- @Override
- protected void handleRejectedExecutionException() {} // Shutting down, ignore.
- };
-
- // Use a transaction, even with a single cache. This will ensure that
- // if the cache is reset during processing by an event. The request
- // for data will be re-issued.
- fDataExecutor.execute(new Runnable() {
- @Override
+ cancelStaleRequests(topIdx, botIdx);
+ }
+ });
+ }
+
+ /**
+ * Calculates the number of visible items based on the top item index and
+ * table bounds.
+ * @param top Index of top item.
+ * @return calculated number of items in viewer
+ */
+ private int getVisibleItemCount(int top) {
+ Table table = fViewer.getTable();
+ int itemCount = table.getItemCount();
+ return Math.min((table.getBounds().height / table.getItemHeight()) + 2, itemCount - top);
+ }
+
+ /**
+ * Retrieve the current count. When a new count is set to viewer, the viewer
+ * will refresh all items as well.
+ */
+ private void queryItemCount() {
+ // Create the request monitor to collect the count. This request
+ // monitor will be completed by the following transaction.
+ final DataRequestMonitor<Integer> rm = new DataRequestMonitor<Integer>(fDisplayExecutor, null) {
+ @Override
+ protected void handleSuccess() {
+ setCountToViewer(getData());
+ }
+
+ @Override
+ protected void handleRejectedExecutionException() {
+ } // Shutting down, ignore.
+ };
+
+ // Use a transaction, even with a single cache. This will ensure that
+ // if the cache is reset during processing by an event. The request
+ // for data will be re-issued.
+ fDataExecutor.execute(new Runnable() {
+ @Override
public void run() {
- new Transaction<Integer>() {
- @Override
- protected Integer process()
- throws Transaction.InvalidCacheException, CoreException
- {
- return processCount(this);
- }
- }.request(rm);
- }
- });
- }
-
- /**
- * Perform the count retrieval from the sum data generator.
- * @param transaction The ACPM transaction to use for calculation.
- * @return Calculated count.
- * @throws Transaction.InvalidCacheException {@link Transaction#process}
- * @throws CoreException See {@link Transaction#process}
- */
- private Integer processCount(Transaction<Integer> transaction)
- throws Transaction.InvalidCacheException, CoreException
- {
- ICache<Integer> countCache = fSumGeneratorCM.getCount();
- transaction.validate(countCache);
- return countCache.getData();
- }
-
- /**
- * Set the givne count to the viewer. This will cause the viewer will
- * refresh all items' data as well.
- * <p>Note: This method must be called in the display thread. </p>
- * @param count New count to set to viewer.
- */
- private void setCountToViewer(int count) {
- if (!fViewer.getTable().isDisposed()) {
- fViewer.setItemCount(count);
- fViewer.getTable().clearAll();
- }
- }
-
- /**
- * Retrieve the current value for given index.
- */
- private void queryValue(final int index) {
- // Create the request monitor to collect the value. This request
- // monitor will be completed by the following transaction.
- final ValueRequestMonitor rm = new ValueRequestMonitor(index) {
- @Override
- protected void handleCompleted() {
- fItemDataRequestMonitors.remove(this);
- if (isSuccess()) {
- setValueToViewer(index, getData());
- }
- }
- @Override
- protected void handleRejectedExecutionException() {
- // Shutting down, ignore.
- }
- };
-
- // Save the value request monitor, to cancel it if the view is
- // scrolled.
- fItemDataRequestMonitors.add(rm);
-
- // Use a transaction, even with a single cache. This will ensure that
- // if the cache is reset during processing by an event. The request
- // for data will be re-issued.
- fDataExecutor.execute(new Runnable() {
- @Override
+ new Transaction<Integer>() {
+ @Override
+ protected Integer process() throws Transaction.InvalidCacheException, CoreException {
+ return processCount(this);
+ }
+ }.request(rm);
+ }
+ });
+ }
+
+ /**
+ * Perform the count retrieval from the sum data generator.
+ * @param transaction The ACPM transaction to use for calculation.
+ * @return Calculated count.
+ * @throws Transaction.InvalidCacheException {@link Transaction#process}
+ * @throws CoreException See {@link Transaction#process}
+ */
+ private Integer processCount(Transaction<Integer> transaction)
+ throws Transaction.InvalidCacheException, CoreException {
+ ICache<Integer> countCache = fSumGeneratorCM.getCount();
+ transaction.validate(countCache);
+ return countCache.getData();
+ }
+
+ /**
+ * Set the givne count to the viewer. This will cause the viewer will
+ * refresh all items' data as well.
+ * <p>Note: This method must be called in the display thread. </p>
+ * @param count New count to set to viewer.
+ */
+ private void setCountToViewer(int count) {
+ if (!fViewer.getTable().isDisposed()) {
+ fViewer.setItemCount(count);
+ fViewer.getTable().clearAll();
+ }
+ }
+
+ /**
+ * Retrieve the current value for given index.
+ */
+ private void queryValue(final int index) {
+ // Create the request monitor to collect the value. This request
+ // monitor will be completed by the following transaction.
+ final ValueRequestMonitor rm = new ValueRequestMonitor(index) {
+ @Override
+ protected void handleCompleted() {
+ fItemDataRequestMonitors.remove(this);
+ if (isSuccess()) {
+ setValueToViewer(index, getData());
+ }
+ }
+
+ @Override
+ protected void handleRejectedExecutionException() {
+ // Shutting down, ignore.
+ }
+ };
+
+ // Save the value request monitor, to cancel it if the view is
+ // scrolled.
+ fItemDataRequestMonitors.add(rm);
+
+ // Use a transaction, even with a single cache. This will ensure that
+ // if the cache is reset during processing by an event. The request
+ // for data will be re-issued.
+ fDataExecutor.execute(new Runnable() {
+ @Override
public void run() {
- new Transaction<String>() {
- @Override
- protected String process()
- throws Transaction.InvalidCacheException, CoreException
- {
- return processValue(this, index);
- }
- }.request(rm);
- }
- });
- }
-
- /**
- * Write the view value to the viewer.
- * <p>Note: This method must be called in the display thread. </p>
- * @param index Index of value to set.
- * @param value New value.
- */
- private void setValueToViewer(int index, String value) {
- if (!fViewer.getTable().isDisposed()) {
- fViewer.replace(value, index);
- }
- }
-
- /**
- * Perform the calculation compose the string with data provider values
- * and the sum. This implementation also validates the result.
- * @param transaction The ACPM transaction to use for calculation.
- * @param index Index of value to calculate.
- * @return Calculated value.
- * @throws Transaction.InvalidCacheException {@link Transaction#process}
- * @throws CoreException See {@link Transaction#process}
- */
- private String processValue(Transaction<String> transaction, int index)
- throws Transaction.InvalidCacheException, CoreException
- {
- List<ICache<Integer>> valueCaches =
- new ArrayList<ICache<Integer>>(fDataGeneratorCMs.length);
- for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
- valueCaches.add(dataGeneratorCM.getValue(index));
- }
- // Validate all value caches at once. This executes needed requests
- // in parallel.
- transaction.validate(valueCaches);
-
- // TODO: evaluate sum generator cache in parallel with value caches.
- ICache<Integer> sumCache = fSumGeneratorCM.getValue(index);
- transaction.validate(sumCache);
-
- // Compose the string with values, sum, and validation result.
- StringBuilder result = new StringBuilder();
- int calcSum = 0;
- for (ICache<Integer> valueCache : valueCaches) {
- if (result.length() != 0) result.append(" + ");
- result.append(valueCache.getData());
- calcSum += valueCache.getData();
- }
- result.append(" = ");
- result.append(sumCache.getData());
- if (calcSum != sumCache.getData()) {
- result.append(" !INCORRECT! ");
- }
-
- return result.toString();
- }
-
- /**
- * Dedicated class for data item requests. This class holds the index
- * argument so it can be examined when canceling stale requests.
- */
- private class ValueRequestMonitor extends DataRequestMonitor<String> {
- /** Index is used when canceling stale requests. */
- int fIndex;
-
- ValueRequestMonitor(int index) {
- super(fDisplayExecutor, null);
- fIndex = index;
- }
-
- @Override
- protected void handleRejectedExecutionException() {
- // Shutting down, ignore.
- }
- }
-
- /**
- * Cancels any outstanding value requests for items which are no longer
- * visible in the viewer.
- *
- * @param topIdx Index of top visible item in viewer.
- * @param botIdx Index of bottom visible item in viewer.
- */
- private void cancelStaleRequests(int topIdx, int botIdx) {
- // Decrement the count of outstanding cancel calls.
- fCancelCallsPending--;
-
- // Must check again, in case disposed while re-dispatching.
- if (fDataGeneratorCMs == null || fViewer.getTable().isDisposed()) {
- return;
- }
-
- // Go through the outstanding requests and cancel any that
- // are not visible anymore.
- for (Iterator<ValueRequestMonitor> itr =
- fItemDataRequestMonitors.iterator(); itr.hasNext();)
- {
- ValueRequestMonitor item = itr.next();
- if (item.fIndex < topIdx || item.fIndex > botIdx) {
- // Set the item to canceled status, so that the data provider
- // will ignore it.
- item.cancel();
-
- // Add the item index to list of indexes that were canceled,
- // which will be sent to the table widget.
- fIndexesToCancel.add(item.fIndex);
-
- // Remove the item from the outstanding cancel requests.
- itr.remove();
- }
- }
- if (!fIndexesToCancel.isEmpty() && fCancelCallsPending == 0) {
- Set<Integer> canceledIdxs = fIndexesToCancel;
- fIndexesToCancel = new HashSet<Integer>();
-
- // Clear the indexes of the canceled request, so that the
- // viewer knows to request them again when needed.
- // Note: clearing using TableViewer.clear(int) seems very
- // inefficient, it's better to use Table.clear(int[]).
- int[] canceledIdxsArray = new int[canceledIdxs.size()];
- int i = 0;
- for (Integer index : canceledIdxs) {
- canceledIdxsArray[i++] = index;
- }
- fViewer.getTable().clear(canceledIdxsArray);
- }
- }
-
- /**
- * The entry point for the example.
- * @param args Program arguments.
- */
- public static void main(String[] args) {
- // Create the shell to hold the viewer.
- Display display = new Display();
- Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setLayout(new GridLayout());
- GridData data = new GridData(GridData.FILL_BOTH);
- shell.setLayoutData(data);
- Font font = new Font(display, "Courier", 10, SWT.NORMAL);
-
- // Create the table viewer.
- TableViewer tableViewer =
- new TableViewer(shell, SWT.BORDER | SWT.VIRTUAL);
- tableViewer.getControl().setLayoutData(data);
-
- DsfExecutor executor = new DefaultDsfExecutor("Example executor");
-
- // Create the data generator.
- final IDataGenerator[] generators = new IDataGenerator[5];
- for (int i = 0; i < generators.length; i++) {
- generators[i] = new DataGeneratorWithExecutor(executor);
- }
- final IDataGenerator sumGenerator =
- new ACPMSumDataGenerator(executor, generators);
-
- // Create the content provider which will populate the viewer.
- ACPMSumDataViewer contentProvider = new ACPMSumDataViewer(
- tableViewer, new ImmediateInDsfExecutor(executor),
- generators, sumGenerator);
- tableViewer.setContentProvider(contentProvider);
- tableViewer.setInput(new Object());
-
- // Open the shell and service the display dispatch loop until user
- // closes the shell.
- shell.open();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
-
- // The IDataGenerator.shutdown() method is asynchronous, this requires
- // using a query again in order to wait for its completion.
- Query<Object> shutdownQuery = new Query<Object>() {
- @Override
- protected void execute(DataRequestMonitor<Object> rm) {
- CountingRequestMonitor crm = new CountingRequestMonitor(
- ImmediateExecutor.getInstance(), rm);
- for (int i = 0; i < generators.length; i++) {
- generators[i].shutdown(crm);
- }
- sumGenerator.shutdown(crm);
- crm.setDoneCount(generators.length);
- }
- };
-
- executor.execute(shutdownQuery);
- try {
- shutdownQuery.get();
- } catch (Exception e) {}
-
- // Shut down the display.
- font.dispose();
- display.dispose();
- }
+ new Transaction<String>() {
+ @Override
+ protected String process() throws Transaction.InvalidCacheException, CoreException {
+ return processValue(this, index);
+ }
+ }.request(rm);
+ }
+ });
+ }
+
+ /**
+ * Write the view value to the viewer.
+ * <p>Note: This method must be called in the display thread. </p>
+ * @param index Index of value to set.
+ * @param value New value.
+ */
+ private void setValueToViewer(int index, String value) {
+ if (!fViewer.getTable().isDisposed()) {
+ fViewer.replace(value, index);
+ }
+ }
+
+ /**
+ * Perform the calculation compose the string with data provider values
+ * and the sum. This implementation also validates the result.
+ * @param transaction The ACPM transaction to use for calculation.
+ * @param index Index of value to calculate.
+ * @return Calculated value.
+ * @throws Transaction.InvalidCacheException {@link Transaction#process}
+ * @throws CoreException See {@link Transaction#process}
+ */
+ private String processValue(Transaction<String> transaction, int index)
+ throws Transaction.InvalidCacheException, CoreException {
+ List<ICache<Integer>> valueCaches = new ArrayList<ICache<Integer>>(fDataGeneratorCMs.length);
+ for (DataGeneratorCacheManager dataGeneratorCM : fDataGeneratorCMs) {
+ valueCaches.add(dataGeneratorCM.getValue(index));
+ }
+ // Validate all value caches at once. This executes needed requests
+ // in parallel.
+ transaction.validate(valueCaches);
+
+ // TODO: evaluate sum generator cache in parallel with value caches.
+ ICache<Integer> sumCache = fSumGeneratorCM.getValue(index);
+ transaction.validate(sumCache);
+
+ // Compose the string with values, sum, and validation result.
+ StringBuilder result = new StringBuilder();
+ int calcSum = 0;
+ for (ICache<Integer> valueCache : valueCaches) {
+ if (result.length() != 0)
+ result.append(" + ");
+ result.append(valueCache.getData());
+ calcSum += valueCache.getData();
+ }
+ result.append(" = ");
+ result.append(sumCache.getData());
+ if (calcSum != sumCache.getData()) {
+ result.append(" !INCORRECT! ");
+ }
+
+ return result.toString();
+ }
+
+ /**
+ * Dedicated class for data item requests. This class holds the index
+ * argument so it can be examined when canceling stale requests.
+ */
+ private class ValueRequestMonitor extends DataRequestMonitor<String> {
+ /** Index is used when canceling stale requests. */
+ int fIndex;
+
+ ValueRequestMonitor(int index) {
+ super(fDisplayExecutor, null);
+ fIndex = index;
+ }
+
+ @Override
+ protected void handleRejectedExecutionException() {
+ // Shutting down, ignore.
+ }
+ }
+
+ /**
+ * Cancels any outstanding value requests for items which are no longer
+ * visible in the viewer.
+ *
+ * @param topIdx Index of top visible item in viewer.
+ * @param botIdx Index of bottom visible item in viewer.
+ */
+ private void cancelStaleRequests(int topIdx, int botIdx) {
+ // Decrement the count of outstanding cancel calls.
+ fCancelCallsPending--;
+
+ // Must check again, in case disposed while re-dispatching.
+ if (fDataGeneratorCMs == null || fViewer.getTable().isDisposed()) {
+ return;
+ }
+
+ // Go through the outstanding requests and cancel any that
+ // are not visible anymore.
+ for (Iterator<ValueRequestMonitor> itr = fItemDataRequestMonitors.iterator(); itr.hasNext();) {
+ ValueRequestMonitor item = itr.next();
+ if (item.fIndex < topIdx || item.fIndex > botIdx) {
+ // Set the item to canceled status, so that the data provider
+ // will ignore it.
+ item.cancel();
+
+ // Add the item index to list of indexes that were canceled,
+ // which will be sent to the table widget.
+ fIndexesToCancel.add(item.fIndex);
+
+ // Remove the item from the outstanding cancel requests.
+ itr.remove();
+ }
+ }
+ if (!fIndexesToCancel.isEmpty() && fCancelCallsPending == 0) {
+ Set<Integer> canceledIdxs = fIndexesToCancel;
+ fIndexesToCancel = new HashSet<Integer>();
+
+ // Clear the indexes of the canceled request, so that the
+ // viewer knows to request them again when needed.
+ // Note: clearing using TableViewer.clear(int) seems very
+ // inefficient, it's better to use Table.clear(int[]).
+ int[] canceledIdxsArray = new int[canceledIdxs.size()];
+ int i = 0;
+ for (Integer index : canceledIdxs) {
+ canceledIdxsArray[i++] = index;
+ }
+ fViewer.getTable().clear(canceledIdxsArray);
+ }
+ }
+
+ /**
+ * The entry point for the example.
+ * @param args Program arguments.
+ */
+ public static void main(String[] args) {
+ // Create the shell to hold the viewer.
+ Display display = new Display();
+ Shell shell = new Shell(display, SWT.SHELL_TRIM);
+ shell.setLayout(new GridLayout());
+ GridData data = new GridData(GridData.FILL_BOTH);
+ shell.setLayoutData(data);
+ Font font = new Font(display, "Courier", 10, SWT.NORMAL);
+
+ // Create the table viewer.
+ TableViewer tableViewer = new TableViewer(shell, SWT.BORDER | SWT.VIRTUAL);
+ tableViewer.getControl().setLayoutData(data);
+
+ DsfExecutor executor = new DefaultDsfExecutor("Example executor");
+
+ // Create the data generator.
+ final IDataGenerator[] generators = new IDataGenerator[5];
+ for (int i = 0; i < generators.length; i++) {
+ generators[i] = new DataGeneratorWithExecutor(executor);
+ }
+ final IDataGenerator sumGenerator = new ACPMSumDataGenerator(executor, generators);
+
+ // Create the content provider which will populate the viewer.
+ ACPMSumDataViewer contentProvider = new ACPMSumDataViewer(tableViewer, new ImmediateInDsfExecutor(executor),
+ generators, sumGenerator);
+ tableViewer.setContentProvider(contentProvider);
+ tableViewer.setInput(new Object());
+
+ // Open the shell and service the display dispatch loop until user
+ // closes the shell.
+ shell.open();
+ while (!shell.isDisposed()) {
+ if (!display.readAndDispatch())
+ display.sleep();
+ }
+
+ // The IDataGenerator.shutdown() method is asynchronous, this requires
+ // using a query again in order to wait for its completion.
+ Query<Object> shutdownQuery = new Query<Object>() {
+ @Override
+ protected void execute(DataRequestMonitor<Object> rm) {
+ CountingRequestMonitor crm = new CountingRequestMonitor(ImmediateExecutor.getInstance(), rm);
+ for (int i = 0; i < generators.length; i++) {
+ generators[i].shutdown(crm);
+ }
+ sumGenerator.shutdown(crm);
+ crm.setDoneCount(generators.length);
+ }
+ };
+
+ executor.execute(shutdownQuery);
+ try {
+ shutdownQuery.get();
+ } catch (Exception e) {
+ }
+
+ // Shut down the display.
+ font.dispose();
+ display.dispose();
+ }
}
diff --git a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/AsyncDataViewer.java b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/AsyncDataViewer.java
index e95e78f2ba..7d1b6b46ee 100644
--- a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/AsyncDataViewer.java
+++ b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/AsyncDataViewer.java
@@ -14,6 +14,7 @@
//#ifdef exercises
package org.eclipse.cdt.examples.dsf.dataviewer;
//#else
+
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
//#endif
@@ -57,255 +58,245 @@ import org.eclipse.swt.widgets.Table;
* </p>
*/
@ConfinedToDsfExecutor("fDisplayExecutor")
-public class AsyncDataViewer
- implements ILazyContentProvider, IDataGenerator.Listener
-{
- // Executor to use instead of Display.asyncExec().
- @ThreadSafe
- final private DsfExecutor fDisplayExecutor;
-
- // The viewer and generator that this content provider using.
- final private TableViewer fViewer;
- final private IDataGenerator fDataGenerator;
-
- // Fields used in request cancellation logic.
- private List<ValueDataRequestMonitor> fItemDataRequestMonitors =
- new LinkedList<ValueDataRequestMonitor>();
- private Set<Integer> fIndexesToCancel = new HashSet<Integer>();
- private int fCancelCallsPending = 0;
-
- public AsyncDataViewer(TableViewer viewer, IDataGenerator generator) {
- fViewer = viewer;
- fDisplayExecutor = DisplayDsfExecutor.getDisplayDsfExecutor(
- fViewer.getTable().getDisplay());
- fDataGenerator = generator;
- fDataGenerator.addListener(this);
- }
-
- @Override
+public class AsyncDataViewer implements ILazyContentProvider, IDataGenerator.Listener {
+ // Executor to use instead of Display.asyncExec().
+ @ThreadSafe
+ final private DsfExecutor fDisplayExecutor;
+
+ // The viewer and generator that this content provider using.
+ final private TableViewer fViewer;
+ final private IDataGenerator fDataGenerator;
+
+ // Fields used in request cancellation logic.
+ private List<ValueDataRequestMonitor> fItemDataRequestMonitors = new LinkedList<ValueDataRequestMonitor>();
+ private Set<Integer> fIndexesToCancel = new HashSet<Integer>();
+ private int fCancelCallsPending = 0;
+
+ public AsyncDataViewer(TableViewer viewer, IDataGenerator generator) {
+ fViewer = viewer;
+ fDisplayExecutor = DisplayDsfExecutor.getDisplayDsfExecutor(fViewer.getTable().getDisplay());
+ fDataGenerator = generator;
+ fDataGenerator.addListener(this);
+ }
+
+ @Override
public void dispose() {
- fDataGenerator.removeListener(this);
- }
+ fDataGenerator.removeListener(this);
+ }
- @Override
+ @Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- // Set the initial count to the viewer after the input is set.
- queryItemCount();
- }
+ // Set the initial count to the viewer after the input is set.
+ queryItemCount();
+ }
- @Override
+ @Override
public void updateElement(final int index) {
- // Calculate the visible index range.
- final int topIdx = fViewer.getTable().getTopIndex();
- final int botIdx = topIdx + getVisibleItemCount(topIdx);
-
- // Request the item for the given index.
- queryValue(index);
-
- // Invoke a cancel task with a delay. The delay allows multiple cancel
- // calls to be combined together improving performance of the viewer.
- fCancelCallsPending++;
- fDisplayExecutor.schedule(
- new Runnable() { @Override
+ // Calculate the visible index range.
+ final int topIdx = fViewer.getTable().getTopIndex();
+ final int botIdx = topIdx + getVisibleItemCount(topIdx);
+
+ // Request the item for the given index.
+ queryValue(index);
+
+ // Invoke a cancel task with a delay. The delay allows multiple cancel
+ // calls to be combined together improving performance of the viewer.
+ fCancelCallsPending++;
+ fDisplayExecutor.schedule(new Runnable() {
+ @Override
public void run() {
- cancelStaleRequests(topIdx, botIdx);
- }},
- 1, TimeUnit.MILLISECONDS);
- }
-
- /**
- * Calculates the number of visible items based on the top item index and
- * table bounds.
- * @param top Index of top item.
- * @return calculated number of items in viewer
- */
- private int getVisibleItemCount(int top) {
- Table table = fViewer.getTable();
- int itemCount = table.getItemCount();
- return Math.min(
- (table.getBounds().height / table.getItemHeight()) + 2,
- itemCount - top);
- }
-
- @Override
+ cancelStaleRequests(topIdx, botIdx);
+ }
+ }, 1, TimeUnit.MILLISECONDS);
+ }
+
+ /**
+ * Calculates the number of visible items based on the top item index and
+ * table bounds.
+ * @param top Index of top item.
+ * @return calculated number of items in viewer
+ */
+ private int getVisibleItemCount(int top) {
+ Table table = fViewer.getTable();
+ int itemCount = table.getItemCount();
+ return Math.min((table.getBounds().height / table.getItemHeight()) + 2, itemCount - top);
+ }
+
+ @Override
@ThreadSafe
- public void countChanged() {
- queryItemCount();
- }
+ public void countChanged() {
+ queryItemCount();
+ }
- @Override
+ @Override
@ThreadSafe
- public void valuesChanged(final Set<Integer> indexes) {
- // Mark the changed items in table viewer as dirty, this will
- // trigger update requests for these indexes if they are
- // visible in the viewer.
- final TableViewer tableViewer = fViewer;
- fDisplayExecutor.execute( new Runnable() {
- @Override
+ public void valuesChanged(final Set<Integer> indexes) {
+ // Mark the changed items in table viewer as dirty, this will
+ // trigger update requests for these indexes if they are
+ // visible in the viewer.
+ final TableViewer tableViewer = fViewer;
+ fDisplayExecutor.execute(new Runnable() {
+ @Override
public void run() {
- if (!fViewer.getTable().isDisposed()) {
- for (Integer index : indexes) {
- tableViewer.clear(index);
- }
- }
- }});
- }
-
- /**
- * Retrieve the up to date count. When a new count is set to viewer, the
- * viewer will refresh all items as well.
- */
- private void queryItemCount() {
- // Request count from data provider. When the count is returned, we
- // have to re-dispatch into the display thread to avoid calling
- // the table widget on the DSF dispatch thread.
- fIndexesToCancel.clear();
- fDataGenerator.getCount(
- // Use the display executor to construct the request monitor, this
- // will cause the handleCompleted() method to be automatically
- // called on the display thread.
- new DataRequestMonitor<Integer>(fDisplayExecutor, null) {
- @Override
- protected void handleCompleted() {
- if (!fViewer.getTable().isDisposed()) {
- fViewer.setItemCount(getData());
- fViewer.getTable().clearAll();
- }
- }
- });
- }
-
-
- /**
- * Retrieves value of an element at given index. When complete the value
- * is written to the viewer.
- * @param index Index of value to retrieve.
- */
- private void queryValue(final int index) {
- ValueDataRequestMonitor rm = new ValueDataRequestMonitor(index);
- fItemDataRequestMonitors.add(rm);
- fDataGenerator.getValue(index, rm);
- }
-
- /**
- * Dedicated class for data item requests. This class holds the index
- * argument so it can be examined when canceling stale requests.
- */
- private class ValueDataRequestMonitor extends DataRequestMonitor<Integer> {
-
- /** Index is used when canceling stale requests. */
- int fIndex;
-
- ValueDataRequestMonitor(int index) {
- super(fDisplayExecutor, null);
- fIndex = index;
- }
-
- @Override
- protected void handleCompleted() {
- fItemDataRequestMonitors.remove(this);
-
- // Check if the request completed successfully, otherwise ignore
- // it.
- if (isSuccess()) {
- if (!fViewer.getTable().isDisposed()) {
- fViewer.replace(getData(), fIndex);
- }
- }
- }
- }
-
- private void cancelStaleRequests(int topIdx, int botIdx) {
- // Decrement the count of outstanding cancel calls.
- fCancelCallsPending--;
-
- // Must check again, in case disposed while re-dispatching.
- if (fDataGenerator == null || fViewer.getTable().isDisposed()) return;
-
- // Go through the outstanding requests and cancel any that
- // are not visible anymore.
- for (Iterator<ValueDataRequestMonitor> itr =
- fItemDataRequestMonitors.iterator();
- itr.hasNext();)
- {
- ValueDataRequestMonitor item = itr.next();
- if (item.fIndex < topIdx || item.fIndex > botIdx) {
- // Set the item to canceled status, so that the data provider
- // will ignore it.
- item.cancel();
-
- // Add the item index to list of indexes that were canceled,
- // which will be sent to the table widget.
- fIndexesToCancel.add(item.fIndex);
-
- // Remove the item from the outstanding cancel requests.
- itr.remove();
- }
- }
- if (!fIndexesToCancel.isEmpty() && fCancelCallsPending == 0) {
- Set<Integer> canceledIdxs = fIndexesToCancel;
- fIndexesToCancel = new HashSet<Integer>();
-
- // Clear the indexes of the canceled request, so that the
- // viewer knows to request them again when needed.
- // Note: clearing using TableViewer.clear(int) seems very
- // inefficient, it's better to use Table.clear(int[]).
- int[] canceledIdxsArray = new int[canceledIdxs.size()];
- int i = 0;
- for (Integer index : canceledIdxs) {
- canceledIdxsArray[i++] = index;
- }
- fViewer.getTable().clear(canceledIdxsArray);
- }
- }
-
-
- public static void main(String[] args) {
- // Create the shell to hold the viewer.
- Display display = new Display();
- Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setLayout(new GridLayout());
- GridData data = new GridData(GridData.FILL_BOTH);
- shell.setLayoutData(data);
- Font font = new Font(display, "Courier", 10, SWT.NORMAL);
-
- // Create the table viewer.
- TableViewer tableViewer =
- new TableViewer(shell, SWT.BORDER | SWT.VIRTUAL);
- tableViewer.getControl().setLayoutData(data);
-
- // Create the data generator.
- final IDataGenerator generator = new DataGeneratorWithExecutor();
-
- // Create the content provider which will populate the viewer.
- AsyncDataViewer contentProvider =
- new AsyncDataViewer(tableViewer, generator);
- tableViewer.setContentProvider(contentProvider);
- tableViewer.setInput(new Object());
-
- // Open the shell and service the display dispatch loop until user
- // closes the shell.
- shell.open();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
-
- // The IDataGenerator.shutdown() method is asynchronous, this requires
- // using a query again in order to wait for its completion.
- Query<Object> shutdownQuery = new Query<Object>() {
- @Override
- protected void execute(DataRequestMonitor<Object> rm) {
- generator.shutdown(rm);
- }
- };
- ImmediateExecutor.getInstance().execute(shutdownQuery);
- try {
- shutdownQuery.get();
- } catch (Exception e) {}
-
- // Shut down the display.
- font.dispose();
- display.dispose();
- }
+ if (!fViewer.getTable().isDisposed()) {
+ for (Integer index : indexes) {
+ tableViewer.clear(index);
+ }
+ }
+ }
+ });
+ }
+
+ /**
+ * Retrieve the up to date count. When a new count is set to viewer, the
+ * viewer will refresh all items as well.
+ */
+ private void queryItemCount() {
+ // Request count from data provider. When the count is returned, we
+ // have to re-dispatch into the display thread to avoid calling
+ // the table widget on the DSF dispatch thread.
+ fIndexesToCancel.clear();
+ fDataGenerator.getCount(
+ // Use the display executor to construct the request monitor, this
+ // will cause the handleCompleted() method to be automatically
+ // called on the display thread.
+ new DataRequestMonitor<Integer>(fDisplayExecutor, null) {
+ @Override
+ protected void handleCompleted() {
+ if (!fViewer.getTable().isDisposed()) {
+ fViewer.setItemCount(getData());
+ fViewer.getTable().clearAll();
+ }
+ }
+ });
+ }
+
+ /**
+ * Retrieves value of an element at given index. When complete the value
+ * is written to the viewer.
+ * @param index Index of value to retrieve.
+ */
+ private void queryValue(final int index) {
+ ValueDataRequestMonitor rm = new ValueDataRequestMonitor(index);
+ fItemDataRequestMonitors.add(rm);
+ fDataGenerator.getValue(index, rm);
+ }
+
+ /**
+ * Dedicated class for data item requests. This class holds the index
+ * argument so it can be examined when canceling stale requests.
+ */
+ private class ValueDataRequestMonitor extends DataRequestMonitor<Integer> {
+
+ /** Index is used when canceling stale requests. */
+ int fIndex;
+
+ ValueDataRequestMonitor(int index) {
+ super(fDisplayExecutor, null);
+ fIndex = index;
+ }
+
+ @Override
+ protected void handleCompleted() {
+ fItemDataRequestMonitors.remove(this);
+
+ // Check if the request completed successfully, otherwise ignore
+ // it.
+ if (isSuccess()) {
+ if (!fViewer.getTable().isDisposed()) {
+ fViewer.replace(getData(), fIndex);
+ }
+ }
+ }
+ }
+
+ private void cancelStaleRequests(int topIdx, int botIdx) {
+ // Decrement the count of outstanding cancel calls.
+ fCancelCallsPending--;
+
+ // Must check again, in case disposed while re-dispatching.
+ if (fDataGenerator == null || fViewer.getTable().isDisposed())
+ return;
+
+ // Go through the outstanding requests and cancel any that
+ // are not visible anymore.
+ for (Iterator<ValueDataRequestMonitor> itr = fItemDataRequestMonitors.iterator(); itr.hasNext();) {
+ ValueDataRequestMonitor item = itr.next();
+ if (item.fIndex < topIdx || item.fIndex > botIdx) {
+ // Set the item to canceled status, so that the data provider
+ // will ignore it.
+ item.cancel();
+
+ // Add the item index to list of indexes that were canceled,
+ // which will be sent to the table widget.
+ fIndexesToCancel.add(item.fIndex);
+
+ // Remove the item from the outstanding cancel requests.
+ itr.remove();
+ }
+ }
+ if (!fIndexesToCancel.isEmpty() && fCancelCallsPending == 0) {
+ Set<Integer> canceledIdxs = fIndexesToCancel;
+ fIndexesToCancel = new HashSet<Integer>();
+
+ // Clear the indexes of the canceled request, so that the
+ // viewer knows to request them again when needed.
+ // Note: clearing using TableViewer.clear(int) seems very
+ // inefficient, it's better to use Table.clear(int[]).
+ int[] canceledIdxsArray = new int[canceledIdxs.size()];
+ int i = 0;
+ for (Integer index : canceledIdxs) {
+ canceledIdxsArray[i++] = index;
+ }
+ fViewer.getTable().clear(canceledIdxsArray);
+ }
+ }
+
+ public static void main(String[] args) {
+ // Create the shell to hold the viewer.
+ Display display = new Display();
+ Shell shell = new Shell(display, SWT.SHELL_TRIM);
+ shell.setLayout(new GridLayout());
+ GridData data = new GridData(GridData.FILL_BOTH);
+ shell.setLayoutData(data);
+ Font font = new Font(display, "Courier", 10, SWT.NORMAL);
+
+ // Create the table viewer.
+ TableViewer tableViewer = new TableViewer(shell, SWT.BORDER | SWT.VIRTUAL);
+ tableViewer.getControl().setLayoutData(data);
+
+ // Create the data generator.
+ final IDataGenerator generator = new DataGeneratorWithExecutor();
+
+ // Create the content provider which will populate the viewer.
+ AsyncDataViewer contentProvider = new AsyncDataViewer(tableViewer, generator);
+ tableViewer.setContentProvider(contentProvider);
+ tableViewer.setInput(new Object());
+
+ // Open the shell and service the display dispatch loop until user
+ // closes the shell.
+ shell.open();
+ while (!shell.isDisposed()) {
+ if (!display.readAndDispatch())
+ display.sleep();
+ }
+
+ // The IDataGenerator.shutdown() method is asynchronous, this requires
+ // using a query again in order to wait for its completion.
+ Query<Object> shutdownQuery = new Query<Object>() {
+ @Override
+ protected void execute(DataRequestMonitor<Object> rm) {
+ generator.shutdown(rm);
+ }
+ };
+ ImmediateExecutor.getInstance().execute(shutdownQuery);
+ try {
+ shutdownQuery.get();
+ } catch (Exception e) {
+ }
+
+ // Shut down the display.
+ font.dispose();
+ display.dispose();
+ }
}
diff --git a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/AsyncSumDataGenerator.java b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/AsyncSumDataGenerator.java
index 9f889c2399..d86219b229 100644
--- a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/AsyncSumDataGenerator.java
+++ b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/AsyncSumDataGenerator.java
@@ -14,6 +14,7 @@
//#ifdef exercises
package org.eclipse.cdt.examples.dsf.dataviewer;
//#else
+
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
//#endif
@@ -38,144 +39,128 @@ import org.eclipse.cdt.dsf.concurrent.RequestMonitor;
*/
public class AsyncSumDataGenerator implements IDataGenerator {
- /**
- * DSF executor used to serialize data access within this data generator.
- */
- final private DsfExecutor fExecutor;
+ /**
+ * DSF executor used to serialize data access within this data generator.
+ */
+ final private DsfExecutor fExecutor;
- /**
- * Data generators to retrieve original data to perform calculations on.
- */
- final private IDataGenerator[] fDataGenerators;
+ /**
+ * Data generators to retrieve original data to perform calculations on.
+ */
+ final private IDataGenerator[] fDataGenerators;
- public AsyncSumDataGenerator(DsfExecutor executor,
- IDataGenerator[] generators)
- {
- fExecutor = executor;
- fDataGenerators = generators;
- }
+ public AsyncSumDataGenerator(DsfExecutor executor, IDataGenerator[] generators) {
+ fExecutor = executor;
+ fDataGenerators = generators;
+ }
- @Override
+ @Override
public void getCount(final DataRequestMonitor<Integer> rm) {
- // Artificially delay the retrieval of the sum data to simulate
- // real processing time.
- fExecutor.schedule( new Runnable() {
- @Override
- public void run() {
- doGetCount(rm);
- }
- },
- PROCESSING_DELAY, TimeUnit.MILLISECONDS);
- }
-
- /**
- * Performs the actual count retrieval and calculation.
- * @param rm Request monitor to complete with data.
- */
- private void doGetCount(final DataRequestMonitor<Integer> rm) {
- // Array to store counts retrieved asynchronously
- final int[] counts = new int[fDataGenerators.length];
-
- // Counting request monitor is called once all data is retrieved.
- final CountingRequestMonitor crm =
- new CountingRequestMonitor(fExecutor, rm)
- {
- @Override
- protected void handleSuccess() {
- // Pick the highest count value.
- Arrays.sort(counts, 0, counts.length - 1);
- int maxCount = counts[counts.length - 1];
- rm.setData(maxCount);
- rm.done();
- };
- };
-
- // Each call to data generator fills in one value in array.
- for (int i = 0; i < fDataGenerators.length; i++) {
- final int finalI = i;
- fDataGenerators[i].getCount(
- new DataRequestMonitor<Integer>(
- ImmediateExecutor.getInstance(), crm)
- {
- @Override
- protected void handleSuccess() {
- counts[finalI] = getData();
- crm.done();
- }
- });
- }
- crm.setDoneCount(fDataGenerators.length);
- }
-
- @Override
- public void getValue(final int index, final DataRequestMonitor<Integer> rm)
- {
- // Artificially delay the retrieval of the sum data to simulate
- // real processing time.
- fExecutor.schedule( new Runnable() {
- @Override
- public void run() {
- doGetValue(index, rm);
- }
- },
- PROCESSING_DELAY, TimeUnit.MILLISECONDS);
- }
-
- /**
- * Performs the actual value retrieval and calculation.
- * @param rm Request monitor to complete with data.
- */
- private void doGetValue(int index, final DataRequestMonitor<Integer> rm) {
- // Array to store counts retrieved asynchronously
- final int[] values = new int[fDataGenerators.length];
-
- // Counting request monitor is called once all data is retrieved.
- final CountingRequestMonitor crm =
- new CountingRequestMonitor(fExecutor, rm)
- {
- @Override
- protected void handleSuccess() {
- // Sum up values in array.
- int sum = 0;
- for (int value : values) {
- sum += value;
- }
- rm.setData(sum);
- rm.done();
- };
- };
-
- // Each call to data generator fills in one value in array.
- for (int i = 0; i < fDataGenerators.length; i++) {
- final int finalI = i;
- fDataGenerators[i].getValue(
- index,
- new DataRequestMonitor<Integer>(
- ImmediateExecutor.getInstance(), crm)
- {
- @Override
- protected void handleSuccess() {
- values[finalI] = getData();
- crm.done();
- }
- });
- }
- crm.setDoneCount(fDataGenerators.length);
- }
-
- @Override
+ // Artificially delay the retrieval of the sum data to simulate
+ // real processing time.
+ fExecutor.schedule(new Runnable() {
+ @Override
+ public void run() {
+ doGetCount(rm);
+ }
+ }, PROCESSING_DELAY, TimeUnit.MILLISECONDS);
+ }
+
+ /**
+ * Performs the actual count retrieval and calculation.
+ * @param rm Request monitor to complete with data.
+ */
+ private void doGetCount(final DataRequestMonitor<Integer> rm) {
+ // Array to store counts retrieved asynchronously
+ final int[] counts = new int[fDataGenerators.length];
+
+ // Counting request monitor is called once all data is retrieved.
+ final CountingRequestMonitor crm = new CountingRequestMonitor(fExecutor, rm) {
+ @Override
+ protected void handleSuccess() {
+ // Pick the highest count value.
+ Arrays.sort(counts, 0, counts.length - 1);
+ int maxCount = counts[counts.length - 1];
+ rm.setData(maxCount);
+ rm.done();
+ };
+ };
+
+ // Each call to data generator fills in one value in array.
+ for (int i = 0; i < fDataGenerators.length; i++) {
+ final int finalI = i;
+ fDataGenerators[i].getCount(new DataRequestMonitor<Integer>(ImmediateExecutor.getInstance(), crm) {
+ @Override
+ protected void handleSuccess() {
+ counts[finalI] = getData();
+ crm.done();
+ }
+ });
+ }
+ crm.setDoneCount(fDataGenerators.length);
+ }
+
+ @Override
+ public void getValue(final int index, final DataRequestMonitor<Integer> rm) {
+ // Artificially delay the retrieval of the sum data to simulate
+ // real processing time.
+ fExecutor.schedule(new Runnable() {
+ @Override
+ public void run() {
+ doGetValue(index, rm);
+ }
+ }, PROCESSING_DELAY, TimeUnit.MILLISECONDS);
+ }
+
+ /**
+ * Performs the actual value retrieval and calculation.
+ * @param rm Request monitor to complete with data.
+ */
+ private void doGetValue(int index, final DataRequestMonitor<Integer> rm) {
+ // Array to store counts retrieved asynchronously
+ final int[] values = new int[fDataGenerators.length];
+
+ // Counting request monitor is called once all data is retrieved.
+ final CountingRequestMonitor crm = new CountingRequestMonitor(fExecutor, rm) {
+ @Override
+ protected void handleSuccess() {
+ // Sum up values in array.
+ int sum = 0;
+ for (int value : values) {
+ sum += value;
+ }
+ rm.setData(sum);
+ rm.done();
+ };
+ };
+
+ // Each call to data generator fills in one value in array.
+ for (int i = 0; i < fDataGenerators.length; i++) {
+ final int finalI = i;
+ fDataGenerators[i].getValue(index, new DataRequestMonitor<Integer>(ImmediateExecutor.getInstance(), crm) {
+ @Override
+ protected void handleSuccess() {
+ values[finalI] = getData();
+ crm.done();
+ }
+ });
+ }
+ crm.setDoneCount(fDataGenerators.length);
+ }
+
+ @Override
public void shutdown(RequestMonitor rm) {
- rm.done();
- }
+ rm.done();
+ }
- @Override
+ @Override
public void addListener(final Listener listener) {
- // no events generated
- }
+ // no events generated
+ }
- @Override
+ @Override
public void removeListener(Listener listener) {
- // no events generated
- }
+ // no events generated
+ }
}
diff --git a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/AsyncSumDataViewer.java b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/AsyncSumDataViewer.java
index 696b84a1e0..e8735bef27 100644
--- a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/AsyncSumDataViewer.java
+++ b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/AsyncSumDataViewer.java
@@ -14,6 +14,7 @@
//#ifdef exercises
package org.eclipse.cdt.examples.dsf.dataviewer;
//#else
+
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
//#endif
@@ -65,354 +66,334 @@ import org.eclipse.swt.widgets.Table;
* </p>
*/
@ConfinedToDsfExecutor("fDisplayExecutor")
-public class AsyncSumDataViewer implements ILazyContentProvider
-{
- /** View update frequency interval. */
- final private static int UPDATE_INTERVAL = 10000;
-
- /** Executor to use instead of Display.asyncExec(). **/
- @ThreadSafe
- final private DsfExecutor fDisplayExecutor;
-
- // The viewer and generator that this content provider using.
- final private TableViewer fViewer;
- final private IDataGenerator[] fDataGenerators;
- final private IDataGenerator fSumGenerator;
-
- // Fields used in request cancellation logic.
- private List<ValueCountingRequestMonitor> fItemDataRequestMonitors =
- new LinkedList<ValueCountingRequestMonitor>();
- private Set<Integer> fIndexesToCancel = new HashSet<Integer>();
- private int fCancelCallsPending = 0;
- private Future<?> fRefreshFuture;
-
- public AsyncSumDataViewer(TableViewer viewer,
- IDataGenerator[] generators, IDataGenerator sumGenerator)
- {
- fViewer = viewer;
- fDisplayExecutor = DisplayDsfExecutor.getDisplayDsfExecutor(
- fViewer.getTable().getDisplay());
- fDataGenerators = generators;
- fSumGenerator = sumGenerator;
-
- // Schedule a task to refresh the viewer periodically.
- fRefreshFuture = fDisplayExecutor.scheduleAtFixedRate(
- new Runnable() {
- @Override
- public void run() {
- queryItemCount();
- }
- },
- UPDATE_INTERVAL, UPDATE_INTERVAL, TimeUnit.MILLISECONDS);
- }
-
- @Override
+public class AsyncSumDataViewer implements ILazyContentProvider {
+ /** View update frequency interval. */
+ final private static int UPDATE_INTERVAL = 10000;
+
+ /** Executor to use instead of Display.asyncExec(). **/
+ @ThreadSafe
+ final private DsfExecutor fDisplayExecutor;
+
+ // The viewer and generator that this content provider using.
+ final private TableViewer fViewer;
+ final private IDataGenerator[] fDataGenerators;
+ final private IDataGenerator fSumGenerator;
+
+ // Fields used in request cancellation logic.
+ private List<ValueCountingRequestMonitor> fItemDataRequestMonitors = new LinkedList<ValueCountingRequestMonitor>();
+ private Set<Integer> fIndexesToCancel = new HashSet<Integer>();
+ private int fCancelCallsPending = 0;
+ private Future<?> fRefreshFuture;
+
+ public AsyncSumDataViewer(TableViewer viewer, IDataGenerator[] generators, IDataGenerator sumGenerator) {
+ fViewer = viewer;
+ fDisplayExecutor = DisplayDsfExecutor.getDisplayDsfExecutor(fViewer.getTable().getDisplay());
+ fDataGenerators = generators;
+ fSumGenerator = sumGenerator;
+
+ // Schedule a task to refresh the viewer periodically.
+ fRefreshFuture = fDisplayExecutor.scheduleAtFixedRate(new Runnable() {
+ @Override
+ public void run() {
+ queryItemCount();
+ }
+ }, UPDATE_INTERVAL, UPDATE_INTERVAL, TimeUnit.MILLISECONDS);
+ }
+
+ @Override
public void dispose() {
- // Cancel the periodic task of refreshing the view.
- fRefreshFuture.cancel(false);
+ // Cancel the periodic task of refreshing the view.
+ fRefreshFuture.cancel(false);
- // Cancel any outstanding data requests.
- for (ValueCountingRequestMonitor rm : fItemDataRequestMonitors) {
- rm.cancel();
- }
- fItemDataRequestMonitors.clear();
- }
+ // Cancel any outstanding data requests.
+ for (ValueCountingRequestMonitor rm : fItemDataRequestMonitors) {
+ rm.cancel();
+ }
+ fItemDataRequestMonitors.clear();
+ }
- @Override
+ @Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- // Set the initial count to the viewer after the input is set.
- queryItemCount();
- }
+ // Set the initial count to the viewer after the input is set.
+ queryItemCount();
+ }
- @Override
+ @Override
public void updateElement(final int index) {
- // Calculate the visible index range.
- final int topIdx = fViewer.getTable().getTopIndex();
- final int botIdx = topIdx + getVisibleItemCount(topIdx);
-
- // Request the item for the given index.
- queryValue(index);
-
- // Invoke a cancel task with a delay. The delay allows multiple cancel
- // calls to be combined together improving performance of the viewer.
- fCancelCallsPending++;
- fDisplayExecutor.execute(
- new Runnable() { @Override
+ // Calculate the visible index range.
+ final int topIdx = fViewer.getTable().getTopIndex();
+ final int botIdx = topIdx + getVisibleItemCount(topIdx);
+
+ // Request the item for the given index.
+ queryValue(index);
+
+ // Invoke a cancel task with a delay. The delay allows multiple cancel
+ // calls to be combined together improving performance of the viewer.
+ fCancelCallsPending++;
+ fDisplayExecutor.execute(new Runnable() {
+ @Override
public void run() {
- cancelStaleRequests(topIdx, botIdx);
- }});
- }
-
- /**
- * Calculates the number of visible items based on the top item index and
- * table bounds.
- * @param top Index of top item.
- * @return calculated number of items in viewer
- */
- private int getVisibleItemCount(int top) {
- Table table = fViewer.getTable();
- int itemCount = table.getItemCount();
- return Math.min(
- (table.getBounds().height / table.getItemHeight()) + 2,
- itemCount - top);
- }
-
- /**
- * Retrieve the up to date count.
- */
- private void queryItemCount() {
- // Note:The count is retrieved from the sum generator only, the sum
- // generator is responsible for calculating the count based on
- // individual data providers' counts.
- fIndexesToCancel.clear();
- fSumGenerator.getCount(
- new DataRequestMonitor<Integer>(fDisplayExecutor, null) {
- @Override
- protected void handleSuccess() {
- setCountToViewer(getData());
- }
- @Override
- protected void handleRejectedExecutionException() {
- // Shutting down, ignore.
- }
- });
- }
-
- /**
- * Set the givne count to the viewer. This will cause the viewer will
- * refresh all items' data as well.
- * @param count New count to set to viewer.
- */
- private void setCountToViewer(int count) {
- if (!fViewer.getTable().isDisposed()) {
- fViewer.setItemCount(count);
- fViewer.getTable().clearAll();
- }
- }
-
- /**
- * Retrieves value of an element at given index. When complete the value
- * is written to the viewer.
- * @param index Index of value to retrieve.
- */
- private void queryValue(final int index) {
- // Values retrieved asynchronously from providers are stored in local
- // arrays.
- final int[] values = new int[fDataGenerators.length];
- final int[] sum = new int[1];
-
- // Counting request monitor is invoked when the required number of
- // value requests is completed.
- final ValueCountingRequestMonitor crm =
- new ValueCountingRequestMonitor(index)
- {
- @Override
- protected void handleCompleted() {
- fItemDataRequestMonitors.remove(this);
-
- // Check if the request completed successfully, otherwise
- // ignore it.
- if (isSuccess()) {
- StringBuilder result = new StringBuilder();
- int calcSum = 0;
- for (int value : values) {
- if (result.length() != 0) result.append(" + ");
- result.append(value);
- calcSum += value;
- }
- result.append(" = ");
- result.append(sum[0]);
- if (calcSum != sum[0]) {
- result.append(" !INCORRECT! ");
- }
- setValueToViewer(fIndex, result.toString());
- }
- };
- };
-
- // Request data from each data generator.
- for (int i = 0; i < fDataGenerators.length; i++) {
- final int finalI = i;
- fDataGenerators[i].getValue(
- index,
- // Use the display executor to construct the request monitor,
- // this will cause the handleCompleted() method to be
- // automatically called on the display thread.
- new DataRequestMonitor<Integer>(
- ImmediateExecutor.getInstance(), crm)
- {
- @Override
- protected void handleSuccess() {
- values[finalI] = getData();
- crm.done();
- }
- });
- }
-
- // Separately request data from the sum data generator.
- fSumGenerator.getValue(
- index,
- new DataRequestMonitor<Integer>(
- ImmediateExecutor.getInstance(), crm)
- {
- @Override
- protected void handleSuccess() {
- sum[0] = getData();
- crm.done();
- }
- });
-
- crm.setDoneCount(fDataGenerators.length + 1);
- fItemDataRequestMonitors.add(crm);
- }
-
- /**
- * Write the view value to the viewer.
- * <p>Note: This method must be called in the display thread. </p>
- * @param index Index of value to set.
- * @param value New value.
- */
- private void setValueToViewer(int index, String value) {
- if (!fViewer.getTable().isDisposed()) {
- fViewer.replace(value, index);
- }
- }
-
- /**
- * Dedicated class for data item requests. This class holds the index
- * argument so it can be examined when canceling stale requests.
- */
- private class ValueCountingRequestMonitor extends CountingRequestMonitor {
- /** Index is used when canceling stale requests. */
- int fIndex;
-
- ValueCountingRequestMonitor(int index) {
- super(fDisplayExecutor, null);
- fIndex = index;
- }
-
- @Override
- protected void handleRejectedExecutionException() {
- // Shutting down, ignore.
- }
- }
-
- /**
- * Cancels any outstanding value requests for items which are no longer
- * visible in the viewer.
- *
- * @param topIdx Index of top visible item in viewer.
- * @param botIdx Index of bottom visible item in viewer.
- */
- private void cancelStaleRequests(int topIdx, int botIdx) {
- // Decrement the count of outstanding cancel calls.
- fCancelCallsPending--;
-
- // Must check again, in case disposed while re-dispatching.
- if (fDataGenerators == null || fViewer.getTable().isDisposed()) return;
-
- // Go through the outstanding requests and cancel any that
- // are not visible anymore.
- for (Iterator<ValueCountingRequestMonitor> itr =
- fItemDataRequestMonitors.iterator(); itr.hasNext();)
- {
- ValueCountingRequestMonitor item = itr.next();
- if (item.fIndex < topIdx || item.fIndex > botIdx) {
- // Set the item to canceled status, so that the data provider
- // will ignore it.
- item.cancel();
-
- // Add the item index to list of indexes that were canceled,
- // which will be sent to the table widget.
- fIndexesToCancel.add(item.fIndex);
-
- // Remove the item from the outstanding cancel requests.
- itr.remove();
- }
- }
- if (!fIndexesToCancel.isEmpty() && fCancelCallsPending == 0) {
- Set<Integer> canceledIdxs = fIndexesToCancel;
- fIndexesToCancel = new HashSet<Integer>();
-
- // Clear the indexes of the canceled request, so that the
- // viewer knows to request them again when needed.
- // Note: clearing using TableViewer.clear(int) seems very
- // inefficient, it's better to use Table.clear(int[]).
- int[] canceledIdxsArray = new int[canceledIdxs.size()];
- int i = 0;
- for (Integer index : canceledIdxs) {
- canceledIdxsArray[i++] = index;
- }
- fViewer.getTable().clear(canceledIdxsArray);
- }
- }
-
- /**
- * The entry point for the example.
- * @param args Program arguments.
- */
- public static void main(String[] args) {
- // Create the shell to hold the viewer.
- Display display = new Display();
- Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setLayout(new GridLayout());
- GridData data = new GridData(GridData.FILL_BOTH);
- shell.setLayoutData(data);
- Font font = new Font(display, "Courier", 10, SWT.NORMAL);
-
- // Create the table viewer.
- TableViewer tableViewer =
- new TableViewer(shell, SWT.BORDER | SWT.VIRTUAL);
- tableViewer.getControl().setLayoutData(data);
-
- // Single executor (and single thread) is used by all data generators,
- // including the sum generator.
- DsfExecutor executor = new DefaultDsfExecutor("Example executor");
-
- // Create the data generator.
- final IDataGenerator[] generators = new IDataGenerator[5];
- for (int i = 0; i < generators.length; i++) {
- generators[i] = new DataGeneratorWithExecutor(executor);
- }
- final IDataGenerator sumGenerator =
- new AsyncSumDataGenerator(executor, generators);
-
- // Create the content provider which will populate the viewer.
- AsyncSumDataViewer contentProvider =
- new AsyncSumDataViewer(tableViewer, generators, sumGenerator);
- tableViewer.setContentProvider(contentProvider);
- tableViewer.setInput(new Object());
-
- // Open the shell and service the display dispatch loop until user
- // closes the shell.
- shell.open();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
-
- // The IDataGenerator.shutdown() method is asynchronous, this requires
- // using a query again in order to wait for its completion.
- Query<Object> shutdownQuery = new Query<Object>() {
- @Override
- protected void execute(DataRequestMonitor<Object> rm) {
- CountingRequestMonitor crm = new CountingRequestMonitor(
- ImmediateExecutor.getInstance(), rm);
- for (int i = 0; i < generators.length; i++) {
- generators[i].shutdown(crm);
- }
- sumGenerator.shutdown(crm);
- crm.setDoneCount(generators.length);
- }
- };
-
- executor.execute(shutdownQuery);
- try {
- shutdownQuery.get();
- } catch (Exception e) {}
-
- // Shut down the display.
- font.dispose();
- display.dispose();
- }
+ cancelStaleRequests(topIdx, botIdx);
+ }
+ });
+ }
+
+ /**
+ * Calculates the number of visible items based on the top item index and
+ * table bounds.
+ * @param top Index of top item.
+ * @return calculated number of items in viewer
+ */
+ private int getVisibleItemCount(int top) {
+ Table table = fViewer.getTable();
+ int itemCount = table.getItemCount();
+ return Math.min((table.getBounds().height / table.getItemHeight()) + 2, itemCount - top);
+ }
+
+ /**
+ * Retrieve the up to date count.
+ */
+ private void queryItemCount() {
+ // Note:The count is retrieved from the sum generator only, the sum
+ // generator is responsible for calculating the count based on
+ // individual data providers' counts.
+ fIndexesToCancel.clear();
+ fSumGenerator.getCount(new DataRequestMonitor<Integer>(fDisplayExecutor, null) {
+ @Override
+ protected void handleSuccess() {
+ setCountToViewer(getData());
+ }
+
+ @Override
+ protected void handleRejectedExecutionException() {
+ // Shutting down, ignore.
+ }
+ });
+ }
+
+ /**
+ * Set the givne count to the viewer. This will cause the viewer will
+ * refresh all items' data as well.
+ * @param count New count to set to viewer.
+ */
+ private void setCountToViewer(int count) {
+ if (!fViewer.getTable().isDisposed()) {
+ fViewer.setItemCount(count);
+ fViewer.getTable().clearAll();
+ }
+ }
+
+ /**
+ * Retrieves value of an element at given index. When complete the value
+ * is written to the viewer.
+ * @param index Index of value to retrieve.
+ */
+ private void queryValue(final int index) {
+ // Values retrieved asynchronously from providers are stored in local
+ // arrays.
+ final int[] values = new int[fDataGenerators.length];
+ final int[] sum = new int[1];
+
+ // Counting request monitor is invoked when the required number of
+ // value requests is completed.
+ final ValueCountingRequestMonitor crm = new ValueCountingRequestMonitor(index) {
+ @Override
+ protected void handleCompleted() {
+ fItemDataRequestMonitors.remove(this);
+
+ // Check if the request completed successfully, otherwise
+ // ignore it.
+ if (isSuccess()) {
+ StringBuilder result = new StringBuilder();
+ int calcSum = 0;
+ for (int value : values) {
+ if (result.length() != 0)
+ result.append(" + ");
+ result.append(value);
+ calcSum += value;
+ }
+ result.append(" = ");
+ result.append(sum[0]);
+ if (calcSum != sum[0]) {
+ result.append(" !INCORRECT! ");
+ }
+ setValueToViewer(fIndex, result.toString());
+ }
+ };
+ };
+
+ // Request data from each data generator.
+ for (int i = 0; i < fDataGenerators.length; i++) {
+ final int finalI = i;
+ fDataGenerators[i].getValue(index,
+ // Use the display executor to construct the request monitor,
+ // this will cause the handleCompleted() method to be
+ // automatically called on the display thread.
+ new DataRequestMonitor<Integer>(ImmediateExecutor.getInstance(), crm) {
+ @Override
+ protected void handleSuccess() {
+ values[finalI] = getData();
+ crm.done();
+ }
+ });
+ }
+
+ // Separately request data from the sum data generator.
+ fSumGenerator.getValue(index, new DataRequestMonitor<Integer>(ImmediateExecutor.getInstance(), crm) {
+ @Override
+ protected void handleSuccess() {
+ sum[0] = getData();
+ crm.done();
+ }
+ });
+
+ crm.setDoneCount(fDataGenerators.length + 1);
+ fItemDataRequestMonitors.add(crm);
+ }
+
+ /**
+ * Write the view value to the viewer.
+ * <p>Note: This method must be called in the display thread. </p>
+ * @param index Index of value to set.
+ * @param value New value.
+ */
+ private void setValueToViewer(int index, String value) {
+ if (!fViewer.getTable().isDisposed()) {
+ fViewer.replace(value, index);
+ }
+ }
+
+ /**
+ * Dedicated class for data item requests. This class holds the index
+ * argument so it can be examined when canceling stale requests.
+ */
+ private class ValueCountingRequestMonitor extends CountingRequestMonitor {
+ /** Index is used when canceling stale requests. */
+ int fIndex;
+
+ ValueCountingRequestMonitor(int index) {
+ super(fDisplayExecutor, null);
+ fIndex = index;
+ }
+
+ @Override
+ protected void handleRejectedExecutionException() {
+ // Shutting down, ignore.
+ }
+ }
+
+ /**
+ * Cancels any outstanding value requests for items which are no longer
+ * visible in the viewer.
+ *
+ * @param topIdx Index of top visible item in viewer.
+ * @param botIdx Index of bottom visible item in viewer.
+ */
+ private void cancelStaleRequests(int topIdx, int botIdx) {
+ // Decrement the count of outstanding cancel calls.
+ fCancelCallsPending--;
+
+ // Must check again, in case disposed while re-dispatching.
+ if (fDataGenerators == null || fViewer.getTable().isDisposed())
+ return;
+
+ // Go through the outstanding requests and cancel any that
+ // are not visible anymore.
+ for (Iterator<ValueCountingRequestMonitor> itr = fItemDataRequestMonitors.iterator(); itr.hasNext();) {
+ ValueCountingRequestMonitor item = itr.next();
+ if (item.fIndex < topIdx || item.fIndex > botIdx) {
+ // Set the item to canceled status, so that the data provider
+ // will ignore it.
+ item.cancel();
+
+ // Add the item index to list of indexes that were canceled,
+ // which will be sent to the table widget.
+ fIndexesToCancel.add(item.fIndex);
+
+ // Remove the item from the outstanding cancel requests.
+ itr.remove();
+ }
+ }
+ if (!fIndexesToCancel.isEmpty() && fCancelCallsPending == 0) {
+ Set<Integer> canceledIdxs = fIndexesToCancel;
+ fIndexesToCancel = new HashSet<Integer>();
+
+ // Clear the indexes of the canceled request, so that the
+ // viewer knows to request them again when needed.
+ // Note: clearing using TableViewer.clear(int) seems very
+ // inefficient, it's better to use Table.clear(int[]).
+ int[] canceledIdxsArray = new int[canceledIdxs.size()];
+ int i = 0;
+ for (Integer index : canceledIdxs) {
+ canceledIdxsArray[i++] = index;
+ }
+ fViewer.getTable().clear(canceledIdxsArray);
+ }
+ }
+
+ /**
+ * The entry point for the example.
+ * @param args Program arguments.
+ */
+ public static void main(String[] args) {
+ // Create the shell to hold the viewer.
+ Display display = new Display();
+ Shell shell = new Shell(display, SWT.SHELL_TRIM);
+ shell.setLayout(new GridLayout());
+ GridData data = new GridData(GridData.FILL_BOTH);
+ shell.setLayoutData(data);
+ Font font = new Font(display, "Courier", 10, SWT.NORMAL);
+
+ // Create the table viewer.
+ TableViewer tableViewer = new TableViewer(shell, SWT.BORDER | SWT.VIRTUAL);
+ tableViewer.getControl().setLayoutData(data);
+
+ // Single executor (and single thread) is used by all data generators,
+ // including the sum generator.
+ DsfExecutor executor = new DefaultDsfExecutor("Example executor");
+
+ // Create the data generator.
+ final IDataGenerator[] generators = new IDataGenerator[5];
+ for (int i = 0; i < generators.length; i++) {
+ generators[i] = new DataGeneratorWithExecutor(executor);
+ }
+ final IDataGenerator sumGenerator = new AsyncSumDataGenerator(executor, generators);
+
+ // Create the content provider which will populate the viewer.
+ AsyncSumDataViewer contentProvider = new AsyncSumDataViewer(tableViewer, generators, sumGenerator);
+ tableViewer.setContentProvider(contentProvider);
+ tableViewer.setInput(new Object());
+
+ // Open the shell and service the display dispatch loop until user
+ // closes the shell.
+ shell.open();
+ while (!shell.isDisposed()) {
+ if (!display.readAndDispatch())
+ display.sleep();
+ }
+
+ // The IDataGenerator.shutdown() method is asynchronous, this requires
+ // using a query again in order to wait for its completion.
+ Query<Object> shutdownQuery = new Query<Object>() {
+ @Override
+ protected void execute(DataRequestMonitor<Object> rm) {
+ CountingRequestMonitor crm = new CountingRequestMonitor(ImmediateExecutor.getInstance(), rm);
+ for (int i = 0; i < generators.length; i++) {
+ generators[i].shutdown(crm);
+ }
+ sumGenerator.shutdown(crm);
+ crm.setDoneCount(generators.length);
+ }
+ };
+
+ executor.execute(shutdownQuery);
+ try {
+ shutdownQuery.get();
+ } catch (Exception e) {
+ }
+
+ // Shut down the display.
+ font.dispose();
+ display.dispose();
+ }
}
diff --git a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/DataGeneratorCacheManager.java b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/DataGeneratorCacheManager.java
index ad6f167be2..39012a2674 100644
--- a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/DataGeneratorCacheManager.java
+++ b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/DataGeneratorCacheManager.java
@@ -14,6 +14,7 @@
//#ifdef exercises
package org.eclipse.cdt.examples.dsf.dataviewer;
//#else
+
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
//#endif
@@ -36,135 +37,135 @@ import org.eclipse.core.runtime.Status;
*/
public class DataGeneratorCacheManager implements IDataGenerator.Listener {
- /** Cache class for retrieving the data generator's count. */
- private class CountCache extends RequestCache<Integer> {
-
- public CountCache() {
- super(fExecutor);
- }
-
- @Override
- protected void retrieve(DataRequestMonitor<Integer> rm) {
- fDataGenerator.getCount(rm);
- }
-
- /**
- * Reset the cache when the count is changed.
- */
- public void countChanged() {
- // Make sure that if clients are currently waiting for a count,
- // they are notified of the update (their request monitors will be
- // completed with an error). They shoudl then re-request data
- // from provider again.
- setAndReset(null, new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Count changed"));
- }
- }
-
- /** Cache class for retrieving the data generator's values. */
- private class ValueCache extends RequestCache<Integer> {
- private int fIndex;
-
- public ValueCache(int index) {
- super(fExecutor);
- fIndex = index;
- }
-
- @Override
- protected void retrieve(org.eclipse.cdt.dsf.concurrent.DataRequestMonitor<Integer> rm) {
- fDataGenerator.getValue(fIndex, rm);
- };
-
- /**
- * @see CountCache#countChanged()
- */
- public void valueChanged() {
- setAndReset(null, new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Value changed"));
- }
- }
-
- /**
- * Executor used to synchronize data access in this cache manager.
- * It has to be the same executor that is used by the data generators in
- * order to guarantee data consistency.
- */
- private ImmediateInDsfExecutor fExecutor;
-
- /**
- * Data generator that this cache manager is a wrapper for.
- */
- private IDataGenerator fDataGenerator;
-
- /** Cache for data generator's count */
- private CountCache fCountCache;
-
- /**
- * Map of caches for retrieving values. Each value index has a separate
- * cache value object.
- */
- private Map<Integer, ValueCache> fValueCaches = new HashMap<Integer, ValueCache>();
-
- public DataGeneratorCacheManager(ImmediateInDsfExecutor executor, IDataGenerator dataGenerator) {
- fExecutor = executor;
- fDataGenerator = dataGenerator;
- fDataGenerator.addListener(this);
- }
-
- public void dispose() {
- fDataGenerator.removeListener(this);
- }
-
- /**
- * Returns the data generator that this cache manager wraps.
- */
- public IDataGenerator getDataGenerator() {
- return fDataGenerator;
- }
-
- /**
- * Returns the cache for data generator count.
- */
- public ICache<Integer> getCount() {
- if (fCountCache == null) {
- fCountCache = new CountCache();
- }
- return fCountCache;
- }
-
- /**
- * Returns the cache for a value at given index.
- *
- * @param index Index of value to return.
- * @return Cache object for given value.
- */
- public ICache<Integer> getValue(int index) {
- ValueCache value = fValueCaches.get(index);
- if (value == null) {
- value = new ValueCache(index);
- fValueCaches.put(index, value);
- }
-
- return value;
- }
-
- @Override
+ /** Cache class for retrieving the data generator's count. */
+ private class CountCache extends RequestCache<Integer> {
+
+ public CountCache() {
+ super(fExecutor);
+ }
+
+ @Override
+ protected void retrieve(DataRequestMonitor<Integer> rm) {
+ fDataGenerator.getCount(rm);
+ }
+
+ /**
+ * Reset the cache when the count is changed.
+ */
+ public void countChanged() {
+ // Make sure that if clients are currently waiting for a count,
+ // they are notified of the update (their request monitors will be
+ // completed with an error). They shoudl then re-request data
+ // from provider again.
+ setAndReset(null, new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Count changed"));
+ }
+ }
+
+ /** Cache class for retrieving the data generator's values. */
+ private class ValueCache extends RequestCache<Integer> {
+ private int fIndex;
+
+ public ValueCache(int index) {
+ super(fExecutor);
+ fIndex = index;
+ }
+
+ @Override
+ protected void retrieve(org.eclipse.cdt.dsf.concurrent.DataRequestMonitor<Integer> rm) {
+ fDataGenerator.getValue(fIndex, rm);
+ };
+
+ /**
+ * @see CountCache#countChanged()
+ */
+ public void valueChanged() {
+ setAndReset(null, new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Value changed"));
+ }
+ }
+
+ /**
+ * Executor used to synchronize data access in this cache manager.
+ * It has to be the same executor that is used by the data generators in
+ * order to guarantee data consistency.
+ */
+ private ImmediateInDsfExecutor fExecutor;
+
+ /**
+ * Data generator that this cache manager is a wrapper for.
+ */
+ private IDataGenerator fDataGenerator;
+
+ /** Cache for data generator's count */
+ private CountCache fCountCache;
+
+ /**
+ * Map of caches for retrieving values. Each value index has a separate
+ * cache value object.
+ */
+ private Map<Integer, ValueCache> fValueCaches = new HashMap<Integer, ValueCache>();
+
+ public DataGeneratorCacheManager(ImmediateInDsfExecutor executor, IDataGenerator dataGenerator) {
+ fExecutor = executor;
+ fDataGenerator = dataGenerator;
+ fDataGenerator.addListener(this);
+ }
+
+ public void dispose() {
+ fDataGenerator.removeListener(this);
+ }
+
+ /**
+ * Returns the data generator that this cache manager wraps.
+ */
+ public IDataGenerator getDataGenerator() {
+ return fDataGenerator;
+ }
+
+ /**
+ * Returns the cache for data generator count.
+ */
+ public ICache<Integer> getCount() {
+ if (fCountCache == null) {
+ fCountCache = new CountCache();
+ }
+ return fCountCache;
+ }
+
+ /**
+ * Returns the cache for a value at given index.
+ *
+ * @param index Index of value to return.
+ * @return Cache object for given value.
+ */
+ public ICache<Integer> getValue(int index) {
+ ValueCache value = fValueCaches.get(index);
+ if (value == null) {
+ value = new ValueCache(index);
+ fValueCaches.put(index, value);
+ }
+
+ return value;
+ }
+
+ @Override
public void countChanged() {
- // Reset the count cache and all the value caches.
- if (fCountCache != null) {
- fCountCache.countChanged();
- }
- for (ValueCache value : fValueCaches.values()) {
- value.valueChanged();
- }
- }
-
- @Override
+ // Reset the count cache and all the value caches.
+ if (fCountCache != null) {
+ fCountCache.countChanged();
+ }
+ for (ValueCache value : fValueCaches.values()) {
+ value.valueChanged();
+ }
+ }
+
+ @Override
public void valuesChanged(Set<Integer> indexes) {
- // Reset selected value caches.
- for (Integer index : indexes) {
- ValueCache value = fValueCaches.get(index);
- if (value != null) {
- value.valueChanged();
- }
- }
- }
+ // Reset selected value caches.
+ for (Integer index : indexes) {
+ ValueCache value = fValueCaches.get(index);
+ if (value != null) {
+ value.valueChanged();
+ }
+ }
+ }
}
diff --git a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/DataGeneratorWithExecutor.java b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/DataGeneratorWithExecutor.java
index 9b00cea4f9..52260b4330 100644
--- a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/DataGeneratorWithExecutor.java
+++ b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/DataGeneratorWithExecutor.java
@@ -14,6 +14,7 @@
//#ifdef exercises
package org.eclipse.cdt.examples.dsf.dataviewer;
//#else
+
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
//#endif
@@ -60,409 +61,399 @@ import org.eclipse.cdt.examples.dsf.DsfExamplesPlugin;
//#endif
public class DataGeneratorWithExecutor implements IDataGenerator {
- // Request objects are used to serialize the interface calls into objects
- // which can then be pushed into a queue.
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotationindicating allowed concurrency access
- // Hint: Request and its subclasses have all their fields declared as final.
- //#else
-//# @Immutable
- //#endif
- abstract class Request {
- final RequestMonitor fRequestMonitor;
-
- Request(RequestMonitor rm) {
- fRequestMonitor = rm;
-
- rm.addCancelListener(new RequestMonitor.ICanceledListener() {
- @Override
+ // Request objects are used to serialize the interface calls into objects
+ // which can then be pushed into a queue.
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotationindicating allowed concurrency access
+ // Hint: Request and its subclasses have all their fields declared as final.
+ //#else
+ //# @Immutable
+ //#endif
+ abstract class Request {
+ final RequestMonitor fRequestMonitor;
+
+ Request(RequestMonitor rm) {
+ fRequestMonitor = rm;
+
+ rm.addCancelListener(new RequestMonitor.ICanceledListener() {
+ @Override
public void requestCanceled(RequestMonitor rm) {
- fExecutor.execute(new DsfRunnable() {
- @Override
+ fExecutor.execute(new DsfRunnable() {
+ @Override
public void run() {
- fQueue.remove(Request.this);
- }
- });
- }
- });
- }
- }
-
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#else
-//# @Immutable
- //#endif
- class CountRequest extends Request {
- CountRequest(DataRequestMonitor<Integer> rm) {
- super(rm);
- }
- }
-
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#else
-//# @Immutable
- //#endif
- class ItemRequest extends Request {
- final int fIndex;
- ItemRequest(int index, DataRequestMonitor<Integer> rm) {
- super(rm);
- fIndex = index;
- }
- }
-
- // The executor used to access all internal data of the generator.
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- // Hint: If a member does not have an annotation, the programmer can assume
- // that the concurrency rule that applies to the class also applies to this
- // member.
- //#endif
- private DsfExecutor fExecutor;
-
- // Main request queue of the data generator. The getValue(), getCount(),
- // and shutdown() methods write into the queue, while the serviceQueue()
- // method reads from it.
- // The executor used to access all internal data of the generator.
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#else
-//# @ConfinedToDsfExecutor("fExecutor")
- //#endif
- private List<Request> fQueue = new LinkedList<Request>();
-
- // List of listeners is not synchronized, it also has to be accessed
- // using the executor.
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#else
-//# @ConfinedToDsfExecutor("fExecutor")
- //#endif
- private List<Listener> fListeners = new LinkedList<Listener>();
-
- // Current number of elements in this generator.
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#else
-//# @ConfinedToDsfExecutor("fExecutor")
- //#endif
- private int fCount = MIN_COUNT;
-
- // Counter used to determine when to reset the element count.
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#else
-//# @ConfinedToDsfExecutor("fExecutor")
- //#endif
- private int fCountResetTrigger = 0;
-
- // Elements which were modified since the last reset.
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#else
-//# @ConfinedToDsfExecutor("fExecutor")
- //#endif
- private Map<Integer, Integer> fChangedValues =
- new HashMap<Integer, Integer>();
-
- public DataGeneratorWithExecutor() {
- // Create the executor
- this(new DefaultDsfExecutor("Supplier Executor"));
- }
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#endif
- public DataGeneratorWithExecutor(DsfExecutor executor) {
- // Create the executor
- fExecutor = executor;
- final Random rand = new Random();
- // Schedule a runnable to make the random changes.
- fExecutor.scheduleAtFixedRate(
- new DsfRunnable() {
- @Override
- public void run() {
- randomChanges();
- }
- },
- rand.nextInt(RANDOM_CHANGE_INTERVAL),
- RANDOM_CHANGE_INTERVAL, //Add a 10% variance to the interval.
- TimeUnit.MILLISECONDS);
- }
-
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#endif
- @Override
+ fQueue.remove(Request.this);
+ }
+ });
+ }
+ });
+ }
+ }
+
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#else
+ //# @Immutable
+ //#endif
+ class CountRequest extends Request {
+ CountRequest(DataRequestMonitor<Integer> rm) {
+ super(rm);
+ }
+ }
+
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#else
+ //# @Immutable
+ //#endif
+ class ItemRequest extends Request {
+ final int fIndex;
+
+ ItemRequest(int index, DataRequestMonitor<Integer> rm) {
+ super(rm);
+ fIndex = index;
+ }
+ }
+
+ // The executor used to access all internal data of the generator.
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ // Hint: If a member does not have an annotation, the programmer can assume
+ // that the concurrency rule that applies to the class also applies to this
+ // member.
+ //#endif
+ private DsfExecutor fExecutor;
+
+ // Main request queue of the data generator. The getValue(), getCount(),
+ // and shutdown() methods write into the queue, while the serviceQueue()
+ // method reads from it.
+ // The executor used to access all internal data of the generator.
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#else
+ //# @ConfinedToDsfExecutor("fExecutor")
+ //#endif
+ private List<Request> fQueue = new LinkedList<Request>();
+
+ // List of listeners is not synchronized, it also has to be accessed
+ // using the executor.
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#else
+ //# @ConfinedToDsfExecutor("fExecutor")
+ //#endif
+ private List<Listener> fListeners = new LinkedList<Listener>();
+
+ // Current number of elements in this generator.
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#else
+ //# @ConfinedToDsfExecutor("fExecutor")
+ //#endif
+ private int fCount = MIN_COUNT;
+
+ // Counter used to determine when to reset the element count.
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#else
+ //# @ConfinedToDsfExecutor("fExecutor")
+ //#endif
+ private int fCountResetTrigger = 0;
+
+ // Elements which were modified since the last reset.
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#else
+ //# @ConfinedToDsfExecutor("fExecutor")
+ //#endif
+ private Map<Integer, Integer> fChangedValues = new HashMap<Integer, Integer>();
+
+ public DataGeneratorWithExecutor() {
+ // Create the executor
+ this(new DefaultDsfExecutor("Supplier Executor"));
+ }
+
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#endif
+ public DataGeneratorWithExecutor(DsfExecutor executor) {
+ // Create the executor
+ fExecutor = executor;
+ final Random rand = new Random();
+ // Schedule a runnable to make the random changes.
+ fExecutor.scheduleAtFixedRate(new DsfRunnable() {
+ @Override
+ public void run() {
+ randomChanges();
+ }
+ }, rand.nextInt(RANDOM_CHANGE_INTERVAL), RANDOM_CHANGE_INTERVAL, //Add a 10% variance to the interval.
+ TimeUnit.MILLISECONDS);
+ }
+
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#endif
+ @Override
public void shutdown(final RequestMonitor rm) {
- try {
- fExecutor.execute( new DsfRunnable() {
- @Override
+ try {
+ fExecutor.execute(new DsfRunnable() {
+ @Override
public void run() {
- // Empty the queue of requests and fail them.
- for (Request request : fQueue) {
- request.fRequestMonitor.setStatus(new Status(
- IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID,
- "Supplier shut down"));
- request.fRequestMonitor.done();
- }
- fQueue.clear();
-
- // Kill executor.
- fExecutor.shutdown();
- rm.done();
- }
- });
- } catch (RejectedExecutionException e) {
- rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID,
- "Supplier shut down"));
- rm.done();
- }
- }
-
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#endif
- @Override
+ // Empty the queue of requests and fail them.
+ for (Request request : fQueue) {
+ request.fRequestMonitor.setStatus(
+ new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Supplier shut down"));
+ request.fRequestMonitor.done();
+ }
+ fQueue.clear();
+
+ // Kill executor.
+ fExecutor.shutdown();
+ rm.done();
+ }
+ });
+ } catch (RejectedExecutionException e) {
+ rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Supplier shut down"));
+ rm.done();
+ }
+ }
+
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#endif
+ @Override
public void getCount(final DataRequestMonitor<Integer> rm) {
- try {
- fExecutor.execute( new DsfRunnable() {
- @Override
+ try {
+ fExecutor.execute(new DsfRunnable() {
+ @Override
public void run() {
- fQueue.add(new CountRequest(rm));
- serviceQueue();
- }
- });
- } catch (RejectedExecutionException e) {
- rm.setStatus(new Status(
- IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID,
- "Supplier shut down"));
- rm.done();
- }
- }
-
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#endif
- @Override
+ fQueue.add(new CountRequest(rm));
+ serviceQueue();
+ }
+ });
+ } catch (RejectedExecutionException e) {
+ rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Supplier shut down"));
+ rm.done();
+ }
+ }
+
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#endif
+ @Override
public void getValue(final int index, final DataRequestMonitor<Integer> rm) {
- try {
- fExecutor.execute( new DsfRunnable() {
- @Override
+ try {
+ fExecutor.execute(new DsfRunnable() {
+ @Override
public void run() {
- fQueue.add(new ItemRequest(index, rm));
- serviceQueue();
- }
- });
- } catch (RejectedExecutionException e) {
- rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID,
- "Supplier shut down"));
- rm.done();
- }
- }
-
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#endif
- @Override
+ fQueue.add(new ItemRequest(index, rm));
+ serviceQueue();
+ }
+ });
+ } catch (RejectedExecutionException e) {
+ rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Supplier shut down"));
+ rm.done();
+ }
+ }
+
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#endif
+ @Override
public void addListener(final Listener listener) {
- try {
- fExecutor.execute( new DsfRunnable() {
- @Override
+ try {
+ fExecutor.execute(new DsfRunnable() {
+ @Override
public void run() {
- fListeners.add(listener);
- }
- });
- } catch (RejectedExecutionException e) {}
- }
-
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#endif
- @Override
+ fListeners.add(listener);
+ }
+ });
+ } catch (RejectedExecutionException e) {
+ }
+ }
+
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#endif
+ @Override
public void removeListener(final Listener listener) {
- try {
- fExecutor.execute( new DsfRunnable() {
- @Override
+ try {
+ fExecutor.execute(new DsfRunnable() {
+ @Override
public void run() {
- fListeners.remove(listener);
- }
- });
- } catch (RejectedExecutionException e) {}
- }
-
- // Main processing function of this generator.
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#else
-//# @ConfinedToDsfExecutor("fExecutor")
- //#endif
- private void serviceQueue() {
- fExecutor.schedule(
- new DsfRunnable() {
- @Override
- public void run() {
- doServiceQueue();
- }
- },
- PROCESSING_DELAY, TimeUnit.MILLISECONDS);
- }
-
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#else
-//# @ConfinedToDsfExecutor("fExecutor")
- //#endif
- private void doServiceQueue() {
- //#ifdef exercises
- // TODO Exercise 3 - Add logic to discard cancelled requests from queue.
- // Hint: Since serviceQueue() is called using the executor, and the
- // fQueue list can only be modified when running in the executor
- // thread. This method can safely iterate and modify fQueue without
- // risk of race conditions or concurrent modification exceptions.
- //#else
-//# for (Iterator<Request> requestItr = fQueue.iterator(); requestItr.hasNext();) {
-//# Request request = requestItr.next();
-//# if (request.fRequestMonitor.isCanceled()) {
-//# request.fRequestMonitor.setStatus(
-//# new Status(IStatus.CANCEL, DsfExamplesPlugin.PLUGIN_ID, "Request canceled"));
-//# request.fRequestMonitor.done();
-//# requestItr.remove();
-//# }
-//# }
- //#endif
-
- while (fQueue.size() != 0) {
- // If there are requests to service, remove one from the queue and
- // schedule a runnable to process the request after a processing
- // delay.
- Request request = fQueue.remove(0);
- if (request instanceof CountRequest) {
- processCountRequest((CountRequest)request);
- } else if (request instanceof ItemRequest) {
- processItemRequest((ItemRequest)request);
- }
- }
- }
-
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#else
-//# @ConfinedToDsfExecutor("fExecutor")
- //#endif
- private void processCountRequest(CountRequest request) {
- @SuppressWarnings("unchecked") // Suppress warning about lost type info.
- DataRequestMonitor<Integer> rm =
- (DataRequestMonitor<Integer>)request.fRequestMonitor;
-
- rm.setData(fCount);
- rm.done();
- }
-
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#else
-//# @ConfinedToDsfExecutor("fExecutor")
- //#endif
- private void processItemRequest(ItemRequest request) {
- @SuppressWarnings("unchecked") // Suppress warning about lost type info.
- DataRequestMonitor<Integer> rm =
- (DataRequestMonitor<Integer>)request.fRequestMonitor;
-
- if (fChangedValues.containsKey(request.fIndex)) {
- rm.setData(fChangedValues.get(request.fIndex));
- } else {
- rm.setData(request.fIndex);
- }
- rm.done();
- }
-
- /**
- * This method simulates changes in the supplier's data set.
- */
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#else
-//# @ConfinedToDsfExecutor("fExecutor")
- //#endif
- private void randomChanges() {
- // Once every number of changes, reset the count, the rest of the
- // times just change certain values.
- if (++fCountResetTrigger % RANDOM_COUNT_CHANGE_INTERVALS == 0){
- randomCountReset();
- } else {
- randomDataChange();
- }
- }
-
- /**
- * Calculates new size for provider's data set.
- */
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#else
-//# @ConfinedToDsfExecutor("fExecutor")
- //#endif
- private void randomCountReset() {
- // Calculate the new count.
- Random random = new java.util.Random();
- fCount = MIN_COUNT + random.nextInt(MAX_COUNT - MIN_COUNT);
-
- // Reset the changed values.
- fChangedValues.clear();
-
- // Notify listeners
- for (Listener listener : fListeners) {
- listener.countChanged();
- }
- }
-
- /**
- * Invalidates a random range of indexes.
- */
- //#ifdef exercises
- // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
- // indicating allowed thread access to this class/method/member
- //#else
-//# @ConfinedToDsfExecutor("fExecutor")
- //#endif
- private void randomDataChange() {
- // Calculate the indexes to change.
- Random random = new java.util.Random();
- Map<Integer, Integer> changed = new HashMap<Integer, Integer>();
- for (int i = 0; i < fCount * RANDOM_CHANGE_SET_PERCENTAGE / 100; i++) {
- int randomIndex = random.nextInt(fCount);
- int randomValue = random.nextInt(fCount);
- changed.put(randomIndex, randomValue);
- }
-
- // Add the indexes to an overall set of changed indexes.
- fChangedValues.putAll(changed);
-
- // Notify listeners
- for (Object listener : fListeners) {
- ((Listener)listener).valuesChanged(changed.keySet());
- }
- }
+ fListeners.remove(listener);
+ }
+ });
+ } catch (RejectedExecutionException e) {
+ }
+ }
+
+ // Main processing function of this generator.
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#else
+ //# @ConfinedToDsfExecutor("fExecutor")
+ //#endif
+ private void serviceQueue() {
+ fExecutor.schedule(new DsfRunnable() {
+ @Override
+ public void run() {
+ doServiceQueue();
+ }
+ }, PROCESSING_DELAY, TimeUnit.MILLISECONDS);
+ }
+
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#else
+ //# @ConfinedToDsfExecutor("fExecutor")
+ //#endif
+ private void doServiceQueue() {
+ //#ifdef exercises
+ // TODO Exercise 3 - Add logic to discard cancelled requests from queue.
+ // Hint: Since serviceQueue() is called using the executor, and the
+ // fQueue list can only be modified when running in the executor
+ // thread. This method can safely iterate and modify fQueue without
+ // risk of race conditions or concurrent modification exceptions.
+ //#else
+ //# for (Iterator<Request> requestItr = fQueue.iterator(); requestItr.hasNext();) {
+ //# Request request = requestItr.next();
+ //# if (request.fRequestMonitor.isCanceled()) {
+ //# request.fRequestMonitor.setStatus(
+ //# new Status(IStatus.CANCEL, DsfExamplesPlugin.PLUGIN_ID, "Request canceled"));
+ //# request.fRequestMonitor.done();
+ //# requestItr.remove();
+ //# }
+ //# }
+ //#endif
+
+ while (fQueue.size() != 0) {
+ // If there are requests to service, remove one from the queue and
+ // schedule a runnable to process the request after a processing
+ // delay.
+ Request request = fQueue.remove(0);
+ if (request instanceof CountRequest) {
+ processCountRequest((CountRequest) request);
+ } else if (request instanceof ItemRequest) {
+ processItemRequest((ItemRequest) request);
+ }
+ }
+ }
+
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#else
+ //# @ConfinedToDsfExecutor("fExecutor")
+ //#endif
+ private void processCountRequest(CountRequest request) {
+ @SuppressWarnings("unchecked") // Suppress warning about lost type info.
+ DataRequestMonitor<Integer> rm = (DataRequestMonitor<Integer>) request.fRequestMonitor;
+
+ rm.setData(fCount);
+ rm.done();
+ }
+
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#else
+ //# @ConfinedToDsfExecutor("fExecutor")
+ //#endif
+ private void processItemRequest(ItemRequest request) {
+ @SuppressWarnings("unchecked") // Suppress warning about lost type info.
+ DataRequestMonitor<Integer> rm = (DataRequestMonitor<Integer>) request.fRequestMonitor;
+
+ if (fChangedValues.containsKey(request.fIndex)) {
+ rm.setData(fChangedValues.get(request.fIndex));
+ } else {
+ rm.setData(request.fIndex);
+ }
+ rm.done();
+ }
+
+ /**
+ * This method simulates changes in the supplier's data set.
+ */
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#else
+ //# @ConfinedToDsfExecutor("fExecutor")
+ //#endif
+ private void randomChanges() {
+ // Once every number of changes, reset the count, the rest of the
+ // times just change certain values.
+ if (++fCountResetTrigger % RANDOM_COUNT_CHANGE_INTERVALS == 0) {
+ randomCountReset();
+ } else {
+ randomDataChange();
+ }
+ }
+
+ /**
+ * Calculates new size for provider's data set.
+ */
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#else
+ //# @ConfinedToDsfExecutor("fExecutor")
+ //#endif
+ private void randomCountReset() {
+ // Calculate the new count.
+ Random random = new java.util.Random();
+ fCount = MIN_COUNT + random.nextInt(MAX_COUNT - MIN_COUNT);
+
+ // Reset the changed values.
+ fChangedValues.clear();
+
+ // Notify listeners
+ for (Listener listener : fListeners) {
+ listener.countChanged();
+ }
+ }
+
+ /**
+ * Invalidates a random range of indexes.
+ */
+ //#ifdef exercises
+ // TODO Exercise 4 - Add an annotation (ThreadSafe/ConfinedToDsfExecutor)
+ // indicating allowed thread access to this class/method/member
+ //#else
+ //# @ConfinedToDsfExecutor("fExecutor")
+ //#endif
+ private void randomDataChange() {
+ // Calculate the indexes to change.
+ Random random = new java.util.Random();
+ Map<Integer, Integer> changed = new HashMap<Integer, Integer>();
+ for (int i = 0; i < fCount * RANDOM_CHANGE_SET_PERCENTAGE / 100; i++) {
+ int randomIndex = random.nextInt(fCount);
+ int randomValue = random.nextInt(fCount);
+ changed.put(randomIndex, randomValue);
+ }
+
+ // Add the indexes to an overall set of changed indexes.
+ fChangedValues.putAll(changed);
+
+ // Notify listeners
+ for (Object listener : fListeners) {
+ ((Listener) listener).valuesChanged(changed.keySet());
+ }
+ }
}
-
diff --git a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/DataGeneratorWithThread.java b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/DataGeneratorWithThread.java
index 6eae7503ef..b5e3fb40f7 100644
--- a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/DataGeneratorWithThread.java
+++ b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/DataGeneratorWithThread.java
@@ -14,6 +14,7 @@
//#ifdef exercises
package org.eclipse.cdt.examples.dsf.dataviewer;
//#else
+
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
//#endif
@@ -44,221 +45,208 @@ import org.eclipse.cdt.examples.dsf.DsfExamplesPlugin;
* synchronization.
* </p>
*/
-public class DataGeneratorWithThread extends Thread
- implements IDataGenerator
-{
-
- // Request objects are used to serialize the interface calls into objects
- // which can then be pushed into a queue.
- abstract class Request {
- final RequestMonitor fRequestMonitor;
-
- Request(RequestMonitor rm) {
- fRequestMonitor = rm;
- }
- }
-
- class CountRequest extends Request {
- CountRequest(DataRequestMonitor<Integer> rm) {
- super(rm);
- }
- }
-
- class ItemRequest extends Request {
- final int fIndex;
- ItemRequest(int index, DataRequestMonitor<Integer> rm) {
- super(rm);
- fIndex = index;
- }
- }
-
- class ShutdownRequest extends Request {
- ShutdownRequest(RequestMonitor rm) {
- super(rm);
- }
- }
-
- // Main request queue of the data generator. The getValue(), getCount(),
- // and shutdown() methods write into the queue, while the run() method
- // reads from it.
- private final BlockingQueue<Request> fQueue =
- new LinkedBlockingQueue<Request>();
-
- // ListenerList class provides thread safety.
- private ListenerList<Listener> fListeners = new ListenerList<>();
-
- // Current number of elements in this generator.
- private int fCount = MIN_COUNT;
-
- // Counter used to determine when to reset the element count.
- private int fCountResetTrigger = 0;
-
- // Elements which were modified since the last reset.
- private Map<Integer, Integer> fChangedValues =
- Collections.synchronizedMap(new HashMap<Integer, Integer>());
-
- // Used to determine when to make changes in data.
- private long fLastChangeTime = System.currentTimeMillis();
-
- // Flag indicating when the generator has been shut down.
- private AtomicBoolean fShutdown = new AtomicBoolean(false);
-
- public DataGeneratorWithThread() {
- // Immediately kick off the request processing thread.
- start();
- }
-
- @Override
+public class DataGeneratorWithThread extends Thread implements IDataGenerator {
+
+ // Request objects are used to serialize the interface calls into objects
+ // which can then be pushed into a queue.
+ abstract class Request {
+ final RequestMonitor fRequestMonitor;
+
+ Request(RequestMonitor rm) {
+ fRequestMonitor = rm;
+ }
+ }
+
+ class CountRequest extends Request {
+ CountRequest(DataRequestMonitor<Integer> rm) {
+ super(rm);
+ }
+ }
+
+ class ItemRequest extends Request {
+ final int fIndex;
+
+ ItemRequest(int index, DataRequestMonitor<Integer> rm) {
+ super(rm);
+ fIndex = index;
+ }
+ }
+
+ class ShutdownRequest extends Request {
+ ShutdownRequest(RequestMonitor rm) {
+ super(rm);
+ }
+ }
+
+ // Main request queue of the data generator. The getValue(), getCount(),
+ // and shutdown() methods write into the queue, while the run() method
+ // reads from it.
+ private final BlockingQueue<Request> fQueue = new LinkedBlockingQueue<Request>();
+
+ // ListenerList class provides thread safety.
+ private ListenerList<Listener> fListeners = new ListenerList<>();
+
+ // Current number of elements in this generator.
+ private int fCount = MIN_COUNT;
+
+ // Counter used to determine when to reset the element count.
+ private int fCountResetTrigger = 0;
+
+ // Elements which were modified since the last reset.
+ private Map<Integer, Integer> fChangedValues = Collections.synchronizedMap(new HashMap<Integer, Integer>());
+
+ // Used to determine when to make changes in data.
+ private long fLastChangeTime = System.currentTimeMillis();
+
+ // Flag indicating when the generator has been shut down.
+ private AtomicBoolean fShutdown = new AtomicBoolean(false);
+
+ public DataGeneratorWithThread() {
+ // Immediately kick off the request processing thread.
+ start();
+ }
+
+ @Override
public void shutdown(RequestMonitor rm) {
- // Mark the generator as shut down. After the fShutdown flag is set,
- // all new requests should be shut down.
- if (!fShutdown.getAndSet(true)) {
- fQueue.add(new ShutdownRequest(rm));
- } else {
- //
- rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID,
- "Supplier shut down"));
- rm.done();
- }
- }
-
- @Override
+ // Mark the generator as shut down. After the fShutdown flag is set,
+ // all new requests should be shut down.
+ if (!fShutdown.getAndSet(true)) {
+ fQueue.add(new ShutdownRequest(rm));
+ } else {
+ //
+ rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Supplier shut down"));
+ rm.done();
+ }
+ }
+
+ @Override
public void getCount(DataRequestMonitor<Integer> rm) {
- if (!fShutdown.get()) {
- fQueue.add(new CountRequest(rm));
- } else {
- rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID,
- "Supplier shut down"));
- rm.done();
- }
- }
-
- @Override
+ if (!fShutdown.get()) {
+ fQueue.add(new CountRequest(rm));
+ } else {
+ rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Supplier shut down"));
+ rm.done();
+ }
+ }
+
+ @Override
public void getValue(int index, DataRequestMonitor<Integer> rm) {
- if (!fShutdown.get()) {
- fQueue.add(new ItemRequest(index, rm));
- } else {
- rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID,
- "Supplier shut down"));
- rm.done();
- }
- }
-
- @Override
+ if (!fShutdown.get()) {
+ fQueue.add(new ItemRequest(index, rm));
+ } else {
+ rm.setStatus(new Status(IStatus.ERROR, DsfExamplesPlugin.PLUGIN_ID, "Supplier shut down"));
+ rm.done();
+ }
+ }
+
+ @Override
public void addListener(Listener listener) {
- fListeners.add(listener);
- }
+ fListeners.add(listener);
+ }
- @Override
+ @Override
public void removeListener(Listener listener) {
- fListeners.remove(listener);
- }
-
- @Override
- public void run() {
- try {
- while(true) {
- // Get the next request from the queue. The time-out
- // ensures that that the random changes get processed.
- final Request request = fQueue.poll(100, TimeUnit.MILLISECONDS);
-
- // If a request was dequeued, process it.
- if (request != null) {
- // Simulate a processing delay.
-
- if (request instanceof CountRequest) {
- processCountRequest((CountRequest)request);
- } else if (request instanceof ItemRequest) {
- processItemRequest((ItemRequest)request);
- } else if (request instanceof ShutdownRequest) {
- // If shutting down, just break out of the while(true)
- // loop and thread will exit.
- request.fRequestMonitor.done();
- break;
- }
- } else {
- Thread.sleep(PROCESSING_DELAY);
- }
-
- // Simulate data changes.
- randomChanges();
- }
- }
- catch (InterruptedException x) {}
- }
-
- private void processCountRequest(CountRequest request) {
- @SuppressWarnings("unchecked") // Suppress warning about lost type info.
- DataRequestMonitor<Integer> rm =
- (DataRequestMonitor<Integer>)request.fRequestMonitor;
-
- rm.setData(fCount);
- rm.done();
- }
-
- private void processItemRequest(ItemRequest request) {
- @SuppressWarnings("unchecked") // Suppress warning about lost type info.
- DataRequestMonitor<Integer> rm =
- (DataRequestMonitor<Integer>)request.fRequestMonitor;
-
- if (fChangedValues.containsKey(request.fIndex)) {
- rm.setData(fChangedValues.get(request.fIndex));
- } else {
- rm.setData(request.fIndex);
- }
- rm.done();
- }
-
-
- private void randomChanges() {
- // Check if enough time is elapsed.
- if (System.currentTimeMillis() >
- fLastChangeTime + RANDOM_CHANGE_INTERVAL)
- {
- fLastChangeTime = System.currentTimeMillis();
-
- // Once every number of changes, reset the count, the rest of the
- // times just change certain values.
- if (++fCountResetTrigger % RANDOM_COUNT_CHANGE_INTERVALS == 0) {
- randomCountReset();
- } else {
- randomDataChange();
- }
- }
- }
-
- private void randomCountReset() {
- // Calculate the new count.
- Random random = new java.util.Random();
- fCount = MIN_COUNT + random.nextInt(MAX_COUNT - MIN_COUNT);
-
- // Reset the changed values.
- fChangedValues.clear();
-
- // Notify listeners
- for (Object listener : fListeners.getListeners()) {
- ((Listener)listener).countChanged();
- }
- }
-
- private void randomDataChange() {
- // Calculate the indexes to change.
- Random random = new java.util.Random();
- Map<Integer, Integer> changed = new HashMap<Integer, Integer>();
- for (int i = 0; i < fCount * RANDOM_CHANGE_SET_PERCENTAGE / 100; i++) {
- int randomIndex = random.nextInt(fCount);
- int randomValue = random.nextInt(fCount);
- changed.put(randomIndex, randomValue);
- }
-
- // Add the indexes to an overall set of changed indexes.
- fChangedValues.putAll(changed);
-
- // Notify listeners
- for (Object listener : fListeners.getListeners()) {
- ((Listener)listener).valuesChanged(changed.keySet());
- }
- }
+ fListeners.remove(listener);
+ }
+
+ @Override
+ public void run() {
+ try {
+ while (true) {
+ // Get the next request from the queue. The time-out
+ // ensures that that the random changes get processed.
+ final Request request = fQueue.poll(100, TimeUnit.MILLISECONDS);
+
+ // If a request was dequeued, process it.
+ if (request != null) {
+ // Simulate a processing delay.
+
+ if (request instanceof CountRequest) {
+ processCountRequest((CountRequest) request);
+ } else if (request instanceof ItemRequest) {
+ processItemRequest((ItemRequest) request);
+ } else if (request instanceof ShutdownRequest) {
+ // If shutting down, just break out of the while(true)
+ // loop and thread will exit.
+ request.fRequestMonitor.done();
+ break;
+ }
+ } else {
+ Thread.sleep(PROCESSING_DELAY);
+ }
+
+ // Simulate data changes.
+ randomChanges();
+ }
+ } catch (InterruptedException x) {
+ }
+ }
+
+ private void processCountRequest(CountRequest request) {
+ @SuppressWarnings("unchecked") // Suppress warning about lost type info.
+ DataRequestMonitor<Integer> rm = (DataRequestMonitor<Integer>) request.fRequestMonitor;
+
+ rm.setData(fCount);
+ rm.done();
+ }
+
+ private void processItemRequest(ItemRequest request) {
+ @SuppressWarnings("unchecked") // Suppress warning about lost type info.
+ DataRequestMonitor<Integer> rm = (DataRequestMonitor<Integer>) request.fRequestMonitor;
+
+ if (fChangedValues.containsKey(request.fIndex)) {
+ rm.setData(fChangedValues.get(request.fIndex));
+ } else {
+ rm.setData(request.fIndex);
+ }
+ rm.done();
+ }
+
+ private void randomChanges() {
+ // Check if enough time is elapsed.
+ if (System.currentTimeMillis() > fLastChangeTime + RANDOM_CHANGE_INTERVAL) {
+ fLastChangeTime = System.currentTimeMillis();
+
+ // Once every number of changes, reset the count, the rest of the
+ // times just change certain values.
+ if (++fCountResetTrigger % RANDOM_COUNT_CHANGE_INTERVALS == 0) {
+ randomCountReset();
+ } else {
+ randomDataChange();
+ }
+ }
+ }
+
+ private void randomCountReset() {
+ // Calculate the new count.
+ Random random = new java.util.Random();
+ fCount = MIN_COUNT + random.nextInt(MAX_COUNT - MIN_COUNT);
+
+ // Reset the changed values.
+ fChangedValues.clear();
+
+ // Notify listeners
+ for (Object listener : fListeners.getListeners()) {
+ ((Listener) listener).countChanged();
+ }
+ }
+
+ private void randomDataChange() {
+ // Calculate the indexes to change.
+ Random random = new java.util.Random();
+ Map<Integer, Integer> changed = new HashMap<Integer, Integer>();
+ for (int i = 0; i < fCount * RANDOM_CHANGE_SET_PERCENTAGE / 100; i++) {
+ int randomIndex = random.nextInt(fCount);
+ int randomValue = random.nextInt(fCount);
+ changed.put(randomIndex, randomValue);
+ }
+
+ // Add the indexes to an overall set of changed indexes.
+ fChangedValues.putAll(changed);
+
+ // Notify listeners
+ for (Object listener : fListeners.getListeners()) {
+ ((Listener) listener).valuesChanged(changed.keySet());
+ }
+ }
}
-
-
diff --git a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/IDataGenerator.java b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/IDataGenerator.java
index 5d0e835da3..9408673056 100644
--- a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/IDataGenerator.java
+++ b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/IDataGenerator.java
@@ -14,6 +14,7 @@
//#ifdef exercises
package org.eclipse.cdt.examples.dsf.dataviewer;
//#else
+
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
//#endif
@@ -40,34 +41,36 @@ import org.eclipse.cdt.dsf.concurrent.RequestMonitor;
//#endif
public interface IDataGenerator {
- // Constants which control the data generator behavior.
- // Changing the count range can stress the scalability of the system, while
- // changing of the process delay and random change interval can stress
- // its performance.
- final static int MIN_COUNT = 50;
- final static int MAX_COUNT = 100;
- final static int PROCESSING_DELAY = 500;
- final static int RANDOM_CHANGE_INTERVAL = 4000;
- final static int RANDOM_COUNT_CHANGE_INTERVALS = 5;
- final static int RANDOM_CHANGE_SET_PERCENTAGE = 10;
+ // Constants which control the data generator behavior.
+ // Changing the count range can stress the scalability of the system, while
+ // changing of the process delay and random change interval can stress
+ // its performance.
+ final static int MIN_COUNT = 50;
+ final static int MAX_COUNT = 100;
+ final static int PROCESSING_DELAY = 500;
+ final static int RANDOM_CHANGE_INTERVAL = 4000;
+ final static int RANDOM_COUNT_CHANGE_INTERVALS = 5;
+ final static int RANDOM_CHANGE_SET_PERCENTAGE = 10;
+
+ // Listener interface that the view needs to implement to react
+ // to the changes in data.
+ public interface Listener {
+ void countChanged();
+
+ void valuesChanged(Set<Integer> indexes);
+ }
+ // Data access methods.
+ void getCount(DataRequestMonitor<Integer> rm);
- // Listener interface that the view needs to implement to react
- // to the changes in data.
- public interface Listener {
- void countChanged();
- void valuesChanged(Set<Integer> indexes);
- }
+ void getValue(int index, DataRequestMonitor<Integer> rm);
- // Data access methods.
- void getCount(DataRequestMonitor<Integer> rm);
- void getValue(int index, DataRequestMonitor<Integer> rm);
+ // Method used to shutdown the data generator including any threads that
+ // it may use.
+ void shutdown(RequestMonitor rm);
- // Method used to shutdown the data generator including any threads that
- // it may use.
- void shutdown(RequestMonitor rm);
+ // Methods for registering change listeners.
+ void addListener(Listener listener);
- // Methods for registering change listeners.
- void addListener(Listener listener);
- void removeListener(Listener listener);
+ void removeListener(Listener listener);
}
diff --git a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/SyncDataViewer.java b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/SyncDataViewer.java
index b5ffa38727..0e671d5f62 100644
--- a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/SyncDataViewer.java
+++ b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/dataviewer/SyncDataViewer.java
@@ -14,6 +14,7 @@
//#ifdef exercises
package org.eclipse.cdt.examples.dsf.dataviewer;
//#else
+
//#package org.eclipse.cdt.examples.dsf.dataviewer.answers;
//#endif
@@ -46,183 +47,174 @@ import org.eclipse.swt.widgets.Shell;
* {@link Query} object.
* </p>
*/
-public class SyncDataViewer
- implements IStructuredContentProvider, IDataGenerator.Listener
-{
- // The viewer and generator that this content provider using.
- final private TableViewer fViewer;
- final private IDataGenerator fDataGenerator;
-
- public SyncDataViewer(TableViewer viewer, IDataGenerator generator) {
- fViewer = viewer;
- fDataGenerator = generator;
- fDataGenerator.addListener(this);
- }
-
- @Override
+public class SyncDataViewer implements IStructuredContentProvider, IDataGenerator.Listener {
+ // The viewer and generator that this content provider using.
+ final private TableViewer fViewer;
+ final private IDataGenerator fDataGenerator;
+
+ public SyncDataViewer(TableViewer viewer, IDataGenerator generator) {
+ fViewer = viewer;
+ fDataGenerator = generator;
+ fDataGenerator.addListener(this);
+ }
+
+ @Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- // Not used
- }
-
+ // Not used
+ }
- @Override
+ @Override
public Object[] getElements(Object inputElement) {
- // Create the query object for reading data count.
- Query<Integer> countQuery = new Query<Integer>() {
- @Override
- protected void execute(DataRequestMonitor<Integer> rm) {
- fDataGenerator.getCount(rm);
- }
- };
-
- // Submit the query to be executed. A query implements a runnable
- // interface and it has to be executed in order to do its work.
- ImmediateExecutor.getInstance().execute(countQuery);
- int count = 0;
-
- // Block until the query completes, which will happen when the request
- // monitor of the execute() method is marked done.
- try {
- count = countQuery.get();
- } catch (Exception e) {
- // InterruptedException and ExecutionException can be thrown here.
- // ExecutionException containing a CoreException will be thrown
- // if an error status is set to the Query's request monitor.
- return new Object[0];
- }
-
- final int finalCount = count;
- Query<List<Integer>> valueQuery = new Query<List<Integer>>() {
- @Override
- protected void execute(final DataRequestMonitor<List<Integer>> rm) {
- final Integer[] retVal = new Integer[finalCount];
- final CountingRequestMonitor crm = new CountingRequestMonitor(
- ImmediateExecutor.getInstance(), rm)
- {
- @Override
- protected void handleSuccess() {
- rm.setData(Arrays.asList(retVal));
- rm.done();
- };
- };
- for (int i = 0; i < finalCount; i++) {
- final int finalI = i;
- fDataGenerator.getValue(
- i,
- new DataRequestMonitor<Integer>(
- ImmediateExecutor.getInstance(), crm)
- {
- @Override
- protected void handleSuccess() {
- retVal[finalI] = getData();
- crm.done();
- }
- });
- }
- crm.setDoneCount(finalCount);
- }
- };
- ImmediateExecutor.getInstance().execute(valueQuery);
- try {
- return valueQuery.get().toArray(new Integer[0]);
- } catch (Exception e) {
- }
- return new Object[0];
- }
-
- @Override
+ // Create the query object for reading data count.
+ Query<Integer> countQuery = new Query<Integer>() {
+ @Override
+ protected void execute(DataRequestMonitor<Integer> rm) {
+ fDataGenerator.getCount(rm);
+ }
+ };
+
+ // Submit the query to be executed. A query implements a runnable
+ // interface and it has to be executed in order to do its work.
+ ImmediateExecutor.getInstance().execute(countQuery);
+ int count = 0;
+
+ // Block until the query completes, which will happen when the request
+ // monitor of the execute() method is marked done.
+ try {
+ count = countQuery.get();
+ } catch (Exception e) {
+ // InterruptedException and ExecutionException can be thrown here.
+ // ExecutionException containing a CoreException will be thrown
+ // if an error status is set to the Query's request monitor.
+ return new Object[0];
+ }
+
+ final int finalCount = count;
+ Query<List<Integer>> valueQuery = new Query<List<Integer>>() {
+ @Override
+ protected void execute(final DataRequestMonitor<List<Integer>> rm) {
+ final Integer[] retVal = new Integer[finalCount];
+ final CountingRequestMonitor crm = new CountingRequestMonitor(ImmediateExecutor.getInstance(), rm) {
+ @Override
+ protected void handleSuccess() {
+ rm.setData(Arrays.asList(retVal));
+ rm.done();
+ };
+ };
+ for (int i = 0; i < finalCount; i++) {
+ final int finalI = i;
+ fDataGenerator.getValue(i, new DataRequestMonitor<Integer>(ImmediateExecutor.getInstance(), crm) {
+ @Override
+ protected void handleSuccess() {
+ retVal[finalI] = getData();
+ crm.done();
+ }
+ });
+ }
+ crm.setDoneCount(finalCount);
+ }
+ };
+ ImmediateExecutor.getInstance().execute(valueQuery);
+ try {
+ return valueQuery.get().toArray(new Integer[0]);
+ } catch (Exception e) {
+ }
+ return new Object[0];
+ }
+
+ @Override
public void dispose() {
- fDataGenerator.removeListener(this);
- }
+ fDataGenerator.removeListener(this);
+ }
- @Override
+ @Override
public void countChanged() {
- // For any event from the generator, refresh the whole viewer.
- refreshViewer();
- }
+ // For any event from the generator, refresh the whole viewer.
+ refreshViewer();
+ }
- @Override
+ @Override
public void valuesChanged(Set<Integer> indexes) {
- // For any event from the generator, refresh the whole viewer.
- refreshViewer();
- }
-
- private void refreshViewer() {
- //#ifdef exercises
- // TODO Exercise 5 - Add a call to getElements() to force a deadlock.
- //#else
-//# getElements(null);
- //#endif
-
- // This method may be called on any thread, switch to the display
- // thread before calling the viewer.
- Display display = fViewer.getControl().getDisplay();
- display.asyncExec( new Runnable() {
- @Override
+ // For any event from the generator, refresh the whole viewer.
+ refreshViewer();
+ }
+
+ private void refreshViewer() {
+ //#ifdef exercises
+ // TODO Exercise 5 - Add a call to getElements() to force a deadlock.
+ //#else
+ //# getElements(null);
+ //#endif
+
+ // This method may be called on any thread, switch to the display
+ // thread before calling the viewer.
+ Display display = fViewer.getControl().getDisplay();
+ display.asyncExec(new Runnable() {
+ @Override
public void run() {
- if (!fViewer.getControl().isDisposed()) {
- fViewer.refresh();
- }
- }
- });
- }
-
- /**
- * The entry point for the example.
- * @param args Program arguments.
- */
- public static void main(String[] args) {
- // Create the shell to hold the viewer.
- Display display = new Display();
- Shell shell = new Shell(display, SWT.SHELL_TRIM);
- shell.setLayout(new GridLayout());
- GridData data = new GridData(GridData.FILL_BOTH);
- shell.setLayoutData(data);
- Font font = new Font(display, "Courier", 10, SWT.NORMAL);
-
- // Create the table viewer.
- TableViewer tableViewer = new TableViewer(shell, SWT.BORDER);
- tableViewer.getControl().setLayoutData(data);
-
- // Create the data generator.
- //#ifdef exercises
- // TODO Exercise 5 - Use the DataGeneratorWithExecutor() instead.
- final IDataGenerator generator = new DataGeneratorWithThread();
- //#else
-//# final IDataGenerator generator = new DataGeneratorWithExecutor();
- //#endif
-
- // Create the content provider which will populate the viewer.
- SyncDataViewer contentProvider =
- new SyncDataViewer(tableViewer, generator);
- tableViewer.setContentProvider(contentProvider);
- tableViewer.setInput(new Object());
-
- // Open the shell and service the display dispatch loop until user
- // closes the shell.
- shell.open();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
-
- // The IDataGenerator.shutdown() method is asynchronous, this requires
- // using a query again in order to wait for its completion.
- Query<Object> shutdownQuery = new Query<Object>() {
- @Override
- protected void execute(DataRequestMonitor<Object> rm) {
- generator.shutdown(rm);
- }
- };
- ImmediateExecutor.getInstance().execute(shutdownQuery);
- try {
- shutdownQuery.get();
- } catch (Exception e) {}
-
- // Shut down the display.
- font.dispose();
- display.dispose();
- }
+ if (!fViewer.getControl().isDisposed()) {
+ fViewer.refresh();
+ }
+ }
+ });
+ }
+
+ /**
+ * The entry point for the example.
+ * @param args Program arguments.
+ */
+ public static void main(String[] args) {
+ // Create the shell to hold the viewer.
+ Display display = new Display();
+ Shell shell = new Shell(display, SWT.SHELL_TRIM);
+ shell.setLayout(new GridLayout());
+ GridData data = new GridData(GridData.FILL_BOTH);
+ shell.setLayoutData(data);
+ Font font = new Font(display, "Courier", 10, SWT.NORMAL);
+
+ // Create the table viewer.
+ TableViewer tableViewer = new TableViewer(shell, SWT.BORDER);
+ tableViewer.getControl().setLayoutData(data);
+
+ // Create the data generator.
+ //#ifdef exercises
+ // TODO Exercise 5 - Use the DataGeneratorWithExecutor() instead.
+ final IDataGenerator generator = new DataGeneratorWithThread();
+ //#else
+ //# final IDataGenerator generator = new DataGeneratorWithExecutor();
+ //#endif
+
+ // Create the content provider which will populate the viewer.
+ SyncDataViewer contentProvider = new SyncDataViewer(tableViewer, generator);
+ tableViewer.setContentProvider(contentProvider);
+ tableViewer.setInput(new Object());
+
+ // Open the shell and service the display dispatch loop until user
+ // closes the shell.
+ shell.open();
+ while (!shell.isDisposed()) {
+ if (!display.readAndDispatch())
+ display.sleep();
+ }
+
+ // The IDataGenerator.shutdown() method is asynchronous, this requires
+ // using a query again in order to wait for its completion.
+ Query<Object> shutdownQuery = new Query<Object>() {
+ @Override
+ protected void execute(DataRequestMonitor<Object> rm) {
+ generator.shutdown(rm);
+ }
+ };
+ ImmediateExecutor.getInstance().execute(shutdownQuery);
+ try {
+ shutdownQuery.get();
+ } catch (Exception e) {
+ }
+
+ // Shut down the display.
+ font.dispose();
+ display.dispose();
+ }
}
diff --git a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/requestmonitor/Async2Plus2.java b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/requestmonitor/Async2Plus2.java
index c6463c3de4..dabe34c930 100644
--- a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/requestmonitor/Async2Plus2.java
+++ b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/requestmonitor/Async2Plus2.java
@@ -14,6 +14,7 @@
//#ifdef exercises
package org.eclipse.cdt.examples.dsf.requestmonitor;
//#else
+
//#package org.eclipse.cdt.examples.dsf.requestmonitor.answers;
//#endif
@@ -28,20 +29,19 @@ import org.eclipse.cdt.dsf.concurrent.ImmediateExecutor;
*/
public class Async2Plus2 {
- public static void main(String[] args) {
- Executor executor = ImmediateExecutor.getInstance();
- DataRequestMonitor<Integer> rm =
- new DataRequestMonitor<Integer>(executor, null) {
- @Override
- protected void handleCompleted() {
- System.out.println("2 + 2 = " + getData());
- }
- };
- asyncAdd(2, 2, rm);
- }
+ public static void main(String[] args) {
+ Executor executor = ImmediateExecutor.getInstance();
+ DataRequestMonitor<Integer> rm = new DataRequestMonitor<Integer>(executor, null) {
+ @Override
+ protected void handleCompleted() {
+ System.out.println("2 + 2 = " + getData());
+ }
+ };
+ asyncAdd(2, 2, rm);
+ }
- static void asyncAdd(int value1, int value2, DataRequestMonitor<Integer> rm) {
- rm.setData(value1 + value2);
- rm.done();
- }
+ static void asyncAdd(int value1, int value2, DataRequestMonitor<Integer> rm) {
+ rm.setData(value1 + value2);
+ rm.done();
+ }
}
diff --git a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/requestmonitor/AsyncHelloWorld.java b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/requestmonitor/AsyncHelloWorld.java
index bf4594dfb6..512e501339 100644
--- a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/requestmonitor/AsyncHelloWorld.java
+++ b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/requestmonitor/AsyncHelloWorld.java
@@ -14,6 +14,7 @@
//#ifdef exercises
package org.eclipse.cdt.examples.dsf.requestmonitor;
//#else
+
//#package org.eclipse.cdt.examples.dsf.requestmonitor.answers;
//#endif
@@ -32,34 +33,34 @@ import org.eclipse.cdt.dsf.concurrent.RequestMonitor;
*/
public class AsyncHelloWorld {
- public static void main(String[] args) {
- Executor executor = ImmediateExecutor.getInstance();
- RequestMonitor rm = new RequestMonitor(executor, null);
- asyncHelloWorld(rm);
- }
+ public static void main(String[] args) {
+ Executor executor = ImmediateExecutor.getInstance();
+ RequestMonitor rm = new RequestMonitor(executor, null);
+ asyncHelloWorld(rm);
+ }
- static void asyncHelloWorld(RequestMonitor rm) {
- System.out.println("Hello world");
- //#ifdef exercises
- // TODO Exercise 1: - Call the second async. "Hello world 2" method.
- // Hint: Calling an asynchronous method requires passing to it a
- // request monitor. A new request monitor can be constructed with
- // a parent RequestMonitor as an argument argument. The parent gets
- // completed automatically when the lower level request monitor is
- // completed.
- rm.done();
- //#else
-//# RequestMonitor rm2 = new RequestMonitor(ImmediateExecutor.getInstance(), rm);
-//# asyncHelloWorld2(rm2);
- //#endif
- }
+ static void asyncHelloWorld(RequestMonitor rm) {
+ System.out.println("Hello world");
+ //#ifdef exercises
+ // TODO Exercise 1: - Call the second async. "Hello world 2" method.
+ // Hint: Calling an asynchronous method requires passing to it a
+ // request monitor. A new request monitor can be constructed with
+ // a parent RequestMonitor as an argument argument. The parent gets
+ // completed automatically when the lower level request monitor is
+ // completed.
+ rm.done();
+ //#else
+ //# RequestMonitor rm2 = new RequestMonitor(ImmediateExecutor.getInstance(), rm);
+ //# asyncHelloWorld2(rm2);
+ //#endif
+ }
- //#ifdef exercises
- // TODO: Exercise 1 - Add a second async. "Hello world 2" method.
- //#else
-//# static void asyncHelloWorld2(RequestMonitor rm) {
-//# System.out.println("Hello world 2");
-//# rm.done();
-//# }
- //#endif
+ //#ifdef exercises
+ // TODO: Exercise 1 - Add a second async. "Hello world 2" method.
+ //#else
+ //# static void asyncHelloWorld2(RequestMonitor rm) {
+ //# System.out.println("Hello world 2");
+ //# rm.done();
+ //# }
+ //#endif
}
diff --git a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/requestmonitor/AsyncQuicksort.java b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/requestmonitor/AsyncQuicksort.java
index 7e1d33c99c..ecf83a9022 100644
--- a/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/requestmonitor/AsyncQuicksort.java
+++ b/dsf/org.eclipse.cdt.examples.dsf/src_preprocess/org/eclipse/cdt/examples/dsf/requestmonitor/AsyncQuicksort.java
@@ -14,6 +14,7 @@
//#ifdef exercises
package org.eclipse.cdt.examples.dsf.requestmonitor;
//#else
+
//#package org.eclipse.cdt.examples.dsf.requestmonitor.answers;
//#endif
@@ -33,117 +34,113 @@ import org.eclipse.cdt.dsf.concurrent.RequestMonitor;
*/
public class AsyncQuicksort {
- static Executor fgExecutor = ImmediateExecutor.getInstance();
+ static Executor fgExecutor = ImmediateExecutor.getInstance();
- public static void main(String[] args) {
- final int[] array = {5, 7, 8, 3, 2, 1, 9, 5, 4};
+ public static void main(String[] args) {
+ final int[] array = { 5, 7, 8, 3, 2, 1, 9, 5, 4 };
- System.out.println("To sort: " + Arrays.toString(array));
- asyncQuicksort(
- array, 0, array.length - 1,
- new RequestMonitor(fgExecutor, null) {
- @Override
- protected void handleCompleted() {
- System.out.println("Sorted: " + Arrays.toString(array));
- }
- });
- }
+ System.out.println("To sort: " + Arrays.toString(array));
+ asyncQuicksort(array, 0, array.length - 1, new RequestMonitor(fgExecutor, null) {
+ @Override
+ protected void handleCompleted() {
+ System.out.println("Sorted: " + Arrays.toString(array));
+ }
+ });
+ }
- static void asyncQuicksort(final int[] array, final int left,
- final int right, final RequestMonitor rm)
- {
- if (right > left) {
- int pivot = left;
- //#ifdef exercises
- // TODO: Exercise 2 - Convert the call to partition into an
- // asynchronous call to asyncPartition().
- // Hint: The rest of the code below should be executed inside
- // the DataRequestMonitor.handleCompleted() overriding method.
- int newPivot = partition(array, left, right, pivot);
- printArray(array, left, right, newPivot);
+ static void asyncQuicksort(final int[] array, final int left, final int right, final RequestMonitor rm) {
+ if (right > left) {
+ int pivot = left;
+ //#ifdef exercises
+ // TODO: Exercise 2 - Convert the call to partition into an
+ // asynchronous call to asyncPartition().
+ // Hint: The rest of the code below should be executed inside
+ // the DataRequestMonitor.handleCompleted() overriding method.
+ int newPivot = partition(array, left, right, pivot);
+ printArray(array, left, right, newPivot);
- CountingRequestMonitor countingRm = new CountingRequestMonitor(fgExecutor, rm);
- asyncQuicksort(array, left, newPivot - 1, countingRm);
- asyncQuicksort(array, newPivot + 1, right, countingRm);
- countingRm.setDoneCount(2);
- //#else
-//# asyncPartition(
-//# array, left, right, pivot,
-//# new DataRequestMonitor<Integer>(fgExecutor, rm) {
-//# @Override
-//# protected void handleCompleted() {
-//# int newPivot = getData();
-//# printArray(array, left, right, newPivot);
-//#
-//# CountingRequestMonitor countingRm = new CountingRequestMonitor(fgExecutor, rm);
-//# asyncQuicksort(array, left, newPivot - 1, countingRm);
-//# asyncQuicksort(array, newPivot + 1, right, countingRm);
-//# countingRm.setDoneCount(2);
-//# }
-//# });
- //#endif
- } else {
- rm.done();
- }
- }
+ CountingRequestMonitor countingRm = new CountingRequestMonitor(fgExecutor, rm);
+ asyncQuicksort(array, left, newPivot - 1, countingRm);
+ asyncQuicksort(array, newPivot + 1, right, countingRm);
+ countingRm.setDoneCount(2);
+ //#else
+ //# asyncPartition(
+ //# array, left, right, pivot,
+ //# new DataRequestMonitor<Integer>(fgExecutor, rm) {
+ //# @Override
+ //# protected void handleCompleted() {
+ //# int newPivot = getData();
+ //# printArray(array, left, right, newPivot);
+ //#
+ //# CountingRequestMonitor countingRm = new CountingRequestMonitor(fgExecutor, rm);
+ //# asyncQuicksort(array, left, newPivot - 1, countingRm);
+ //# asyncQuicksort(array, newPivot + 1, right, countingRm);
+ //# countingRm.setDoneCount(2);
+ //# }
+ //# });
+ //#endif
+ } else {
+ rm.done();
+ }
+ }
- //#ifdef exercises
- // TODO Exercise 2 - Convert partition to an asynchronous method.
- // Hint: a DataRequestMonitor<Integer> should be used to carry the
- // return value to the caller.
- static int partition(int[] array, int left, int right, int pivot)
- //#else
-//# static void asyncPartition(int[] array, int left, int right, int pivot, DataRequestMonitor<Integer> rm)
- //#endif
- {
- int pivotValue = array[pivot];
- array[pivot] = array[right];
- array[right] = pivotValue;
- int store = left;
- for (int i = left; i < right; i++) {
- if (array[i] <= pivotValue) {
- int tmp = array[store];
- array[store] = array[i];
- array[i] = tmp;
- store++;
- }
- }
- array[right] = array[store];
- array[store] = pivotValue;
+ //#ifdef exercises
+ // TODO Exercise 2 - Convert partition to an asynchronous method.
+ // Hint: a DataRequestMonitor<Integer> should be used to carry the
+ // return value to the caller.
+ static int partition(int[] array, int left, int right, int pivot)
+ //#else
+ //# static void asyncPartition(int[] array, int left, int right, int pivot, DataRequestMonitor<Integer> rm)
+ //#endif
+ {
+ int pivotValue = array[pivot];
+ array[pivot] = array[right];
+ array[right] = pivotValue;
+ int store = left;
+ for (int i = left; i < right; i++) {
+ if (array[i] <= pivotValue) {
+ int tmp = array[store];
+ array[store] = array[i];
+ array[i] = tmp;
+ store++;
+ }
+ }
+ array[right] = array[store];
+ array[store] = pivotValue;
- //#ifdef exercises
- // TODO: Request Monitors Exercise 2 - Return the data to caller using
- // a request monitor.
- return store;
- //#else
-//# // Java 5 automatically converts the int type of the store variable
-//# // to an Integer object.
-//# rm.setData(store);
-//# rm.done();
- //#endif
- }
+ //#ifdef exercises
+ // TODO: Request Monitors Exercise 2 - Return the data to caller using
+ // a request monitor.
+ return store;
+ //#else
+ //# // Java 5 automatically converts the int type of the store variable
+ //# // to an Integer object.
+ //# rm.setData(store);
+ //# rm.done();
+ //#endif
+ }
- static void printArray(int[] array, int left, int right, int pivot) {
- StringBuilder buffer = new StringBuilder();
- for (int i = 0; i < array.length; i++ ) {
- if (i == left) {
- buffer.append('>');
- } else if (i == pivot) {
- buffer.append('-');
- } else {
- buffer.append(' ');
- }
- buffer.append(array[i]);
+ static void printArray(int[] array, int left, int right, int pivot) {
+ StringBuilder buffer = new StringBuilder();
+ for (int i = 0; i < array.length; i++) {
+ if (i == left) {
+ buffer.append('>');
+ } else if (i == pivot) {
+ buffer.append('-');
+ } else {
+ buffer.append(' ');
+ }
+ buffer.append(array[i]);
- if (i == right) {
- buffer.append('<');
- } else if (i == pivot) {
- buffer.append('-');
- } else {
- buffer.append(' ');
- }
- }
+ if (i == right) {
+ buffer.append('<');
+ } else if (i == pivot) {
+ buffer.append('-');
+ } else {
+ buffer.append(' ');
+ }
+ }
- System.out.println(buffer);
- }
+ System.out.println(buffer);
+ }
}
diff --git a/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/FormattedValueTests.java b/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/FormattedValueTests.java
index 032f4fb1ef..de0a07630c 100644
--- a/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/FormattedValueTests.java
+++ b/dsf/org.eclipse.cdt.tests.dsf/src/org/eclipse/cdt/tests/dsf/vm/FormattedValueTests.java
@@ -462,8 +462,7 @@ abstract public class FormattedValueTests extends TestCase
ArrayList<ElementFormatSetting> elementFormats1 = new ArrayList<>(map1.values());
HashMap<String, ElementFormatSetting> expMap1 = new HashMap<>();
makeElementFormatSetting(fViewer, TreePath.EMPTY, format1, depth, 0, expMap1);
- ArrayList<ElementFormatSetting> expectElementFormats1 = new ArrayList<>(
- expMap1.values());
+ ArrayList<ElementFormatSetting> expectElementFormats1 = new ArrayList<>(expMap1.values());
vmListenerLevel = depth;
setFormatAndValidate(preferenceFormat, elementFormats1, expectElementFormats1, true, false, false);
@@ -474,8 +473,7 @@ abstract public class FormattedValueTests extends TestCase
ArrayList<ElementFormatSetting> elementFormats2 = new ArrayList<>(map2.values());
HashMap<String, ElementFormatSetting> expMap2 = new HashMap<>();
makeElementFormatSetting(fViewer, TreePath.EMPTY, format2, depth, 0, expMap2);
- ArrayList<ElementFormatSetting> expectElementFormats2 = new ArrayList<>(
- expMap2.values());
+ ArrayList<ElementFormatSetting> expectElementFormats2 = new ArrayList<>(expMap2.values());
setFormatAndValidate(preferenceFormat, elementFormats2, expectElementFormats2, true, true, false);
// Generate an event which will cause all cache entries to be marked dirty.
@@ -491,8 +489,7 @@ abstract public class FormattedValueTests extends TestCase
ArrayList<ElementFormatSetting> elementFormats3 = new ArrayList<>(map3.values());
HashMap<String, ElementFormatSetting> expMap3 = new HashMap<>();
makeElementFormatSetting(fViewer, TreePath.EMPTY, format3, depth, 0, expMap3);
- ArrayList<ElementFormatSetting> expectElementFormats3 = new ArrayList<>(
- expMap3.values());
+ ArrayList<ElementFormatSetting> expectElementFormats3 = new ArrayList<>(expMap3.values());
setFormatAndValidate(preferenceFormat, elementFormats3, expectElementFormats3, true, true, true);
}
}
diff --git a/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/GoToAddressBarWidget.java b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/GoToAddressBarWidget.java
index df485de6e8..3058f770e7 100644
--- a/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/GoToAddressBarWidget.java
+++ b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/GoToAddressBarWidget.java
@@ -476,8 +476,7 @@ public class GoToAddressBarWidget {
String id = UNKNOWN_CONTEXT_ID;
if (context instanceof IAdaptable) {
IAdaptable adaptable = (IAdaptable) context;
- IRecurringDebugContext recurringDebugContext = adaptable
- .getAdapter(IRecurringDebugContext.class);
+ IRecurringDebugContext recurringDebugContext = adaptable.getAdapter(IRecurringDebugContext.class);
if (recurringDebugContext != null) {
try {
id = recurringDebugContext.getContextID();
diff --git a/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/MemoryBrowser.java b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/MemoryBrowser.java
index 5ddc80b910..46cdcf15de 100644
--- a/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/MemoryBrowser.java
+++ b/memory/org.eclipse.cdt.debug.ui.memory.memorybrowser/src/org/eclipse/cdt/debug/ui/memory/memorybrowser/MemoryBrowser.java
@@ -660,7 +660,6 @@ public class MemoryBrowser extends ViewPart
label += ' ' + renderingType;
-
// Allow the memory block to customize the label. The platform's
// Memory view support this (it was done in the call to
// rendering.getLabel() above)
@@ -1412,8 +1411,7 @@ public class MemoryBrowser extends ViewPart
if (retrieval instanceof IMemoryBlockRetrievalExtension) {
retrievalExtension = (IMemoryBlockRetrievalExtension) retrieval;
} else if (retrieval instanceof IAdaptable) {
- retrievalExtension = ((IAdaptable) retrieval)
- .getAdapter(IMemoryBlockRetrievalExtension.class);
+ retrievalExtension = ((IAdaptable) retrieval).getAdapter(IMemoryBlockRetrievalExtension.class);
}
if (retrievalExtension != null) {
if (retrievalExtension instanceof IMemorySpaceAwareMemoryBlockRetrieval) {
diff --git a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeEnvInfo.java b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeEnvInfo.java
index eb8e1f3992..0565d3d6cc 100644
--- a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeEnvInfo.java
+++ b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeEnvInfo.java
@@ -42,10 +42,8 @@ public final class QMakeEnvInfo {
Collection<IFile> sensitiveFiles) {
this.proFile = proFile;
this.qmakeFilePath = qmakeFilePath;
- this.environment = environment != null ? new HashMap<>(environment)
- : Collections.<String, String>emptyMap();
- this.sensitiveFiles = sensitiveFiles != null ? new HashSet<>(sensitiveFiles)
- : Collections.<IFile>emptySet();
+ this.environment = environment != null ? new HashMap<>(environment) : Collections.<String, String>emptyMap();
+ this.sensitiveFiles = sensitiveFiles != null ? new HashSet<>(sensitiveFiles) : Collections.<IFile>emptySet();
}
/**
diff --git a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeInfo.java b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeInfo.java
index 4d744d5973..ce32f7e70a 100644
--- a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeInfo.java
+++ b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeInfo.java
@@ -61,8 +61,7 @@ public final class QMakeInfo implements IQMakeInfo {
this.qtVersion = QMakeVersion.create(queryMap.get(QMakeParser.KEY_QT_VERSION));
List<String> tmpQtImportPaths = new ArrayList<>(
QMakeParser.singleValue(queryMap, QMakeParser.KEY_QT_INSTALL_IMPORTS));
- List<String> tmpQtQmlPaths = new ArrayList<>(
- QMakeParser.singleValue(queryMap, QMakeParser.KEY_QT_INSTALL_QML));
+ List<String> tmpQtQmlPaths = new ArrayList<>(QMakeParser.singleValue(queryMap, QMakeParser.KEY_QT_INSTALL_QML));
this.qtDocPath = QMakeParser.singleValue(queryMap, QMakeParser.KEY_QT_INSTALL_DOCS);
this.involvedQMakeFiles = QMakeParser.qmake3DecodeValueList(proMap,
diff --git a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/pdom/QtPDOMQObject.java b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/pdom/QtPDOMQObject.java
index 9707501aea..433699c009 100644
--- a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/pdom/QtPDOMQObject.java
+++ b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/pdom/QtPDOMQObject.java
@@ -76,8 +76,7 @@ public class QtPDOMQObject extends AbstractQtPDOMClass {
// Store the array into the Database.
long arrayRec = getDB().getRecPtr(Field.ClassInfos.getRecord(record));
- QtPDOMArray<ClassInfo> pdomArray = new QtPDOMArray<>(getQtLinkage(), ClassInfo.Codec,
- arrayRec);
+ QtPDOMArray<ClassInfo> pdomArray = new QtPDOMArray<>(getQtLinkage(), ClassInfo.Codec, arrayRec);
arrayRec = pdomArray.set(array);
// Update the record that is stored in the receiver's field.
@@ -89,8 +88,7 @@ public class QtPDOMQObject extends AbstractQtPDOMClass {
// Read the array from the Database and insert the elements into the Map that is to be returned.
long arrayRec = getDB().getRecPtr(Field.ClassInfos.getRecord(record));
- QtPDOMArray<ClassInfo> pdomArray = new QtPDOMArray<>(getQtLinkage(), ClassInfo.Codec,
- arrayRec);
+ QtPDOMArray<ClassInfo> pdomArray = new QtPDOMArray<>(getQtLinkage(), ClassInfo.Codec, arrayRec);
ClassInfo[] array = pdomArray.get();
if (array == null)
diff --git a/testsrunner/org.eclipse.cdt.testsrunner/src/org/eclipse/cdt/testsrunner/internal/model/TestingSession.java b/testsrunner/org.eclipse.cdt.testsrunner/src/org/eclipse/cdt/testsrunner/internal/model/TestingSession.java
index d9ce77fd76..ff5c14f61c 100644
--- a/testsrunner/org.eclipse.cdt.testsrunner/src/org/eclipse/cdt/testsrunner/internal/model/TestingSession.java
+++ b/testsrunner/org.eclipse.cdt.testsrunner/src/org/eclipse/cdt/testsrunner/internal/model/TestingSession.java
@@ -72,8 +72,7 @@ public class TestingSession implements ITestingSession {
* statistics without model scanning.
*
*/
- private Map<ITestItem.Status, Integer> statusCounters = new EnumMap<>(
- ITestItem.Status.class);
+ private Map<ITestItem.Status, Integer> statusCounters = new EnumMap<>(ITestItem.Status.class);
/**
* The flag stores whether the testing session contains errors at the

Back to the top