diff --git a/org.eclipse.xtend.core/src/org/eclipse/xtend/core/scoping/CachingTypeScope.java b/org.eclipse.xtend.core/src/org/eclipse/xtend/core/scoping/CachingTypeScope.java index 8bcf1a366e4..130ebf0eac9 100644 --- a/org.eclipse.xtend.core/src/org/eclipse/xtend/core/scoping/CachingTypeScope.java +++ b/org.eclipse.xtend.core/src/org/eclipse/xtend/core/scoping/CachingTypeScope.java @@ -9,6 +9,7 @@ package org.eclipse.xtend.core.scoping; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -16,8 +17,6 @@ import org.eclipse.xtext.naming.QualifiedName; import org.eclipse.xtext.resource.IEObjectDescription; -import com.google.common.collect.Maps; - /** * @author Sebastian Zarnekow - Initial contribution and API */ @@ -28,7 +27,7 @@ public class CachingTypeScope extends AbstractScope { public CachingTypeScope(AbstractScope parent) { this.parent = parent; - this.cache = Maps.newHashMapWithExpectedSize(50); + this.cache = new HashMap<>(50 * 4 / 3 + 1); } @Override diff --git a/org.eclipse.xtext.builder/src/org/eclipse/xtext/builder/clustering/CopiedResourceDescription.java b/org.eclipse.xtext.builder/src/org/eclipse/xtext/builder/clustering/CopiedResourceDescription.java index 674149d60fb..2f8669c8be3 100644 --- a/org.eclipse.xtext.builder/src/org/eclipse/xtext/builder/clustering/CopiedResourceDescription.java +++ b/org.eclipse.xtext.builder/src/org/eclipse/xtext/builder/clustering/CopiedResourceDescription.java @@ -9,6 +9,7 @@ package org.eclipse.xtext.builder.clustering; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -26,7 +27,6 @@ import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; -import com.google.common.collect.Maps; /** * Makes an eager copy of the exported objects of another resource description. @@ -56,7 +56,7 @@ public IEObjectDescription apply(IEObjectDescription from) { Map userData = null; for (final String key : from.getUserDataKeys()) { if (userData == null) { - userData = Maps.newHashMapWithExpectedSize(2); + userData = new HashMap<>(3); } userData.put(key, from.getUserData(key)); } diff --git a/org.eclipse.xtext.common.types/src/org/eclipse/xtext/common/types/access/binary/asm/JvmAnnotationTargetBuilder.java b/org.eclipse.xtext.common.types/src/org/eclipse/xtext/common/types/access/binary/asm/JvmAnnotationTargetBuilder.java index d872eeaef7f..844246f1821 100644 --- a/org.eclipse.xtext.common.types/src/org/eclipse/xtext/common/types/access/binary/asm/JvmAnnotationTargetBuilder.java +++ b/org.eclipse.xtext.common.types/src/org/eclipse/xtext/common/types/access/binary/asm/JvmAnnotationTargetBuilder.java @@ -8,6 +8,7 @@ *******************************************************************************/ package org.eclipse.xtext.common.types.access.binary.asm; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -25,8 +26,6 @@ import org.objectweb.asm.AnnotationVisitor; import org.objectweb.asm.Opcodes; -import com.google.common.collect.Maps; - /** * @author Sebastian Zarnekow - Initial contribution and API */ @@ -88,9 +87,8 @@ protected Map createTypeParameters(AbstractBinarySigna List typeParameters = signature.getTypeParameters(); if (typeParameters.size() != 0) { - Map result = Maps - .newHashMapWithExpectedSize((knownTypeParameters != null ? knownTypeParameters.size() : 0) - + typeParameters.size()); + int expectedSize = (knownTypeParameters != null ? knownTypeParameters.size() : 0) + typeParameters.size(); + Map result = new HashMap<>(expectedSize * 4 / 3 + 1); if (knownTypeParameters != null) result.putAll(knownTypeParameters); InternalEList jvmTypeParameters = (InternalEList) container diff --git a/org.eclipse.xtext.common.types/src/org/eclipse/xtext/common/types/access/binary/asm/Proxies.java b/org.eclipse.xtext.common.types/src/org/eclipse/xtext/common/types/access/binary/asm/Proxies.java index 97e02ce2ea8..2887db58e59 100644 --- a/org.eclipse.xtext.common.types/src/org/eclipse/xtext/common/types/access/binary/asm/Proxies.java +++ b/org.eclipse.xtext.common.types/src/org/eclipse/xtext/common/types/access/binary/asm/Proxies.java @@ -49,8 +49,6 @@ import org.eclipse.xtext.common.types.impl.JvmTypeConstraintImplCustom; import org.objectweb.asm.Type; -import com.google.common.collect.Maps; - /** * @author Sebastian Zarnekow - Initial contribution and API */ @@ -326,9 +324,8 @@ public Map createTypeParameters(AbstractBinarySignatur List typeParameters = signature.getTypeParameters(); if (typeParameters.size() != 0) { - Map result = Maps - .newHashMapWithExpectedSize((knownTypeParameters != null ? knownTypeParameters.size() : 0) - + typeParameters.size()); + int expectedSize = (knownTypeParameters != null ? knownTypeParameters.size() : 0) + typeParameters.size(); + Map result = new HashMap<>(expectedSize * 4 / 3 + 1); if (knownTypeParameters != null) result.putAll(knownTypeParameters); InternalEList jvmTypeParameters = (InternalEList) container diff --git a/org.eclipse.xtext.ecore/src/org/eclipse/xtext/ecore/EcoreResourceDescriptionStrategy.java b/org.eclipse.xtext.ecore/src/org/eclipse/xtext/ecore/EcoreResourceDescriptionStrategy.java index 1b90273643d..a1271033950 100644 --- a/org.eclipse.xtext.ecore/src/org/eclipse/xtext/ecore/EcoreResourceDescriptionStrategy.java +++ b/org.eclipse.xtext.ecore/src/org/eclipse/xtext/ecore/EcoreResourceDescriptionStrategy.java @@ -19,7 +19,6 @@ import org.eclipse.xtext.resource.impl.DefaultResourceDescriptionStrategy; import org.eclipse.xtext.util.IAcceptor; -import com.google.common.collect.Maps; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -48,8 +47,7 @@ protected boolean createEObjectDescriptions(IQualifiedNameProvider qualifiedName try { QualifiedName qualifiedName = qualifiedNameProvider.getFullyQualifiedName(eObject); if (qualifiedName != null) { - Map userData = Maps.newHashMapWithExpectedSize(1); - userData.put(NS_URI_INDEX_ENTRY, Boolean.toString(isNsURI)); + Map userData = Map.of(NS_URI_INDEX_ENTRY, Boolean.toString(isNsURI)); IEObjectDescription description = EObjectDescription.create(qualifiedName, eObject, userData); acceptor.accept(description); return true; diff --git a/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/CallHierarchyHelper.java b/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/CallHierarchyHelper.java index da569a5678a..2de98d31074 100644 --- a/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/CallHierarchyHelper.java +++ b/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/CallHierarchyHelper.java @@ -8,6 +8,7 @@ *******************************************************************************/ package org.eclipse.xtext.ide.editor.contentassist.antlr; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -28,7 +29,6 @@ import org.eclipse.xtext.UnorderedGroup; import org.eclipse.xtext.util.XtextSwitch; -import com.google.common.collect.Maps; import com.google.common.collect.Sets; /** @@ -37,7 +37,7 @@ public class CallHierarchyHelper extends XtextSwitch { private final EObject nextGrammarElement; private Set visiting = new HashSet(); - private Map visited = Maps.newHashMapWithExpectedSize(4); + private Map visited = new HashMap<>(4 * 4 / 3 + 1); private EObject grammarElement; private EObject queuedGrammarElement; private Boolean result = Boolean.FALSE; diff --git a/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/BaseInternalContentAssistParser.java b/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/BaseInternalContentAssistParser.java index 457c8020b25..63a41ab5588 100644 --- a/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/BaseInternalContentAssistParser.java +++ b/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/contentassist/antlr/internal/BaseInternalContentAssistParser.java @@ -9,6 +9,7 @@ package org.eclipse.xtext.ide.editor.contentassist.antlr.internal; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -36,7 +37,6 @@ import org.eclipse.xtext.parser.antlr.IUnorderedGroupHelper; import com.google.common.collect.LinkedHashMultimap; -import com.google.common.collect.Maps; import com.google.common.collect.Multimap; /** @@ -585,7 +585,8 @@ public Set getFollowElements() { @Override public Map getTokenDefMap() { String[] names = getTokenNames(); - Map result = Maps.newHashMapWithExpectedSize(names.length - Token.MIN_TOKEN_TYPE); + int expectedSize = names.length - Token.MIN_TOKEN_TYPE; + Map result = new HashMap<>(expectedSize * 4 / 3 + 1); for (int i = Token.MIN_TOKEN_TYPE; i < names.length; i++) { result.put(i, getValueForTokenName(names[i])); } diff --git a/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/serializer/impl/EObjectDescriptionProvider.java b/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/serializer/impl/EObjectDescriptionProvider.java index d55cdccbb41..bfd84a77584 100644 --- a/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/serializer/impl/EObjectDescriptionProvider.java +++ b/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/serializer/impl/EObjectDescriptionProvider.java @@ -9,6 +9,7 @@ package org.eclipse.xtext.ide.serializer.impl; import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -31,7 +32,6 @@ import com.google.common.base.Preconditions; import com.google.common.collect.HashMultimap; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import com.google.common.collect.Multimap; import com.google.inject.Inject; @@ -59,7 +59,7 @@ public SimpleNameDescription(QualifiedName qName, EObject resolvedObject, IEObje Map userData = null; for (final String key : source.getUserDataKeys()) { if (userData == null) { - userData = Maps.newHashMapWithExpectedSize(2); + userData = new HashMap<>(2 + 1); } userData.put(key, source.getUserData(key)); } diff --git a/org.eclipse.xtext.testlanguages/src/org/eclipse/xtext/testlanguages/ecore/EcoreResourceDescriptionStrategy.java b/org.eclipse.xtext.testlanguages/src/org/eclipse/xtext/testlanguages/ecore/EcoreResourceDescriptionStrategy.java index 2f988956c60..0043750c587 100644 --- a/org.eclipse.xtext.testlanguages/src/org/eclipse/xtext/testlanguages/ecore/EcoreResourceDescriptionStrategy.java +++ b/org.eclipse.xtext.testlanguages/src/org/eclipse/xtext/testlanguages/ecore/EcoreResourceDescriptionStrategy.java @@ -19,7 +19,6 @@ import org.eclipse.xtext.resource.impl.DefaultResourceDescriptionStrategy; import org.eclipse.xtext.util.IAcceptor; -import com.google.common.collect.Maps; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -48,8 +47,7 @@ protected boolean createEObjectDescriptions(IQualifiedNameProvider qualifiedName try { QualifiedName qualifiedName = qualifiedNameProvider.getFullyQualifiedName(eObject); if (qualifiedName != null) { - Map userData = Maps.newHashMapWithExpectedSize(1); - userData.put(NS_URI_INDEX_ENTRY, Boolean.toString(isNsURI)); + Map userData = Map.of(NS_URI_INDEX_ENTRY, Boolean.toString(isNsURI)); IEObjectDescription description = EObjectDescription.create(qualifiedName, eObject, userData); acceptor.accept(description); return true; diff --git a/org.eclipse.xtext.ui/deprecated/org/eclipse/xtext/ui/editor/contentassist/antlr/ParserBasedContentAssistContextFactory.java b/org.eclipse.xtext.ui/deprecated/org/eclipse/xtext/ui/editor/contentassist/antlr/ParserBasedContentAssistContextFactory.java index de4697471a5..fd24a46b2c9 100644 --- a/org.eclipse.xtext.ui/deprecated/org/eclipse/xtext/ui/editor/contentassist/antlr/ParserBasedContentAssistContextFactory.java +++ b/org.eclipse.xtext.ui/deprecated/org/eclipse/xtext/ui/editor/contentassist/antlr/ParserBasedContentAssistContextFactory.java @@ -10,6 +10,7 @@ import java.util.Collection; import java.util.Collections; +import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -74,7 +75,6 @@ import com.google.common.collect.HashMultimap; import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import com.google.common.collect.Multimap; import com.google.common.collect.Sets; import com.google.inject.Inject; @@ -996,7 +996,7 @@ public boolean isOptional(AbstractElement element) { public static class CallHierarchyHelper extends XtextSwitch { private final EObject nextGrammarElement; private Set visiting = new HashSet(); - private Map visited = Maps.newHashMapWithExpectedSize(4); + private Map visited = new HashMap<>(4 * 4 / 3 + 1); private EObject grammarElement; private EObject queuedGrammarElement; private Boolean result = Boolean.FALSE; diff --git a/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/PluginImageHelper.java b/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/PluginImageHelper.java index 81ef0adba5f..7173e18ee06 100644 --- a/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/PluginImageHelper.java +++ b/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/PluginImageHelper.java @@ -9,6 +9,7 @@ package org.eclipse.xtext.ui; import java.net.URL; +import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -20,7 +21,6 @@ import org.osgi.framework.BundleEvent; import org.osgi.framework.SynchronousBundleListener; -import com.google.common.collect.Maps; import com.google.inject.Inject; import com.google.inject.Singleton; import com.google.inject.name.Named; @@ -49,7 +49,7 @@ public class PluginImageHelper implements IImageHelper, IImageDescriptorHelper, private static final String PLATFORM_URL_SEPARATOR = "/"; - private Map registry = Maps.newHashMapWithExpectedSize(10); + private Map registry = new HashMap<>(10 * 4 / 3 + 1); @Inject private AbstractUIPlugin plugin; diff --git a/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/compare/DefaultMergeViewer.java b/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/compare/DefaultMergeViewer.java index f01ab3f77c4..08403b167b7 100644 --- a/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/compare/DefaultMergeViewer.java +++ b/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/compare/DefaultMergeViewer.java @@ -8,6 +8,7 @@ *******************************************************************************/ package org.eclipse.xtext.ui.compare; +import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -245,7 +246,7 @@ protected IEditorInput getEditorInput(ISourceViewer sourceViewer) { protected SourceViewer createSourceViewer(Composite parent, int textOrientation) { if (getSite() != null) { if (sourceViewerEditorMap == null) { - sourceViewerEditorMap = Maps.newHashMapWithExpectedSize(3); + sourceViewerEditorMap = new HashMap<>(3 * 4 / 3 + 1); } DefaultMergeEditor mergeEditor = createMergeEditor(); mergeEditor.setXtextEditorCallback(new CompoundXtextEditorCallback(null)); diff --git a/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/editor/StatefulResourceDescription.java b/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/editor/StatefulResourceDescription.java index ae6beed5522..ad60fb55e34 100644 --- a/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/editor/StatefulResourceDescription.java +++ b/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/editor/StatefulResourceDescription.java @@ -9,6 +9,7 @@ package org.eclipse.xtext.ui.editor; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -27,7 +28,6 @@ import com.google.common.base.Predicates; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; -import com.google.common.collect.Maps; import com.google.inject.Provider; /** @@ -61,7 +61,7 @@ public IEObjectDescription apply(IEObjectDescription from) { Map userData = null; for(String key: from.getUserDataKeys()) { if (userData == null) { - userData = Maps.newHashMapWithExpectedSize(2); + userData = new HashMap<>(2 + 1); } userData.put(key, from.getUserData(key)); } diff --git a/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/editor/occurrences/DefaultOccurrenceComputer.java b/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/editor/occurrences/DefaultOccurrenceComputer.java index a1ac52057d8..10e8f5f48da 100644 --- a/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/editor/occurrences/DefaultOccurrenceComputer.java +++ b/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/editor/occurrences/DefaultOccurrenceComputer.java @@ -9,9 +9,9 @@ package org.eclipse.xtext.ui.editor.occurrences; import static com.google.common.collect.Lists.*; -import static com.google.common.collect.Maps.*; import static java.util.Collections.*; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -138,7 +138,7 @@ public boolean isCanceled() { }; referenceFinder.findReferences((TargetURIs) targetURIs, resource, acceptor, localMonitor); operationCanceledManager.checkCanceled(cancelIndicator); - Map result = newHashMapWithExpectedSize(references.size() + 1); + Map result = new HashMap<>((references.size() + 1) * 4 / 3 + 1); if (target.eResource() == resource) { if (!references.isEmpty() || canBeReferencedLocally(target)) { ITextRegion declarationRegion = locationInFileProvider.getSignificantTextRegion(target); diff --git a/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/editor/validation/AnnotationIssueProcessor.java b/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/editor/validation/AnnotationIssueProcessor.java index ef9659d81b3..13c85aed245 100644 --- a/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/editor/validation/AnnotationIssueProcessor.java +++ b/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/editor/validation/AnnotationIssueProcessor.java @@ -9,6 +9,7 @@ *******************************************************************************/ package org.eclipse.xtext.ui.editor.validation; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -39,7 +40,6 @@ import com.google.common.collect.HashBiMap; import com.google.common.collect.Iterators; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import com.google.common.collect.Multimap; /** @@ -128,7 +128,7 @@ protected Map getAnnotationsToAdd(Multimap annotationToPosition = Maps.newHashMapWithExpectedSize(issues.size()); + Map annotationToPosition = new HashMap<>(issues.size() * 4 / 3 + 1); for (Issue issue : issues) { if (monitor.isCanceled()) { return annotationToPosition; diff --git a/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/preferences/OptionsConfigurationBlock.java b/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/preferences/OptionsConfigurationBlock.java index 21b7f3ac13b..b19186ee1d6 100755 --- a/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/preferences/OptionsConfigurationBlock.java +++ b/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/preferences/OptionsConfigurationBlock.java @@ -1,697 +1,698 @@ -/******************************************************************************* - * Copyright (c) 2011, 2017 itemis AG (http://www.itemis.eu) and others. - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0. - * - * SPDX-License-Identifier: EPL-2.0 - *******************************************************************************/ -package org.eclipse.xtext.ui.preferences; - -import java.io.IOException; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IncrementalProjectBuilder; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.OperationCanceledException; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.SubMonitor; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.dialogs.IDialogSettings; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.preference.IPersistentPreferenceStore; -import org.eclipse.jface.preference.IPreferenceStore; -import org.eclipse.jface.resource.JFaceResources; -import org.eclipse.osgi.util.TextProcessor; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; -import org.eclipse.swt.widgets.Widget; -import org.eclipse.ui.forms.events.ExpansionAdapter; -import org.eclipse.ui.forms.events.ExpansionEvent; -import org.eclipse.ui.forms.widgets.ExpandableComposite; -import org.eclipse.ui.plugin.AbstractUIPlugin; -import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer; -import org.eclipse.xtext.ui.editor.preferences.PreferenceStoreAccessImpl; - -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; -import com.google.common.collect.MapDifference; -import com.google.common.collect.MapDifference.ValueDifference; -import com.google.common.collect.Maps; -import com.google.inject.Inject; - -/** - * Initially copied from jdt's OptionsConfigurationBlock - * - * @author Michael Clay - * @since 2.1 - */ -public abstract class OptionsConfigurationBlock { - @Inject - AbstractUIPlugin uiPlugin; - - @Inject - protected PreferenceStoreAccessImpl preferenceStoreAccessImpl; - - @Inject - private IBuildPreferenceEvaluator buildPreferenceEvaluator; - - private static final String IS_PROJECT_SPECIFIC = "is_project_specific"; //$NON-NLS-1$ - private static final String SETTINGS_EXPANDED = "expanded"; //$NON-NLS-1$ - private static final String REBUILD_COUNT_KEY = "preferences_build_requested"; //$NON-NLS-1$ - - protected static class ControlData { - private String key; - private String[] values; - - public ControlData(String key, String[] values) { - this.key = key; - this.values = values; - } - - public String getKey() { - return key; - } - - public String getValue(boolean selection) { - int index = selection ? 0 : 1; - return values[index]; - } - - public String getValue(int index) { - return values[index]; - } - - public int getSelection(String value) { - if (value != null) { - for (int i = 0; i < values.length; i++) { - if (value.equals(values[i])) { - return i; - } - } - } - return values.length - 1; // assume the last option is the least severe - } - } - - public static final class BuildJob extends Job { - private final IProject project; - - public BuildJob(String name, IProject project) { - super(name); - this.project = project; - } - - public boolean isCoveredBy(BuildJob other) { - if (other.project == null) { - return true; - } - return project != null && project.equals(other.project); - } - - @Override - protected IStatus run(IProgressMonitor monitor) { - synchronized (getClass()) { - if (monitor.isCanceled()) { - return Status.CANCEL_STATUS; - } - Job[] buildJobs = Job.getJobManager().find(ResourcesPlugin.FAMILY_MANUAL_BUILD); - for (int i = 0; i < buildJobs.length; i++) { - if (buildJobs[i] != this && buildJobs[i] instanceof BuildJob) { - BuildJob job = (BuildJob) buildJobs[i]; - if (job.isCoveredBy(this)) { - buildJobs[i].cancel(); - } - } - } - } - try { - if (project != null) { - monitor.beginTask(String.format( - Messages.BuilderConfigurationBlock_BuildJob_TitleBuildProject_TaskName, - TextProcessor.process(project.getName(), ":.")), //$NON-NLS-2$ //$NON-NLS-1$ //$NON-NLS-1$ - 2); - project.build(IncrementalProjectBuilder.FULL_BUILD, SubMonitor.convert(monitor, 1)); - ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, - SubMonitor.convert(monitor, 1)); - } else { - monitor.beginTask(Messages.BuilderConfigurationBlock_BuildJob_TitleBuildAll_TaskName, 2); - ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, - SubMonitor.convert(monitor, 2)); - } - } catch (CoreException e) { - return e.getStatus(); - } catch (OperationCanceledException e) { - return Status.CANCEL_STATUS; - } finally { - monitor.done(); - } - return Status.OK_STATUS; - } - - @Override - public boolean belongsTo(Object family) { - return ResourcesPlugin.FAMILY_MANUAL_BUILD == family; - } - } - - protected final List