Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Pazderski2019-05-18 14:07:38 +0000
committerPaul Pazderski2019-05-19 23:54:17 +0000
commitde3c0c5ff08c928e6d1eb4fac2704bbb2d261669 (patch)
treede6e0a11c45731a312b5e239c22387afe93fe19c /bundles/org.eclipse.team.core/src/org/eclipse
parent5e9e26b1abe5bd1df37faa91fde2d87fd79ed06b (diff)
downloadeclipse.platform.team-de3c0c5ff08c928e6d1eb4fac2704bbb2d261669.tar.gz
eclipse.platform.team-de3c0c5ff08c928e6d1eb4fac2704bbb2d261669.tar.xz
eclipse.platform.team-de3c0c5ff08c928e6d1eb4fac2704bbb2d261669.zip
This change fixes space or mixed tab/space indentations in all Java files. This also includes two or three space indentations and even fix most stray single spaces in indentations. The change includes only whitespace formatting and no code changes. Change-Id: I4149aaf4e48ccf7b49083f36d52e0c7a67433c7d
Diffstat (limited to 'bundles/org.eclipse.team.core/src/org/eclipse')
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileContentManager.java282
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/IStringMapping.java32
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/ProjectSetCapability.java6
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java82
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProviderType.java6
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java142
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/TeamException.java4
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/history/IFileRevision.java4
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/IResourceMappingMerger.java76
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/IStorageMerger.java72
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/ResourceMappingMerger.java8
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/provider/MergeContext.java226
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/provider/MergeStatus.java56
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/provider/SynchronizationContext.java24
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SubscriberResourceMappingContext.java266
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfo.java28
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfoSet.java20
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/BackgroundEventHandler.java42
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultFileModificationValidator.java86
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/ExceptionCollector.java20
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileContentManager.java388
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileModificationValidatorManager.java8
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Messages.java10
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/PluginStringMappings.java118
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/ResourceVariantCache.java4
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/StorageMergerRegistry.java10
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamPlugin.java18
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/UserStringMappings.java182
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/LFtoCRLFInputStream.java10
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingOutputStream.java10
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ActiveChangeSet.java348
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ActiveChangeSetManager.java354
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/BatchingChangeSetManager.java88
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/BatchingLock.java26
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ChangeSet.java168
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ChangeSetManager.java376
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/CheckedInChangeSet.java234
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/DiffChangeSet.java210
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/IChangeSetChangeListener.java72
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberChangeSetManager.java550
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberDiffTreeEventHandler.java2
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberEventHandler.java8
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberResourceCollector.java144
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberSyncInfoCollector.java20
-rw-r--r--bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberSyncInfoEventHandler.java2
45 files changed, 2421 insertions, 2421 deletions
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileContentManager.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileContentManager.java
index e8c63f69c..bbc9a275c 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileContentManager.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileContentManager.java
@@ -46,145 +46,145 @@ import org.eclipse.core.resources.IStorage;
*/
public interface IFileContentManager {
- /**
- * Get the content type for a given instance of <code>IStorage</code>. User-defined mappings
- * take precedence over plugin-contributed mappings; further, mappings for the entire file name
- * take precedence over mappings for the file extension only.
- *
- * @param storage the instance of <code>IStorage</code>.
- * @return one of <code>Team.UNKNOWN</code>, <code>Team.TEXT</code> or <code>Team.BINARY</code>.
- *
- * @since 3.1
- */
- int getType(IStorage storage);
-
- /**
- * Check whether the given file name is assigned to a specific type in the content type registry.
- * @param filename the file name to check for
- * @return True if the file name is registered in the system and assigned to a content type, false
- * if the file name is unknown.
- *
- * @since 3.1
- */
- boolean isKnownFilename(String filename);
-
- /**
- * Check whether the given file extension is assigned to a specific type in the content type registry.
- * @param extension the extension to check for
- * @return True if the extension is registered in the system and assigned to a content type, false
- * if the extension is unknown.
- *
- * @since 3.1
- */
- boolean isKnownExtension(String extension);
-
- /**
- * Get the content type for a given file name.
- * @param filename The file name
- * @return one of <code>Team.UNKNOWN</code>, <code>Team.TEXT</code> or <code>Team.BINARY</code>.
- *
- * @since 3.1
- */
- int getTypeForName(String filename);
-
- /**
- * Get the content type for a given file extension.
- * @param extension The extension
- * @return one of <code>Team.UNKNOWN</code>, <code>Team.TEXT</code> or <code>Team.BINARY</code>.
- *
- * @since 3.1
- */
- int getTypeForExtension(String extension);
-
- /**
- * Map a set of file names to a set of content types and save the mappings in
- * the preferences. Already existing mappings for these file names are updated
- * with the new ones, other mappings will be preserved.
- *
- * @param names The file names
- * @param types The corresponding types, each one being one of
- * <code>Team.UNKNOWN</code>,<code>Team.TEXT</code> or
- * <code>Team.BINARY</code>.
- *
- * @since 3.1
- */
- void addNameMappings(String[] names, int[] types);
-
- /**
- * Map a set of file extensions to a set of content types and save the mapping in
- * the preferences. Already existing mappings for these extensions are updated
- * with the new ones, other mappings will be preserved.
- *
- * @param extensions The extensions
- * @param types The corresponding types, each one being one of
- * <code>Team.UNKNOWN</code>,<code>Team.TEXT</code> or
- * <code>Team.BINARY</code>.
- *
- * @since 3.1
- */
- void addExtensionMappings(String[] extensions, int[] types);
-
- /**
- * Map a set of file names to a set of content types and save the mappings in
- * the preferences. All existing user-defined mappings for <b>any
- * </b> file names are deleted and replaced by the new ones.
- *
- * @param names The file names
- * @param types The corresponding types, each one being one of
- * <code>Team.UNKNOWN</code>,<code>Team.TEXT</code> or
- * <code>Team.BINARY</code>.
- *
- * @since 3.1
- */
- void setNameMappings(String[] names, int[] types);
-
- /**
- * Map a set of file extensions to a set of content types and save the
- * mapping in the preferences. All existing user-defined mappings for <b>any
- * </b> file extensions are deleted and replaced by the new ones.
- *
- * @param extensions The extensions
- * @param types The corresponding types, each one being one of
- * <code>Team.UNKNOWN</code>,<code>Team.TEXT</code> or
- * <code>Team.BINARY</code>.
- *
- * @since 3.1
- */
- void setExtensionMappings(String[] extensions, int[] types);
-
- /**
- * Get all the currently defined mappings from file names to content types.
- *
- * @return the mappings
- *
- * @since 3.1
- */
- IStringMapping [] getNameMappings();
-
- /**
- * Get all the currently defined mappings from file names to content types.
- *
- * @return the mappings
- *
- * @since 3.1
- */
- IStringMapping [] getExtensionMappings();
-
- /**
- * Get all the plugin-contributed mappings from file names to content types.
- *
- * @return the mappings
- *
- * @since 3.1
- */
- IStringMapping [] getDefaultNameMappings();
-
- /**
- * Get all the plugin-contributed mappings from file extensions to content types.
- *
- * @return the mappings
-
- * @since 3.1
- */
- IStringMapping [] getDefaultExtensionMappings();
+ /**
+ * Get the content type for a given instance of <code>IStorage</code>. User-defined mappings
+ * take precedence over plugin-contributed mappings; further, mappings for the entire file name
+ * take precedence over mappings for the file extension only.
+ *
+ * @param storage the instance of <code>IStorage</code>.
+ * @return one of <code>Team.UNKNOWN</code>, <code>Team.TEXT</code> or <code>Team.BINARY</code>.
+ *
+ * @since 3.1
+ */
+ int getType(IStorage storage);
+
+ /**
+ * Check whether the given file name is assigned to a specific type in the content type registry.
+ * @param filename the file name to check for
+ * @return True if the file name is registered in the system and assigned to a content type, false
+ * if the file name is unknown.
+ *
+ * @since 3.1
+ */
+ boolean isKnownFilename(String filename);
+
+ /**
+ * Check whether the given file extension is assigned to a specific type in the content type registry.
+ * @param extension the extension to check for
+ * @return True if the extension is registered in the system and assigned to a content type, false
+ * if the extension is unknown.
+ *
+ * @since 3.1
+ */
+ boolean isKnownExtension(String extension);
+
+ /**
+ * Get the content type for a given file name.
+ * @param filename The file name
+ * @return one of <code>Team.UNKNOWN</code>, <code>Team.TEXT</code> or <code>Team.BINARY</code>.
+ *
+ * @since 3.1
+ */
+ int getTypeForName(String filename);
+
+ /**
+ * Get the content type for a given file extension.
+ * @param extension The extension
+ * @return one of <code>Team.UNKNOWN</code>, <code>Team.TEXT</code> or <code>Team.BINARY</code>.
+ *
+ * @since 3.1
+ */
+ int getTypeForExtension(String extension);
+
+ /**
+ * Map a set of file names to a set of content types and save the mappings in
+ * the preferences. Already existing mappings for these file names are updated
+ * with the new ones, other mappings will be preserved.
+ *
+ * @param names The file names
+ * @param types The corresponding types, each one being one of
+ * <code>Team.UNKNOWN</code>,<code>Team.TEXT</code> or
+ * <code>Team.BINARY</code>.
+ *
+ * @since 3.1
+ */
+ void addNameMappings(String[] names, int[] types);
+
+ /**
+ * Map a set of file extensions to a set of content types and save the mapping in
+ * the preferences. Already existing mappings for these extensions are updated
+ * with the new ones, other mappings will be preserved.
+ *
+ * @param extensions The extensions
+ * @param types The corresponding types, each one being one of
+ * <code>Team.UNKNOWN</code>,<code>Team.TEXT</code> or
+ * <code>Team.BINARY</code>.
+ *
+ * @since 3.1
+ */
+ void addExtensionMappings(String[] extensions, int[] types);
+
+ /**
+ * Map a set of file names to a set of content types and save the mappings in
+ * the preferences. All existing user-defined mappings for <b>any
+ * </b> file names are deleted and replaced by the new ones.
+ *
+ * @param names The file names
+ * @param types The corresponding types, each one being one of
+ * <code>Team.UNKNOWN</code>,<code>Team.TEXT</code> or
+ * <code>Team.BINARY</code>.
+ *
+ * @since 3.1
+ */
+ void setNameMappings(String[] names, int[] types);
+
+ /**
+ * Map a set of file extensions to a set of content types and save the
+ * mapping in the preferences. All existing user-defined mappings for <b>any
+ * </b> file extensions are deleted and replaced by the new ones.
+ *
+ * @param extensions The extensions
+ * @param types The corresponding types, each one being one of
+ * <code>Team.UNKNOWN</code>,<code>Team.TEXT</code> or
+ * <code>Team.BINARY</code>.
+ *
+ * @since 3.1
+ */
+ void setExtensionMappings(String[] extensions, int[] types);
+
+ /**
+ * Get all the currently defined mappings from file names to content types.
+ *
+ * @return the mappings
+ *
+ * @since 3.1
+ */
+ IStringMapping [] getNameMappings();
+
+ /**
+ * Get all the currently defined mappings from file names to content types.
+ *
+ * @return the mappings
+ *
+ * @since 3.1
+ */
+ IStringMapping [] getExtensionMappings();
+
+ /**
+ * Get all the plugin-contributed mappings from file names to content types.
+ *
+ * @return the mappings
+ *
+ * @since 3.1
+ */
+ IStringMapping [] getDefaultNameMappings();
+
+ /**
+ * Get all the plugin-contributed mappings from file extensions to content types.
+ *
+ * @return the mappings
+
+ * @since 3.1
+ */
+ IStringMapping [] getDefaultExtensionMappings();
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IStringMapping.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IStringMapping.java
index f62bbe399..ac54d1ddd 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IStringMapping.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IStringMapping.java
@@ -24,21 +24,21 @@ package org.eclipse.team.core;
*/
public interface IStringMapping {
- /**
- * The string part of the mapping
- *
- * @return the string
- *
- * @since 3.1
- */
- String getString();
+ /**
+ * The string part of the mapping
+ *
+ * @return the string
+ *
+ * @since 3.1
+ */
+ String getString();
- /**
- * The content type associated with the string
- *
- * @return the content type
- *
- * @since 3.1
- */
- int getType();
+ /**
+ * The content type associated with the string
+ *
+ * @return the content type
+ *
+ * @since 3.1
+ */
+ int getType();
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/ProjectSetCapability.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/ProjectSetCapability.java
index e2a5c5e19..b6473385a 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/ProjectSetCapability.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/ProjectSetCapability.java
@@ -244,9 +244,9 @@ public abstract class ProjectSetCapability {
IProject eachProj = projects[i];
if (eachProj.exists()) {
existingProjects.add(eachProj);
- } else if (new File(eachProj.getParent().getLocation().toFile(), eachProj.getName()).exists()) {
- existingProjects.add(eachProj);
- }
+ } else if (new File(eachProj.getParent().getLocation().toFile(), eachProj.getName()).exists()) {
+ existingProjects.add(eachProj);
+ }
}
if (existingProjects.size() == 0)
return projects;
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java
index d2f4c70f9..8e4ba1259 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProvider.java
@@ -100,8 +100,8 @@ public abstract class RepositoryProvider implements IProjectNature, IAdaptable {
// lock to ensure that map/unmap and getProvider support concurrency
private static final ILock mappingLock = Job.getJobManager().newLock();
- // Session property used to identify projects that are not mapped
- private static final Object NOT_MAPPED = new Object();
+ // Session property used to identify projects that are not mapped
+ private static final Object NOT_MAPPED = new Object();
/**
* Instantiate a new RepositoryProvider with concrete class by given providerID
@@ -330,10 +330,10 @@ public abstract class RepositoryProvider implements IProjectNature, IAdaptable {
*/
private static RepositoryProvider lookupProviderProp(IProject project) throws CoreException {
Object provider = project.getSessionProperty(TeamPlugin.PROVIDER_PROP_KEY);
- if (provider instanceof RepositoryProvider) {
- return (RepositoryProvider) provider;
- }
- return null;
+ if (provider instanceof RepositoryProvider) {
+ return (RepositoryProvider) provider;
+ }
+ return null;
}
@@ -394,12 +394,12 @@ public abstract class RepositoryProvider implements IProjectNature, IAdaptable {
/**
* Returns an <code>IFileModificationValidator</code> for pre-checking operations
- * that modify the contents of files.
- * Returns <code>null</code> if the provider does not wish to participate in
- * file modification validation.
+ * that modify the contents of files.
+ * Returns <code>null</code> if the provider does not wish to participate in
+ * file modification validation.
* @return an <code>IFileModificationValidator</code> for pre-checking operations
- * that modify the contents of files
- *
+ * that modify the contents of files
+ *
* @see org.eclipse.core.resources.IFileModificationValidator
* @deprecated use {@link #getFileModificationValidator2()}
*/
@@ -460,7 +460,7 @@ public abstract class RepositoryProvider implements IProjectNature, IAdaptable {
* @since 3.2
*/
public IFileHistoryProvider getFileHistoryProvider(){
- return null;
+ return null;
}
/**
@@ -532,10 +532,10 @@ public abstract class RepositoryProvider implements IProjectNature, IAdaptable {
RepositoryProvider provider = lookupProviderProp(project);
if(provider != null)
return provider;
- // Do a quick check to see it the project is known to be unshared.
- // This is done to avoid accessing the persistent property store
- if (isMarkedAsUnshared(project))
- return null;
+ // Do a quick check to see it the project is known to be unshared.
+ // This is done to avoid accessing the persistent property store
+ if (isMarkedAsUnshared(project))
+ return null;
// -----------------------------
//Next, check if it has the ID as a persistent property, if yes then instantiate provider
@@ -603,10 +603,10 @@ public abstract class RepositoryProvider implements IProjectNature, IAdaptable {
return null;
}
}
- // Do a quick check to see it the project is known to be unshared.
- // This is done to avoid accessing the persistent property store
- if (isMarkedAsUnshared(project))
- return null;
+ // Do a quick check to see it the project is known to be unshared.
+ // This is done to avoid accessing the persistent property store
+ if (isMarkedAsUnshared(project))
+ return null;
// There isn't one so check the persistent property
String existingID = project.getPersistentProperty(TeamPlugin.PROVIDER_PROP_KEY);
@@ -666,14 +666,14 @@ public abstract class RepositoryProvider implements IProjectNature, IAdaptable {
if (!project.isAccessible()) return false;
try {
if (lookupProviderProp(project) != null) return true;
- // Do a quick check to see it the project is known to be unshared.
- // This is done to avoid accessing the persistent property store
- if (isMarkedAsUnshared(project))
- return false;
+ // Do a quick check to see it the project is known to be unshared.
+ // This is done to avoid accessing the persistent property store
+ if (isMarkedAsUnshared(project))
+ return false;
boolean shared = project.getPersistentProperty(TeamPlugin.PROVIDER_PROP_KEY) != null;
- if (!shared)
- markAsUnshared(project);
- return shared;
+ if (!shared)
+ markAsUnshared(project);
+ return shared;
} catch (CoreException e) {
TeamPlugin.log(e);
return false;
@@ -681,20 +681,20 @@ public abstract class RepositoryProvider implements IProjectNature, IAdaptable {
}
private static boolean isMarkedAsUnshared(IProject project) {
- try {
- return project.getSessionProperty(TeamPlugin.PROVIDER_PROP_KEY) == NOT_MAPPED;
- } catch (CoreException e) {
- return false;
- }
- }
-
- private static void markAsUnshared(IProject project) {
- try {
- project.setSessionProperty(TeamPlugin.PROVIDER_PROP_KEY, NOT_MAPPED);
- } catch (CoreException e) {
- // Just ignore the error as this is just an optimization
- }
- }
+ try {
+ return project.getSessionProperty(TeamPlugin.PROVIDER_PROP_KEY) == NOT_MAPPED;
+ } catch (CoreException e) {
+ return false;
+ }
+ }
+
+ private static void markAsUnshared(IProject project) {
+ try {
+ project.setSessionProperty(TeamPlugin.PROVIDER_PROP_KEY, NOT_MAPPED);
+ } catch (CoreException e) {
+ // Just ignore the error as this is just an optimization
+ }
+ }
@Override
public IProject getProject() {
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProviderType.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProviderType.java
index 219100a99..62ca83791 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProviderType.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/RepositoryProviderType.java
@@ -233,9 +233,9 @@ public abstract class RepositoryProviderType extends PlatformObject {
* or in any way modify workspace resources (including auto-sharing the project). However,
* auto-sharing (or other modification) could be performed by a background job scheduled from
* this callback.
- *
- * @since 3.1
- *
+ *
+ * @since 3.1
+ *
* @param project the project that contains the detected meta-files.
* @param containers the folders (possibly including the project folder) in which meta-files were found
*/
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java
index 480c90177..d65e49f24 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/Team.java
@@ -65,25 +65,25 @@ import org.eclipse.team.internal.core.importing.BundleImporterExtension;
*/
public final class Team {
- private static class StringMappingWrapper implements IFileTypeInfo {
+ private static class StringMappingWrapper implements IFileTypeInfo {
- private final IStringMapping fMapping;
+ private final IStringMapping fMapping;
- public StringMappingWrapper(IStringMapping mapping) {
- fMapping= mapping;
- }
+ public StringMappingWrapper(IStringMapping mapping) {
+ fMapping= mapping;
+ }
- @Override
+ @Override
public String getExtension() {
- return fMapping.getString();
- }
+ return fMapping.getString();
+ }
- @Override
+ @Override
public int getType() {
- return fMapping.getType();
- }
+ return fMapping.getType();
+ }
- }
+ }
private static final String PREF_TEAM_IGNORES = "ignore_files"; //$NON-NLS-1$
private static final String PREF_TEAM_SEPARATOR = "\n"; //$NON-NLS-1$
@@ -99,19 +99,19 @@ public final class Team {
protected static SortedMap<String, Boolean> globalIgnore, pluginIgnore;
private static StringMatcher[] ignoreMatchers;
- private final static FileContentManager fFileContentManager;
+ private final static FileContentManager fFileContentManager;
private static List<IBundleImporter> fBundleImporters;
- static {
- fFileContentManager= new FileContentManager();
- }
+ static {
+ fFileContentManager= new FileContentManager();
+ }
/**
- * Return the type of the given IStorage. First, we check whether a mapping has
- * been defined for the name of the IStorage. If this is not the case, we check for
- * a mapping with the extension. If no mapping is defined, UNKNOWN is returned.
+ * Return the type of the given IStorage. First, we check whether a mapping has
+ * been defined for the name of the IStorage. If this is not the case, we check for
+ * a mapping with the extension. If no mapping is defined, UNKNOWN is returned.
*
* Valid return values are:
* Team.TEXT
@@ -120,12 +120,12 @@ public final class Team {
*
* @param storage the IStorage
* @return whether the given IStorage is TEXT, BINARY, or UNKNOWN
- *
- * @deprecated Use <code>getFileContentManager().getType(IStorage storage)</code> instead.
+ *
+ * @deprecated Use <code>getFileContentManager().getType(IStorage storage)</code> instead.
*/
@Deprecated
public static int getType(IStorage storage) {
- return fFileContentManager.getType(storage);
+ return fFileContentManager.getType(storage);
}
/**
@@ -179,19 +179,19 @@ public final class Team {
/**
- * Return all known file types.
+ * Return all known file types.
*
* @return all known file types
- * @deprecated Use <code>getFileContentManager().getExtensionMappings()</code> instead.
+ * @deprecated Use <code>getFileContentManager().getExtensionMappings()</code> instead.
*/
@Deprecated
public static IFileTypeInfo[] getAllTypes() {
- final IStringMapping [] mappings= fFileContentManager.getExtensionMappings();
- final IFileTypeInfo [] infos= new IFileTypeInfo[mappings.length];
- for (int i = 0; i < infos.length; i++) {
- infos[i]= new StringMappingWrapper(mappings[i]);
- }
- return infos;
+ final IStringMapping [] mappings= fFileContentManager.getExtensionMappings();
+ final IFileTypeInfo [] infos= new IFileTypeInfo[mappings.length];
+ for (int i = 0; i < infos.length; i++) {
+ infos[i]= new StringMappingWrapper(mappings[i]);
+ }
+ return infos;
}
/**
@@ -262,8 +262,8 @@ public final class Team {
/**
- * Set the file type for the give extensions. This
- * will replace the existing file types with this new list.
+ * Set the file type for the give extensions. This
+ * will replace the existing file types with this new list.
*
* Valid types are:
* Team.TEXT
@@ -272,12 +272,12 @@ public final class Team {
*
* @param extensions the file extensions
* @param types the file types
- *
- * @deprecated Use <code>getFileContentManager().setExtensionMappings()</code> instead.
+ *
+ * @deprecated Use <code>getFileContentManager().setExtensionMappings()</code> instead.
*/
@Deprecated
public static void setAllTypes(String[] extensions, int[] types) {
- fFileContentManager.addExtensionMappings(extensions, types);
+ fFileContentManager.addExtensionMappings(extensions, types);
}
/**
@@ -529,40 +529,40 @@ public final class Team {
}
/**
- * TODO: change to file content manager
+ * TODO: change to file content manager
* Return the default file type bindings
* (i.e. those that are specified in
* plugin manifests).
* @return the default file type bindings
* @since 3.0
- * @deprecated Use Team.getFileContentManager().getDefaultExtensionMappings() instead.
+ * @deprecated Use Team.getFileContentManager().getDefaultExtensionMappings() instead.
*/
@Deprecated
public static IFileTypeInfo[] getDefaultTypes() {
- return asFileTypeInfo(getFileContentManager().getDefaultExtensionMappings());
+ return asFileTypeInfo(getFileContentManager().getDefaultExtensionMappings());
}
- private static IFileTypeInfo [] asFileTypeInfo(IStringMapping [] mappings) {
- final IFileTypeInfo [] infos= new IFileTypeInfo[mappings.length];
- for (int i = 0; i < infos.length; i++) {
- infos[i]= new StringMappingWrapper(mappings[i]);
- }
- return infos;
- }
-
- /**
- * Get the file content manager which implements the API for manipulating the mappings between
- * file names, file extensions and content types.
- *
- * @return an instance of IFileContentManager
- *
- * @see IFileContentManager
- *
- * @since 3.1
- */
- public static IFileContentManager getFileContentManager() {
- return fFileContentManager;
- }
+ private static IFileTypeInfo [] asFileTypeInfo(IStringMapping [] mappings) {
+ final IFileTypeInfo [] infos= new IFileTypeInfo[mappings.length];
+ for (int i = 0; i < infos.length; i++) {
+ infos[i]= new StringMappingWrapper(mappings[i]);
+ }
+ return infos;
+ }
+
+ /**
+ * Get the file content manager which implements the API for manipulating the mappings between
+ * file names, file extensions and content types.
+ *
+ * @return an instance of IFileContentManager
+ *
+ * @see IFileContentManager
+ *
+ * @since 3.1
+ */
+ public static IFileContentManager getFileContentManager() {
+ return fFileContentManager;
+ }
/**
* Creates a storage merger for the given content type.
@@ -574,9 +574,9 @@ public final class Team {
*
* @since 3.4
*/
- public static IStorageMerger createMerger(IContentType type) {
- return StorageMergerRegistry.getInstance().createStreamMerger(type);
- }
+ public static IStorageMerger createMerger(IContentType type) {
+ return StorageMergerRegistry.getInstance().createStreamMerger(type);
+ }
/**
* Creates a storage merger for the given file extension.
@@ -588,9 +588,9 @@ public final class Team {
*
* @since 3.4
*/
- public static IStorageMerger createMerger(String extension) {
- return StorageMergerRegistry.getInstance().createStreamMerger(extension);
- }
+ public static IStorageMerger createMerger(String extension) {
+ return StorageMergerRegistry.getInstance().createStreamMerger(extension);
+ }
/**
* Creates a storage merger for the given content type.
@@ -602,10 +602,10 @@ public final class Team {
* @deprecated Use {@link #createMerger(IContentType)} instead.
* @since 3.2
*/
- @Deprecated
+ @Deprecated
public IStorageMerger createStorageMerger(IContentType type) {
- return createMerger(type);
- }
+ return createMerger(type);
+ }
/**
* Creates a storage merger for the given file extension.
@@ -617,10 +617,10 @@ public final class Team {
* @deprecated Use {@link #createMerger(String)} instead.
* @since 3.2
*/
- @Deprecated
+ @Deprecated
public IStorageMerger createStorageMerger(String extension) {
- return createMerger(extension);
- }
+ return createMerger(extension);
+ }
/**
* Returns the available bundle importers.
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/TeamException.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/TeamException.java
index 1a9cb6870..d97a47cb6 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/TeamException.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/TeamException.java
@@ -32,10 +32,10 @@ import org.eclipse.team.internal.core.TeamPlugin;
*/
public class TeamException extends CoreException {
- // Field required to avoid compiler warning
+ // Field required to avoid compiler warning
private static final long serialVersionUID = 1L;
- // The operation completed successfully.
+ // The operation completed successfully.
public static final int OK = 0;
// The operation failed because the resource is not checked-in.
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/history/IFileRevision.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/history/IFileRevision.java
index a4bdf84c3..80fcc52ea 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/history/IFileRevision.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/history/IFileRevision.java
@@ -102,8 +102,8 @@ public interface IFileRevision {
* Returns the branches names of file revision.
*
* @return an array of ITag's if branch names exist for this revision
- * or an empty ITag array if no names exist
- * @since 3.6
+ * or an empty ITag array if no names exist
+ * @since 3.6
*/
public ITag[] getBranches();
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/IResourceMappingMerger.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/IResourceMappingMerger.java
index 36a95954f..1180d7bdf 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/IResourceMappingMerger.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/IResourceMappingMerger.java
@@ -49,7 +49,7 @@ import org.eclipse.core.runtime.jobs.ISchedulingRule;
*/
public interface IResourceMappingMerger {
- /**
+ /**
* Attempt to automatically merge the mappings of the merge context(<code>MergeContext#getMappings()</code>).
* The merge context provides access to the out-of-sync resources (<code>MergeContext#getSyncInfoTree()</code>)
* associated with the mappings to be merged. The set of provided mappings
@@ -86,48 +86,48 @@ public interface IResourceMappingMerger {
* <code>MergeStatus#getConflictingMappings()</code>
* @throws CoreException if errors occurred
*/
- public IStatus merge(IMergeContext mergeContext,
- IProgressMonitor monitor) throws CoreException;
+ public IStatus merge(IMergeContext mergeContext,
+ IProgressMonitor monitor) throws CoreException;
- /**
- * Return the scheduling rule that is required to merge
- * all the changes that apply to this merger in the given
- * context. When calling {@link #merge(IMergeContext, IProgressMonitor)},
- * clients must ensure that they either have obtained
- * a rule that covers the rule returned by this method or
- * they must not hold any rule.
- * @param context the context that contains the changes to be merged
- * @return the scheduling rule required by this merger to merge all
- * the changes in the given context belonging to the merger's
- * model provider.
- */
- public ISchedulingRule getMergeRule(IMergeContext context);
+ /**
+ * Return the scheduling rule that is required to merge
+ * all the changes that apply to this merger in the given
+ * context. When calling {@link #merge(IMergeContext, IProgressMonitor)},
+ * clients must ensure that they either have obtained
+ * a rule that covers the rule returned by this method or
+ * they must not hold any rule.
+ * @param context the context that contains the changes to be merged
+ * @return the scheduling rule required by this merger to merge all
+ * the changes in the given context belonging to the merger's
+ * model provider.
+ */
+ public ISchedulingRule getMergeRule(IMergeContext context);
- /**
- * Validate an auto-merge for the given context. This
- * method must be invoked for all mergers involved
- * in the merge before the auto-merge is attempted.
- * The purpose of the validation is to indicate whether there
- * are conditions in the merge context that make an auto-merge
- * undesirable. The purpose is not to indicate that conflicts
- * exist (this is done by the <code>merge</code> method) but instead
- * to indicate that the nature of one of more incoming changes
- * is such that performing an auto-merge may be undesirable.
- * <p>
- * Clients should validate before performing the merge and, if
- * any of the returned status are not OK, should prompt the
- * user to make them aware of the potential side effects.
- * The user may still decide to attempt an auto-merge, in which case
- * the client may still invoke the <code>merge</code> method.
- *
+ /**
+ * Validate an auto-merge for the given context. This
+ * method must be invoked for all mergers involved
+ * in the merge before the auto-merge is attempted.
+ * The purpose of the validation is to indicate whether there
+ * are conditions in the merge context that make an auto-merge
+ * undesirable. The purpose is not to indicate that conflicts
+ * exist (this is done by the <code>merge</code> method) but instead
+ * to indicate that the nature of one of more incoming changes
+ * is such that performing an auto-merge may be undesirable.
+ * <p>
+ * Clients should validate before performing the merge and, if
+ * any of the returned status are not OK, should prompt the
+ * user to make them aware of the potential side effects.
+ * The user may still decide to attempt an auto-merge, in which case
+ * the client may still invoke the <code>merge</code> method.
+ *
* @param mergeContext a context that provides access to the resources
* involved in the merge. The context must not be
* <code>null</code>.
* @param monitor a progress monitor
- * @return a status indicating any potential side effects of
- * performing an auto-merge.
- */
- public IStatus validateMerge(IMergeContext mergeContext,
- IProgressMonitor monitor);
+ * @return a status indicating any potential side effects of
+ * performing an auto-merge.
+ */
+ public IStatus validateMerge(IMergeContext mergeContext,
+ IProgressMonitor monitor);
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/IStorageMerger.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/IStorageMerger.java
index 5fcbdd1c0..53d3327ab 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/IStorageMerger.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/IStorageMerger.java
@@ -33,46 +33,46 @@ import org.eclipse.core.runtime.IStatus;
*/
public interface IStorageMerger {
- /**
- * Indicates the successful completion of the merge operation (value <code>IStatus.OK</code>)
- */
- public static final int OK= IStatus.OK;
+ /**
+ * Indicates the successful completion of the merge operation (value <code>IStatus.OK</code>)
+ */
+ public static final int OK= IStatus.OK;
- /**
- * Indicates that a change conflict prevented the merge from successful completion (value <code>1</code>)
- */
- public static final int CONFLICT= 1;
+ /**
+ * Indicates that a change conflict prevented the merge from successful completion (value <code>1</code>)
+ */
+ public static final int CONFLICT= 1;
- /**
- * Status code describing an internal error (value <code>2</code>)
- */
- public static final int INTERNAL_ERROR= 2;
+ /**
+ * Status code describing an internal error (value <code>2</code>)
+ */
+ public static final int INTERNAL_ERROR= 2;
- /**
- * Indicates that at least one of the encodings associated with the input was unsupported (value <code>3</code>)
- */
- public static final int UNSUPPORTED_ENCODING= 3;
+ /**
+ * Indicates that at least one of the encodings associated with the input was unsupported (value <code>3</code>)
+ */
+ public static final int UNSUPPORTED_ENCODING= 3;
- /**
- * Performs a merge operation on the given storage instances and writes the merge result to the output stream.
- * On success a status <code>IStatus.OK</code> is returned, on error a status <code>IStatus.ERROR</code>.
- * If the merge operation cannot deal with conflicts, the code of the error status has the value <code>IStreamMerger.CONFLICT</code>.
- * For text oriented mergers the encoding for the input and output is honored if they implement
- * {@link IEncodedStorage}.
- * It is the responsibility of callers to close the output stream.
- * <p>
- * The provided ancestor may be <code>null</code> if this merger
- * returns <code>true</code> from {@link #canMergeWithoutAncestor()}.
- *
- * @param output the byte stream to which the merge result is written; the merger will not close the stream
- * @param outputEncoding the encoding to use when writing to the output stream
- * @param ancestor the storage from which the common ancestor is read
- * @param target the storage containing the target of the merge
- * @param other the storage containing the target of the merge
- * @param monitor reports progress of the merge operation
- * @return returns the completion status of the operation
- * @throws CoreException if an error occurs
- */
+ /**
+ * Performs a merge operation on the given storage instances and writes the merge result to the output stream.
+ * On success a status <code>IStatus.OK</code> is returned, on error a status <code>IStatus.ERROR</code>.
+ * If the merge operation cannot deal with conflicts, the code of the error status has the value <code>IStreamMerger.CONFLICT</code>.
+ * For text oriented mergers the encoding for the input and output is honored if they implement
+ * {@link IEncodedStorage}.
+ * It is the responsibility of callers to close the output stream.
+ * <p>
+ * The provided ancestor may be <code>null</code> if this merger
+ * returns <code>true</code> from {@link #canMergeWithoutAncestor()}.
+ *
+ * @param output the byte stream to which the merge result is written; the merger will not close the stream
+ * @param outputEncoding the encoding to use when writing to the output stream
+ * @param ancestor the storage from which the common ancestor is read
+ * @param target the storage containing the target of the merge
+ * @param other the storage containing the target of the merge
+ * @param monitor reports progress of the merge operation
+ * @return returns the completion status of the operation
+ * @throws CoreException if an error occurs
+ */
IStatus merge(OutputStream output, String outputEncoding,
IStorage ancestor, IStorage target, IStorage other,
IProgressMonitor monitor) throws CoreException;
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/ResourceMappingMerger.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/ResourceMappingMerger.java
index 37ef3cbcd..b3c994661 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/ResourceMappingMerger.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/ResourceMappingMerger.java
@@ -61,10 +61,10 @@ public abstract class ResourceMappingMerger implements IResourceMappingMerger {
* changes in the context for the model provider of this merger.
* By default, return a rule that covers all the projects for the mappings
* that belong to the model provider of this merger.
- * @param context the context that contains the changes to be merged
- * @return the scheduling rule required by this merger to merge all
- * the changes in the given context belonging to the merger's
- * model provider.
+ * @param context the context that contains the changes to be merged
+ * @return the scheduling rule required by this merger to merge all
+ * the changes in the given context belonging to the merger's
+ * model provider.
* @see org.eclipse.team.core.mapping.IResourceMappingMerger#getMergeRule(org.eclipse.team.core.mapping.IMergeContext)
*/
@Override
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/provider/MergeContext.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/provider/MergeContext.java
index f30286846..5a29fe4ea 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/provider/MergeContext.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/provider/MergeContext.java
@@ -79,11 +79,11 @@ public abstract class MergeContext extends SynchronizationContext implements IMe
* @param type the type of synchronization (ONE_WAY or TWO_WAY)
* @param deltaTree the sync info tree that contains all out-of-sync resources
*/
- protected MergeContext(ISynchronizationScopeManager manager, int type, IResourceDiffTree deltaTree) {
- super(manager, type, deltaTree);
- }
+ protected MergeContext(ISynchronizationScopeManager manager, int type, IResourceDiffTree deltaTree) {
+ super(manager, type, deltaTree);
+ }
- @Override
+ @Override
public void reject(final IDiff[] diffs, IProgressMonitor monitor) throws CoreException {
run(monitor1 -> {
for (int i = 0; i < diffs.length; i++) {
@@ -91,9 +91,9 @@ public abstract class MergeContext extends SynchronizationContext implements IMe
reject(node, monitor1);
}
}, getMergeRule(diffs), IResource.NONE, monitor);
- }
+ }
- @Override
+ @Override
public void markAsMerged(final IDiff[] nodes, final boolean inSyncHint, IProgressMonitor monitor) throws CoreException {
run(monitor1 -> {
for (int i = 0; i < nodes.length; i++) {
@@ -101,9 +101,9 @@ public abstract class MergeContext extends SynchronizationContext implements IMe
markAsMerged(node, inSyncHint, monitor1);
}
}, getMergeRule(nodes), IResource.NONE, monitor);
- }
+ }
- @Override
+ @Override
public IStatus merge(final IDiff[] deltas, final boolean force, IProgressMonitor monitor) throws CoreException {
final List<IFile> failedFiles = new ArrayList<>();
run(monitor1 -> {
@@ -129,7 +129,7 @@ public abstract class MergeContext extends SynchronizationContext implements IMe
} else {
return new MergeStatus(TeamPlugin.ID, Messages.MergeContext_0, failedFiles.toArray(new IFile[failedFiles.size()]));
}
- }
+ }
@Override
public IStatus merge(IDiff diff, boolean ignoreLocalChanges, IProgressMonitor monitor) throws CoreException {
@@ -156,30 +156,30 @@ public abstract class MergeContext extends SynchronizationContext implements IMe
}
return Status.OK_STATUS;
}
- if (diff instanceof IThreeWayDiff && !ignoreLocalChanges && getMergeType() == THREE_WAY) {
+ if (diff instanceof IThreeWayDiff && !ignoreLocalChanges && getMergeType() == THREE_WAY) {
IThreeWayDiff twDelta = (IThreeWayDiff) diff;
- int direction = twDelta.getDirection();
- if (direction == IThreeWayDiff.OUTGOING) {
- // There's nothing to do so return OK
- return Status.OK_STATUS;
- }
- if (direction == IThreeWayDiff.INCOMING) {
- // Just copy the stream since there are no conflicts
- performReplace(diff, monitor);
- return Status.OK_STATUS;
- }
+ int direction = twDelta.getDirection();
+ if (direction == IThreeWayDiff.OUTGOING) {
+ // There's nothing to do so return OK
+ return Status.OK_STATUS;
+ }
+ if (direction == IThreeWayDiff.INCOMING) {
+ // Just copy the stream since there are no conflicts
+ performReplace(diff, monitor);
+ return Status.OK_STATUS;
+ }
// direction == SyncInfo.CONFLICTING
- int type = twDelta.getKind();
- if (type == IDiff.REMOVE) {
- makeInSync(diff, monitor);
- return Status.OK_STATUS;
- }
+ int type = twDelta.getKind();
+ if (type == IDiff.REMOVE) {
+ makeInSync(diff, monitor);
+ return Status.OK_STATUS;
+ }
// type == SyncInfo.CHANGE
IResourceDiff remoteChange = (IResourceDiff)twDelta.getRemoteChange();
IFileRevision remote = null;
- if (remoteChange != null) {
- remote = remoteChange.getAfterState();
- }
+ if (remoteChange != null) {
+ remote = remoteChange.getAfterState();
+ }
if (remote == null || !getLocalFile(diff).exists()) {
// Nothing we can do so return a conflict status
// TODO: Should we handle the case where the local and remote have the same contents for a conflicting addition?
@@ -187,11 +187,11 @@ public abstract class MergeContext extends SynchronizationContext implements IMe
}
// We have a conflict, a local, base and remote so we can do
// a three-way merge
- return performThreeWayMerge(twDelta, monitor);
- } else {
- performReplace(diff, monitor);
- return Status.OK_STATUS;
- }
+ return performThreeWayMerge(twDelta, monitor);
+ } else {
+ performReplace(diff, monitor);
+ return Status.OK_STATUS;
+ }
}
@@ -236,70 +236,70 @@ public abstract class MergeContext extends SynchronizationContext implements IMe
status = new MergeStatus(status.getPlugin(), status.getMessage(), new IFile[]{file});
}
result[0] = status;
- } finally {
- disposeTempOutputStream(file, os);
- }
- monitor1.done();
+ } finally {
+ disposeTempOutputStream(file, os);
+ }
+ monitor1.done();
}, getMergeRule(diff), IWorkspace.AVOID_UPDATE, monitor);
return result[0];
}
- private void disposeTempOutputStream(IFile file, OutputStream output) {
- if (output instanceof ByteArrayOutputStream)
- return;
- // We created a temporary file so we need to clean it up
- try {
- // First make sure the output stream is closed
- // so that file deletion will not fail because of that.
- if (output != null)
- output.close();
- } catch (IOException e) {
- // Ignore
- }
- File tmpFile = getTempFile(file);
- if (tmpFile.exists())
- tmpFile.delete();
- }
+ private void disposeTempOutputStream(IFile file, OutputStream output) {
+ if (output instanceof ByteArrayOutputStream)
+ return;
+ // We created a temporary file so we need to clean it up
+ try {
+ // First make sure the output stream is closed
+ // so that file deletion will not fail because of that.
+ if (output != null)
+ output.close();
+ } catch (IOException e) {
+ // Ignore
+ }
+ File tmpFile = getTempFile(file);
+ if (tmpFile.exists())
+ tmpFile.delete();
+ }
- private OutputStream getTempOutputStream(IFile file) throws CoreException {
- File tmpFile = getTempFile(file);
- if (tmpFile.exists())
- tmpFile.delete();
- File parent = tmpFile.getParentFile();
- if (!parent.exists())
- parent.mkdirs();
- try {
- return new BufferedOutputStream(new FileOutputStream(tmpFile));
- } catch (FileNotFoundException e) {
- TeamPlugin.log(IStatus.ERROR, NLS.bind("Could not open temporary file {0} for writing: {1}", new String[] { tmpFile.getAbsolutePath(), e.getMessage() }), e); //$NON-NLS-1$
- return new ByteArrayOutputStream();
- }
- }
+ private OutputStream getTempOutputStream(IFile file) throws CoreException {
+ File tmpFile = getTempFile(file);
+ if (tmpFile.exists())
+ tmpFile.delete();
+ File parent = tmpFile.getParentFile();
+ if (!parent.exists())
+ parent.mkdirs();
+ try {
+ return new BufferedOutputStream(new FileOutputStream(tmpFile));
+ } catch (FileNotFoundException e) {
+ TeamPlugin.log(IStatus.ERROR, NLS.bind("Could not open temporary file {0} for writing: {1}", new String[] { tmpFile.getAbsolutePath(), e.getMessage() }), e); //$NON-NLS-1$
+ return new ByteArrayOutputStream();
+ }
+ }
- private InputStream getTempInputStream(IFile file, OutputStream output) throws CoreException {
- if (output instanceof ByteArrayOutputStream) {
- ByteArrayOutputStream baos = (ByteArrayOutputStream) output;
- return new ByteArrayInputStream(baos.toByteArray());
- }
- // We created a temporary file so we need to open an input stream on it
- try {
- // First make sure the output stream is closed
- if (output != null)
- output.close();
- } catch (IOException e) {
- // Ignore
- }
- File tmpFile = getTempFile(file);
- try {
- return new BufferedInputStream(new FileInputStream(tmpFile));
- } catch (FileNotFoundException e) {
- throw new CoreException(new Status(IStatus.ERROR, TeamPlugin.ID, IMergeStatus.INTERNAL_ERROR, NLS.bind(Messages.MergeContext_4, new String[] { tmpFile.getAbsolutePath(), e.getMessage() }), e));
- }
- }
+ private InputStream getTempInputStream(IFile file, OutputStream output) throws CoreException {
+ if (output instanceof ByteArrayOutputStream) {
+ ByteArrayOutputStream baos = (ByteArrayOutputStream) output;
+ return new ByteArrayInputStream(baos.toByteArray());
+ }
+ // We created a temporary file so we need to open an input stream on it
+ try {
+ // First make sure the output stream is closed
+ if (output != null)
+ output.close();
+ } catch (IOException e) {
+ // Ignore
+ }
+ File tmpFile = getTempFile(file);
+ try {
+ return new BufferedInputStream(new FileInputStream(tmpFile));
+ } catch (FileNotFoundException e) {
+ throw new CoreException(new Status(IStatus.ERROR, TeamPlugin.ID, IMergeStatus.INTERNAL_ERROR, NLS.bind(Messages.MergeContext_4, new String[] { tmpFile.getAbsolutePath(), e.getMessage() }), e));
+ }
+ }
- private File getTempFile(IFile file) {
- return TeamPlugin.getPlugin().getStateLocation().append(".tmp").append(file.getName() + ".tmp").toFile(); //$NON-NLS-1$ //$NON-NLS-2$
- }
+ private File getTempFile(IFile file) {
+ return TeamPlugin.getPlugin().getStateLocation().append(".tmp").append(file.getName() + ".tmp").toFile(); //$NON-NLS-1$ //$NON-NLS-2$
+ }
private IFile getLocalFile(IDiff delta) {
return ResourcesPlugin.getWorkspace().getRoot().getFile(delta.getPath());
@@ -321,31 +321,31 @@ public abstract class MergeContext extends SynchronizationContext implements IMe
* a progress monitor
* @throws CoreException
*/
- protected void performReplace(final IDiff diff, IProgressMonitor monitor) throws CoreException {
- IResourceDiff d;
- IFile file = getLocalFile(diff);
- IFileRevision remote = null;
- if (diff instanceof IResourceDiff) {
- d = (IResourceDiff) diff;
- remote = d.getAfterState();
- } else {
- d = (IResourceDiff)((IThreeWayDiff)diff).getRemoteChange();
- if (d != null)
- remote = d.getAfterState();
- }
- if (d == null) {
- d = (IResourceDiff)((IThreeWayDiff)diff).getLocalChange();
- if (d != null)
- remote = d.getBeforeState();
- }
+ protected void performReplace(final IDiff diff, IProgressMonitor monitor) throws CoreException {
+ IResourceDiff d;
+ IFile file = getLocalFile(diff);
+ IFileRevision remote = null;
+ if (diff instanceof IResourceDiff) {
+ d = (IResourceDiff) diff;
+ remote = d.getAfterState();
+ } else {
+ d = (IResourceDiff)((IThreeWayDiff)diff).getRemoteChange();
+ if (d != null)
+ remote = d.getAfterState();
+ }
+ if (d == null) {
+ d = (IResourceDiff)((IThreeWayDiff)diff).getLocalChange();
+ if (d != null)
+ remote = d.getBeforeState();
+ }
- // Only perform the replace if a local or remote change was found
- if (d != null) {
- performReplace(diff, file, remote, monitor);
- }
+ // Only perform the replace if a local or remote change was found
+ if (d != null) {
+ performReplace(diff, file, remote, monitor);
+ }
}
- /**
+ /**
* Method that is invoked from
* {@link #performReplace(IDiff, IProgressMonitor)} after the local has been
* changed to match the remote. Subclasses may override
@@ -361,7 +361,7 @@ public abstract class MergeContext extends SynchronizationContext implements IMe
* a progress monitor
* @throws CoreException
*/
- protected abstract void makeInSync(IDiff diff, IProgressMonitor monitor) throws CoreException;
+ protected abstract void makeInSync(IDiff diff, IProgressMonitor monitor) throws CoreException;
private void performReplace(final IDiff diff, final IFile file, final IFileRevision remote, IProgressMonitor monitor) throws CoreException {
run(monitor1 -> {
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/provider/MergeStatus.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/provider/MergeStatus.java
index cf272544a..675fbd21c 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/provider/MergeStatus.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/provider/MergeStatus.java
@@ -34,40 +34,40 @@ import org.eclipse.team.core.mapping.IMergeStatus;
*/
public class MergeStatus extends Status implements IMergeStatus {
- private ResourceMapping[] conflictingMappings;
+ private ResourceMapping[] conflictingMappings;
private IFile[] conflictingFiles;
- /**
- * Create a merge status for reporting that some of the resource mappings
- * for which a merge was attempted were not auto-mergable.
- * @param pluginId the plugin id
- * @param message the message for the status
- * @param conflictingMappings the mappings which were not auto-mergable
- */
- public MergeStatus(String pluginId, String message, ResourceMapping[] conflictingMappings) {
- super(IStatus.ERROR, pluginId, CONFLICTS, message, null);
- this.conflictingMappings = conflictingMappings;
- }
+ /**
+ * Create a merge status for reporting that some of the resource mappings
+ * for which a merge was attempted were not auto-mergable.
+ * @param pluginId the plugin id
+ * @param message the message for the status
+ * @param conflictingMappings the mappings which were not auto-mergable
+ */
+ public MergeStatus(String pluginId, String message, ResourceMapping[] conflictingMappings) {
+ super(IStatus.ERROR, pluginId, CONFLICTS, message, null);
+ this.conflictingMappings = conflictingMappings;
+ }
- /**
- * Create a merge status for reporting that some of the files
- * for which a merge was attempted were not auto-mergable.
- * @param pluginId the plugin id
- * @param message the message for the status
- * @param files the files which were not auto-mergable
- */
- public MergeStatus(String pluginId, String message, IFile[] files) {
- super(IStatus.ERROR, pluginId, CONFLICTS, message, null);
- this.conflictingFiles = files;
+ /**
+ * Create a merge status for reporting that some of the files
+ * for which a merge was attempted were not auto-mergable.
+ * @param pluginId the plugin id
+ * @param message the message for the status
+ * @param files the files which were not auto-mergable
+ */
+ public MergeStatus(String pluginId, String message, IFile[] files) {
+ super(IStatus.ERROR, pluginId, CONFLICTS, message, null);
+ this.conflictingFiles = files;
}
- @Override
+ @Override
public ResourceMapping[] getConflictingMappings() {
- return conflictingMappings;
- }
+ return conflictingMappings;
+ }
- @Override
+ @Override
public IFile[] getConflictingFiles() {
- return conflictingFiles;
- }
+ return conflictingFiles;
+ }
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/provider/SynchronizationContext.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/provider/SynchronizationContext.java
index 75708813d..89349c548 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/provider/SynchronizationContext.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/mapping/provider/SynchronizationContext.java
@@ -36,22 +36,22 @@ import org.eclipse.team.internal.core.Policy;
*/
public abstract class SynchronizationContext extends PlatformObject implements ISynchronizationContext {
- private final int type;
- private final IResourceDiffTree diffTree;
- private Cache cache;
+ private final int type;
+ private final IResourceDiffTree diffTree;
+ private Cache cache;
private final ISynchronizationScopeManager manager;
- /**
- * Create a synchronization context.
- * @param manager the manager that defines the scope of the synchronization
- * @param type the type of synchronization (ONE_WAY or TWO_WAY)
- * @param diffTree the sync info tree that contains all out-of-sync resources
- */
- protected SynchronizationContext(ISynchronizationScopeManager manager, int type, IResourceDiffTree diffTree) {
- this.manager = manager;
+ /**
+ * Create a synchronization context.
+ * @param manager the manager that defines the scope of the synchronization
+ * @param type the type of synchronization (ONE_WAY or TWO_WAY)
+ * @param diffTree the sync info tree that contains all out-of-sync resources
+ */
+ protected SynchronizationContext(ISynchronizationScopeManager manager, int type, IResourceDiffTree diffTree) {
+ this.manager = manager;
this.type = type;
this.diffTree = diffTree;
- }
+ }
@Override
public ISynchronizationScope getScope() {
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SubscriberResourceMappingContext.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SubscriberResourceMappingContext.java
index 3df0805ad..b1f3d8817 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SubscriberResourceMappingContext.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/subscribers/SubscriberResourceMappingContext.java
@@ -45,126 +45,126 @@ import org.eclipse.team.internal.core.TeamPlugin;
*/
public class SubscriberResourceMappingContext extends RemoteResourceMappingContext {
- private final Subscriber subscriber;
+ private final Subscriber subscriber;
- // Lists used to keep track of resources that have been refreshed
- private Set<IResource> shallowRefresh = new HashSet<>();
- private Set<IResource> deepRefresh = new HashSet<>();
- private boolean autoRefresh;
+ // Lists used to keep track of resources that have been refreshed
+ private Set<IResource> shallowRefresh = new HashSet<>();
+ private Set<IResource> deepRefresh = new HashSet<>();
+ private boolean autoRefresh;
- /**
- * Return a resource mapping context suitable for comparison operations.
- * Comparisons require that any out-of-sync resources have contents
- * that differ.
- * @param subscriber the subscriber
- * @return a resource mapping context suitable for compare operations
- */
- public static RemoteResourceMappingContext createContext(Subscriber subscriber) {
- return new SubscriberResourceMappingContext(subscriber, true);
- }
+ /**
+ * Return a resource mapping context suitable for comparison operations.
+ * Comparisons require that any out-of-sync resources have contents
+ * that differ.
+ * @param subscriber the subscriber
+ * @return a resource mapping context suitable for compare operations
+ */
+ public static RemoteResourceMappingContext createContext(Subscriber subscriber) {
+ return new SubscriberResourceMappingContext(subscriber, true);
+ }
- /**
- * Create a resource mapping context for the given subscriber
- * @param subscriber the subscriber
- * from the local contents
- * @param autoRefresh whether the context should auto-refresh when queried
- */
- public SubscriberResourceMappingContext(Subscriber subscriber, boolean autoRefresh) {
- this.subscriber = subscriber;
- this.autoRefresh = autoRefresh;
- }
+ /**
+ * Create a resource mapping context for the given subscriber
+ * @param subscriber the subscriber
+ * from the local contents
+ * @param autoRefresh whether the context should auto-refresh when queried
+ */
+ public SubscriberResourceMappingContext(Subscriber subscriber, boolean autoRefresh) {
+ this.subscriber = subscriber;
+ this.autoRefresh = autoRefresh;
+ }
- @Override
+ @Override
public final boolean hasRemoteChange(IResource resource, IProgressMonitor monitor) throws CoreException {
- try {
+ try {
monitor.beginTask(null, 100);
ensureRefreshed(resource, IResource.DEPTH_ONE, NONE, monitor);
SyncInfo syncInfo = subscriber.getSyncInfo(resource);
validateRemote(resource, syncInfo);
- if (syncInfo == null) return false;
- int direction = SyncInfo.getDirection(syncInfo.getKind());
+ if (syncInfo == null) return false;
+ int direction = SyncInfo.getDirection(syncInfo.getKind());
return direction == SyncInfo.INCOMING || direction == SyncInfo.CONFLICTING;
} finally {
monitor.done();
}
- }
+ }
- @Override
+ @Override
public boolean hasLocalChange(IResource resource, IProgressMonitor monitor) throws CoreException {
- SyncInfo syncInfo = subscriber.getSyncInfo(resource);
- if (syncInfo == null) return false;
- int direction = SyncInfo.getDirection(syncInfo.getKind());
+ SyncInfo syncInfo = subscriber.getSyncInfo(resource);
+ if (syncInfo == null) return false;
+ int direction = SyncInfo.getDirection(syncInfo.getKind());
return direction == SyncInfo.OUTGOING || direction == SyncInfo.CONFLICTING;
- }
+ }
- @Override
+ @Override
public final IStorage fetchRemoteContents(IFile file, IProgressMonitor monitor) throws CoreException {
- try {
+ try {
monitor.beginTask(null, 100);
- ensureRefreshed(file, IResource.DEPTH_ZERO, FILE_CONTENTS_REQUIRED, Policy.subMonitorFor(monitor, 10));
- SyncInfo syncInfo = subscriber.getSyncInfo(file);
- IResourceVariant remote = validateRemote(file, syncInfo);
- if (remote == null) {
- return null;
- }
- return remote.getStorage(Policy.subMonitorFor(monitor, 90));
+ ensureRefreshed(file, IResource.DEPTH_ZERO, FILE_CONTENTS_REQUIRED, Policy.subMonitorFor(monitor, 10));
+ SyncInfo syncInfo = subscriber.getSyncInfo(file);
+ IResourceVariant remote = validateRemote(file, syncInfo);
+ if (remote == null) {
+ return null;
+ }
+ return remote.getStorage(Policy.subMonitorFor(monitor, 90));
} finally {
monitor.done();
}
- }
+ }
- @Override
+ @Override
public final IStorage fetchBaseContents(IFile file, IProgressMonitor monitor) throws CoreException {
- try {
+ try {
monitor.beginTask(null, 100);
- ensureRefreshed(file, IResource.DEPTH_ZERO, FILE_CONTENTS_REQUIRED, Policy.subMonitorFor(monitor, 10));
- SyncInfo syncInfo = subscriber.getSyncInfo(file);
- IResourceVariant base = validateBase(file, syncInfo);
- if (base == null) {
- return null;
- }
- return base.getStorage(Policy.subMonitorFor(monitor, 90));
+ ensureRefreshed(file, IResource.DEPTH_ZERO, FILE_CONTENTS_REQUIRED, Policy.subMonitorFor(monitor, 10));
+ SyncInfo syncInfo = subscriber.getSyncInfo(file);
+ IResourceVariant base = validateBase(file, syncInfo);
+ if (base == null) {
+ return null;
+ }
+ return base.getStorage(Policy.subMonitorFor(monitor, 90));
} finally {
monitor.done();
}
- }
+ }
- @Override
+ @Override
public final IResource[] fetchMembers(IContainer container, IProgressMonitor monitor) throws CoreException {
- try {
+ try {
monitor.beginTask(null, 100);
- ensureRefreshed(container, IResource.DEPTH_ONE, NONE, Policy.subMonitorFor(monitor, 100));
- SyncInfo syncInfo = subscriber.getSyncInfo(container);
- if (validateRemote(container, syncInfo) == null) {
- // There is no remote so return an empty array
- return new IResource[0];
- }
- return subscriber.members(container);
+ ensureRefreshed(container, IResource.DEPTH_ONE, NONE, Policy.subMonitorFor(monitor, 100));
+ SyncInfo syncInfo = subscriber.getSyncInfo(container);
+ if (validateRemote(container, syncInfo) == null) {
+ // There is no remote so return an empty array
+ return new IResource[0];
+ }
+ return subscriber.members(container);
} finally {
monitor.done();
}
- }
+ }
- @Override
+ @Override
public final void refresh(ResourceTraversal[] traversals, int flags, IProgressMonitor monitor) throws CoreException {
- subscriber.refresh(traversals, monitor);
- for (int i = 0; i < traversals.length; i++) {
+ subscriber.refresh(traversals, monitor);
+ for (int i = 0; i < traversals.length; i++) {
ResourceTraversal traversal = traversals[i];
refreshed(traversal.getResources(), traversal.getDepth());
}
- }
+ }
- /**
- * Refresh the subscriber and cache the fact that the resources were refreshed by
- * calling the <code>refreshed</code> method. The default implementation only refreshes
- * the state and does not fetch contents in the <code>FILE_CONTENTS_REQUIRED</code>
- * flag is passed. It is up to subclass to handle this.
- * @param resources the resources to be refreshed
- * @param depth the depth of the refresh
- * @param flags the flags that indicate extra state that should be fetched
- * @param monitor a progress monitor
- * @throws TeamException
- */
+ /**
+ * Refresh the subscriber and cache the fact that the resources were refreshed by
+ * calling the <code>refreshed</code> method. The default implementation only refreshes
+ * the state and does not fetch contents in the <code>FILE_CONTENTS_REQUIRED</code>
+ * flag is passed. It is up to subclass to handle this.
+ * @param resources the resources to be refreshed
+ * @param depth the depth of the refresh
+ * @param flags the flags that indicate extra state that should be fetched
+ * @param monitor a progress monitor
+ * @throws TeamException
+ */
protected void refresh(IResource[] resources, int depth, int flags, IProgressMonitor monitor) throws TeamException {
subscriber.refresh(resources, depth, monitor);
refreshed(resources, depth);
@@ -189,32 +189,32 @@ public class SubscriberResourceMappingContext extends RemoteResourceMappingConte
}
}
- /*
- * Ensure that the given resource has been refreshed to the specified depth
- * since the context has been created.
- */
- private void ensureRefreshed(IResource resource, int depth, int flags, IProgressMonitor monitor) throws TeamException {
- if (autoRefresh) {
- if (depth == IResource.DEPTH_INFINITE) {
- // If the resource or a parent was refreshed deeply, no need to do it again
- if (wasRefreshedDeeply(resource))
- return;
- // if the resource is a file, a shallow refresh is enough
- if (resource.getType() == IResource.FILE && wasRefreshedShallow(resource))
- return;
- } else {
- if (wasRefreshedShallow(resource))
- return;
- }
- refresh(new IResource[] { resource }, depth, flags, monitor);
- }
+ /*
+ * Ensure that the given resource has been refreshed to the specified depth
+ * since the context has been created.
+ */
+ private void ensureRefreshed(IResource resource, int depth, int flags, IProgressMonitor monitor) throws TeamException {
+ if (autoRefresh) {
+ if (depth == IResource.DEPTH_INFINITE) {
+ // If the resource or a parent was refreshed deeply, no need to do it again
+ if (wasRefreshedDeeply(resource))
+ return;
+ // if the resource is a file, a shallow refresh is enough
+ if (resource.getType() == IResource.FILE && wasRefreshedShallow(resource))
+ return;
+ } else {
+ if (wasRefreshedShallow(resource))
+ return;
+ }
+ refresh(new IResource[] { resource }, depth, flags, monitor);
+ }
}
- /*
- * Look for a shallow refresh of the resource. If not there,
- * look fir a deep refresh of a parent or a shallow refresh of the
- * direct parent if the resource is a file.
- */
+ /*
+ * Look for a shallow refresh of the resource. If not there,
+ * look fir a deep refresh of a parent or a shallow refresh of the
+ * direct parent if the resource is a file.
+ */
private boolean wasRefreshedShallow(IResource resource) {
if (shallowRefresh.contains(resource))
return true;
@@ -240,45 +240,45 @@ public class SubscriberResourceMappingContext extends RemoteResourceMappingConte
* Validate that the remote resource is of the proper type and return the
* remote resource if it is OK. A return of null indicates that there is no remote.
*/
- private IResourceVariant validateRemote(IResource resource, SyncInfo syncInfo) throws CoreException {
- if (syncInfo == null) return null;
- IResourceVariant remote = syncInfo.getRemote();
- if (remote == null) return null;
- return validateRemote(resource, remote);
- }
+ private IResourceVariant validateRemote(IResource resource, SyncInfo syncInfo) throws CoreException {
+ if (syncInfo == null) return null;
+ IResourceVariant remote = syncInfo.getRemote();
+ if (remote == null) return null;
+ return validateRemote(resource, remote);
+ }
private IResourceVariant validateRemote(IResource resource, IResourceVariant remote) throws CoreException {
boolean containerExpected = resource.getType() != IResource.FILE;
- if (remote.isContainer() && !containerExpected) {
- throw new CoreException(new Status(IStatus.ERROR, TeamPlugin.ID, IResourceStatus.RESOURCE_WRONG_TYPE, Messages.SubscriberResourceMappingContext_0 + resource.getFullPath().toString(), null));
- } else if (!remote.isContainer() && containerExpected) {
- throw new CoreException(new Status(IStatus.ERROR, TeamPlugin.ID, IResourceStatus.RESOURCE_WRONG_TYPE, Messages.SubscriberResourceMappingContext_1 + resource.getFullPath().toString(), null));
- }
- return remote;
+ if (remote.isContainer() && !containerExpected) {
+ throw new CoreException(new Status(IStatus.ERROR, TeamPlugin.ID, IResourceStatus.RESOURCE_WRONG_TYPE, Messages.SubscriberResourceMappingContext_0 + resource.getFullPath().toString(), null));
+ } else if (!remote.isContainer() && containerExpected) {
+ throw new CoreException(new Status(IStatus.ERROR, TeamPlugin.ID, IResourceStatus.RESOURCE_WRONG_TYPE, Messages.SubscriberResourceMappingContext_1 + resource.getFullPath().toString(), null));
+ }
+ return remote;
}
/*
* Validate that the base resource is of the proper type and return the
* base resource if it is OK. A return of null indicates that there is no base.
*/
- private IResourceVariant validateBase(IResource resource, SyncInfo syncInfo) throws CoreException {
- if (syncInfo == null) return null;
- IResourceVariant base = syncInfo.getBase();
- if (base == null) return null;
- return validateRemote(resource, base);
- }
+ private IResourceVariant validateBase(IResource resource, SyncInfo syncInfo) throws CoreException {
+ if (syncInfo == null) return null;
+ IResourceVariant base = syncInfo.getBase();
+ if (base == null) return null;
+ return validateRemote(resource, base);
+ }
- /**
- * Set whether the context should refresh the state of resources
- * when their state is requested. The context keeps track of what
- * resources were refreshed and only auto-refreshes a resource
- * once.
- * @param autoRefresh whether the context should refresh the state of resources
- * when their state is requested
- */
- public void setAutoRefresh(boolean autoRefresh) {
- this.autoRefresh = autoRefresh;
- }
+ /**
+ * Set whether the context should refresh the state of resources
+ * when their state is requested. The context keeps track of what
+ * resources were refreshed and only auto-refreshes a resource
+ * once.
+ * @param autoRefresh whether the context should refresh the state of resources
+ * when their state is requested
+ */
+ public void setAutoRefresh(boolean autoRefresh) {
+ this.autoRefresh = autoRefresh;
+ }
@Override
public boolean isThreeWay() {
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfo.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfo.java
index 91103b8c6..5e5ae3c40 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfo.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfo.java
@@ -148,20 +148,20 @@ public class SyncInfo implements IAdaptable {
/*====================================================================
* Members:
*====================================================================*/
- private IResource local;
- private IResourceVariant base;
- private IResourceVariant remote;
- private IResourceVariantComparator comparator;
-
- private int syncKind;
-
- /**
- * Construct a sync info object.
- * @param local the local resource. Must be non-null but may not exist.
- * @param base the base resource variant or <code>null</code>
- * @param remote the remote resource variant or <code>null</code>
- * @param comparator the comparator used to determine if resources differ
- */
+ private IResource local;
+ private IResourceVariant base;
+ private IResourceVariant remote;
+ private IResourceVariantComparator comparator;
+
+ private int syncKind;
+
+ /**
+ * Construct a sync info object.
+ * @param local the local resource. Must be non-null but may not exist.
+ * @param base the base resource variant or <code>null</code>
+ * @param remote the remote resource variant or <code>null</code>
+ * @param comparator the comparator used to determine if resources differ
+ */
public SyncInfo(IResource local, IResourceVariant base, IResourceVariant remote, IResourceVariantComparator comparator) {
Assert.isNotNull(local);
Assert.isNotNull(comparator);
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfoSet.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfoSet.java
index cd6b35f63..beb723704 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfoSet.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/core/synchronize/SyncInfoSet.java
@@ -667,14 +667,14 @@ public class SyncInfoSet {
return errors.values().toArray(new ITeamStatus[errors.size()]);
}
- /**
- * Return an iterator over all <code>SyncInfo</code>
- * contained in this set.
- * @return an iterator over all <code>SyncInfo</code>
- * contained in this set.
- * @since 3.1
- */
- public Iterator iterator() {
- return resources.values().iterator();
- }
+ /**
+ * Return an iterator over all <code>SyncInfo</code>
+ * contained in this set.
+ * @return an iterator over all <code>SyncInfo</code>
+ * contained in this set.
+ * @since 3.1
+ */
+ public Iterator iterator() {
+ return resources.values().iterator();
+ }
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/BackgroundEventHandler.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/BackgroundEventHandler.java
index f1f2fbc29..0b6b9a1c8 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/BackgroundEventHandler.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/BackgroundEventHandler.java
@@ -101,7 +101,7 @@ public abstract class BackgroundEventHandler {
* General event class. The type is specific to subclasses.
*/
public static class Event {
- private int type;
+ private int type;
public Event(int type) {
this.type = type;
}
@@ -116,7 +116,7 @@ public abstract class BackgroundEventHandler {
return buffer.toString();
}
public IResource getResource() {
- return null;
+ return null;
}
protected String getTypeString() {
return String.valueOf(type);
@@ -130,7 +130,7 @@ public abstract class BackgroundEventHandler {
private IResource resource;
private int depth;
public ResourceEvent(IResource resource, int type, int depth) {
- super(type);
+ super(type);
this.resource = resource;
this.depth = depth;
}
@@ -249,14 +249,14 @@ public abstract class BackgroundEventHandler {
/**
* Return the family that the background job for this
* event handler belongs to.
- * @return the family that the background job for this
+ * @return the family that the background job for this
* event handler belongs to
- */
- protected Object getJobFamiliy() {
- return null;
- }
+ */
+ protected Object getJobFamiliy() {
+ return null;
+ }
- /**
+ /**
* This method is invoked when the processing job completes. The
* default behavior of the handler is to restart the job if the queue
* is no longer empty and to clear the queue if the handler was shut down.
@@ -467,28 +467,28 @@ public abstract class BackgroundEventHandler {
return WAIT_DELAY;
}
- /**
+ /**
* Return the value that is used to determine how often
* the events are dispatched (i.e. how often the UI is
* updated) for the first 3 cycles. The default value is 1.5 seconds.
* After the first 3 cycles, a longer delay is used
- * @return the dispatch delay used for the first 3 cycles.
- */
- protected long getShortDispatchDelay() {
- return DISPATCH_DELAY;
- }
+ * @return the dispatch delay used for the first 3 cycles.
+ */
+ protected long getShortDispatchDelay() {
+ return DISPATCH_DELAY;
+ }
/**
* Return the value that is used to determine how often
* the events are dispatched (i.e. how often the UI is
* updated) after the first 3 cycles. The default value is 10 seconds.
- * @return the dispatch delay used after the first 3 cycles.
- */
- protected long getLongDispatchDelay() {
- return LONG_DISPATCH_DELAY;
- }
+ * @return the dispatch delay used after the first 3 cycles.
+ */
+ protected long getLongDispatchDelay() {
+ return LONG_DISPATCH_DELAY;
+ }
- /**
+ /**
* Handle the exception by recording it in the errors list.
* @param e
*/
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultFileModificationValidator.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultFileModificationValidator.java
index 37f0f525b..a01b75680 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultFileModificationValidator.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/DefaultFileModificationValidator.java
@@ -49,22 +49,22 @@ public class DefaultFileModificationValidator extends FileModificationValidator
@Override
public IStatus validateEdit(IFile[] files, FileModificationValidationContext context) {
- IFile[] readOnlyFiles = getReadOnly(files);
- if (readOnlyFiles.length == 0)
- return Status.OK_STATUS;
- synchronized (this) {
- if (uiValidator == null)
- uiValidator = loadUIValidator();
- }
- if (uiValidator != null) {
- return uiValidator.validateEdit(files, context);
- }
- // There was no plugged in validator so fail gracefully
+ IFile[] readOnlyFiles = getReadOnly(files);
+ if (readOnlyFiles.length == 0)
+ return Status.OK_STATUS;
+ synchronized (this) {
+ if (uiValidator == null)
+ uiValidator = loadUIValidator();
+ }
+ if (uiValidator != null) {
+ return uiValidator.validateEdit(files, context);
+ }
+ // There was no plugged in validator so fail gracefully
return getStatus(files);
}
- protected IStatus getStatus(IFile[] files) {
- if (files.length == 1) {
+ protected IStatus getStatus(IFile[] files) {
+ if (files.length == 1) {
return getDefaultStatus(files[0]);
}
@@ -83,51 +83,51 @@ public class DefaultFileModificationValidator extends FileModificationValidator
? Messages.ok
: Messages.FileModificationValidator_someReadOnly,
null);
- }
+ }
- private IFile[] getReadOnly(IFile[] files) {
- List<IFile> result = new ArrayList<>(files.length);
- for (int i = 0; i < files.length; i++) {
- IFile file = files[i];
- if (file.isReadOnly()) {
- result.add(file);
- }
- }
- return result.toArray(new IFile[result.size()]);
- }
+ private IFile[] getReadOnly(IFile[] files) {
+ List<IFile> result = new ArrayList<>(files.length);
+ for (int i = 0; i < files.length; i++) {
+ IFile file = files[i];
+ if (file.isReadOnly()) {
+ result.add(file);
+ }
+ }
+ return result.toArray(new IFile[result.size()]);
+ }
@Override
public IStatus validateSave(IFile file) {
- if (!file.isReadOnly())
- return Status.OK_STATUS;
- synchronized (this) {
- if (uiValidator == null)
- uiValidator = loadUIValidator();
- }
- if (uiValidator != null) {
- return uiValidator.validateSave(file);
- }
+ if (!file.isReadOnly())
+ return Status.OK_STATUS;
+ synchronized (this) {
+ if (uiValidator == null)
+ uiValidator = loadUIValidator();
+ }
+ if (uiValidator != null) {
+ return uiValidator.validateSave(file);
+ }
return getDefaultStatus(file);
}
- private FileModificationValidator loadUIValidator() {
- IExtensionPoint extension = Platform.getExtensionRegistry().getExtensionPoint(TeamPlugin.ID, TeamPlugin.DEFAULT_FILE_MODIFICATION_VALIDATOR_EXTENSION);
+ private FileModificationValidator loadUIValidator() {
+ IExtensionPoint extension = Platform.getExtensionRegistry().getExtensionPoint(TeamPlugin.ID, TeamPlugin.DEFAULT_FILE_MODIFICATION_VALIDATOR_EXTENSION);
if (extension != null) {
IExtension[] extensions = extension.getExtensions();
if (extensions.length > 0) {
IConfigurationElement[] configElements = extensions[0].getConfigurationElements();
if (configElements.length > 0) {
try {
- Object o = configElements[0].createExecutableExtension("class"); //$NON-NLS-1$
- if (o instanceof FileModificationValidator) {
- return (FileModificationValidator)o;
- }
- } catch (CoreException e) {
- TeamPlugin.log(e);
- }
+ Object o = configElements[0].createExecutableExtension("class"); //$NON-NLS-1$
+ if (o instanceof FileModificationValidator) {
+ return (FileModificationValidator)o;
+ }
+ } catch (CoreException e) {
+ TeamPlugin.log(e);
+ }
}
}
}
return null;
- }
+ }
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/ExceptionCollector.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/ExceptionCollector.java
index d2e177404..8c956d1a9 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/ExceptionCollector.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/ExceptionCollector.java
@@ -94,19 +94,19 @@ public class ExceptionCollector {
* @param exception the exception to collect
*/
public void handleException(CoreException exception) {
- // log the exception if we have a log
- if(log != null) {
- log.log(new Status(severity, pluginId, 0, message, exception));
- }
- // Record each status individually to flatten the resulting multi-status
- IStatus exceptionStatus = exception.getStatus();
- // Wrap the exception so the stack trace is not lost.
- IStatus status = new Status(exceptionStatus.getSeverity(), exceptionStatus.getPlugin(), exceptionStatus.getCode(), exceptionStatus.getMessage(), exception);
- recordStatus(status);
+ // log the exception if we have a log
+ if(log != null) {
+ log.log(new Status(severity, pluginId, 0, message, exception));
+ }
+ // Record each status individually to flatten the resulting multi-status
+ IStatus exceptionStatus = exception.getStatus();
+ // Wrap the exception so the stack trace is not lost.
+ IStatus status = new Status(exceptionStatus.getSeverity(), exceptionStatus.getPlugin(), exceptionStatus.getCode(), exceptionStatus.getMessage(), exception);
+ recordStatus(status);
IStatus[] children = status.getChildren();
for (int i = 0; i < children.length; i++) {
IStatus status2 = children[i];
- recordStatus(status2);
+ recordStatus(status2);
}
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileContentManager.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileContentManager.java
index 2ef473292..4c7dd374f 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileContentManager.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileContentManager.java
@@ -40,236 +40,236 @@ import org.eclipse.team.core.Team;
*/
public class FileContentManager implements IFileContentManager {
- private static final String PREF_TEAM_EXTENSION_TYPES= "file_types"; //$NON-NLS-1$
- private static final String PREF_TEAM_FILENAME_TYPES= "cvs_mode_for_file_without_extensions"; //$NON-NLS-1$
+ private static final String PREF_TEAM_EXTENSION_TYPES= "file_types"; //$NON-NLS-1$
+ private static final String PREF_TEAM_FILENAME_TYPES= "cvs_mode_for_file_without_extensions"; //$NON-NLS-1$
- private static class StringMapping implements IStringMapping {
+ private static class StringMapping implements IStringMapping {
- private final String fString;
- private final int fType;
+ private final String fString;
+ private final int fType;
- public StringMapping(String string, int type) {
- fString= string;
- fType= type;
- }
+ public StringMapping(String string, int type) {
+ fString= string;
+ fType= type;
+ }
- @Override
+ @Override
public String getString() {
- return fString;
- }
+ return fString;
+ }
- @Override
+ @Override
public int getType() {
- return fType;
- }
- }
+ return fType;
+ }
+ }
- private static class UserExtensionMappings extends UserStringMappings {
+ private static class UserExtensionMappings extends UserStringMappings {
- public UserExtensionMappings(String key) {
- super(key);
- }
+ public UserExtensionMappings(String key) {
+ super(key);
+ }
- @Override
+ @Override
protected Map<String, Integer> loadMappingsFromPreferences() {
- final Map<String, Integer> result= super.loadMappingsFromPreferences();
- if (loadMappingsFromOldWorkspace(result)) {
- TeamPlugin.getPlugin().savePluginPreferences();
- }
- return result;
- }
-
- /**
- * If the workspace is an old 2.0 one, read the old file and delete it.
- *
- * @param A map where the new mappings should be added.
- *
- * @return true if the workspace was a 2.0 one and the old mappings have
- * been added to the map, false otherwise.
- *
- */
- private boolean loadMappingsFromOldWorkspace(Map<String, Integer> map) {
- // File name of the persisted file type information
- String STATE_FILE = ".fileTypes"; //$NON-NLS-1$
- IPath pluginStateLocation = TeamPlugin.getPlugin().getStateLocation().append(STATE_FILE);
- File f = pluginStateLocation.toFile();
-
- if (!f.exists())
- return false;
-
- try {
- DataInputStream input = new DataInputStream(new FileInputStream(f));
- try {
- map.putAll(readOldFormatExtensionMappings(input));
- } finally {
- input.close();
- f.delete();
- }
- } catch (IOException ex) {
- TeamPlugin.log(IStatus.ERROR, ex.getMessage(), ex);
- return false;
- }
- return true;
- }
-
- /**
- * Read the saved file type state from the given input stream.
- *
- * @param input the input stream to read the saved state from
- * @throws IOException if an I/O problem occurs
- */
- private Map<String, Integer> readOldFormatExtensionMappings(DataInputStream input) throws IOException {
- final Map<String, Integer> result= new TreeMap<>();
- int numberOfMappings = 0;
- try {
- numberOfMappings = input.readInt();
- } catch (EOFException e) {
- // Ignore the exception, it will occur if there are no
- // patterns stored in the state file.
- return Collections.emptyMap();
- }
- for (int i = 0; i < numberOfMappings; i++) {
- final String extension = input.readUTF();
- final int type = input.readInt();
- result.put(extension, Integer.valueOf(type));
- }
- return result;
- }
- }
-
- private final UserStringMappings fUserExtensionMappings, fUserNameMappings;
- private PluginStringMappings fPluginExtensionMappings;//, fPluginNameMappings;
- private IContentType textContentType;
-
- public FileContentManager() {
- fUserExtensionMappings= new UserExtensionMappings(PREF_TEAM_EXTENSION_TYPES);
- fUserNameMappings= new UserStringMappings(PREF_TEAM_FILENAME_TYPES);
- fPluginExtensionMappings= new PluginStringMappings(TeamPlugin.FILE_TYPES_EXTENSION, "extension"); //$NON-NLS-1$
- }
-
- @Override
+ final Map<String, Integer> result= super.loadMappingsFromPreferences();
+ if (loadMappingsFromOldWorkspace(result)) {
+ TeamPlugin.getPlugin().savePluginPreferences();
+ }
+ return result;
+ }
+
+ /**
+ * If the workspace is an old 2.0 one, read the old file and delete it.
+ *
+ * @param A map where the new mappings should be added.
+ *
+ * @return true if the workspace was a 2.0 one and the old mappings have
+ * been added to the map, false otherwise.
+ *
+ */
+ private boolean loadMappingsFromOldWorkspace(Map<String, Integer> map) {
+ // File name of the persisted file type information
+ String STATE_FILE = ".fileTypes"; //$NON-NLS-1$
+ IPath pluginStateLocation = TeamPlugin.getPlugin().getStateLocation().append(STATE_FILE);
+ File f = pluginStateLocation.toFile();
+
+ if (!f.exists())
+ return false;
+
+ try {
+ DataInputStream input = new DataInputStream(new FileInputStream(f));
+ try {
+ map.putAll(readOldFormatExtensionMappings(input));
+ } finally {
+ input.close();
+ f.delete();
+ }
+ } catch (IOException ex) {
+ TeamPlugin.log(IStatus.ERROR, ex.getMessage(), ex);
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Read the saved file type state from the given input stream.
+ *
+ * @param input the input stream to read the saved state from
+ * @throws IOException if an I/O problem occurs
+ */
+ private Map<String, Integer> readOldFormatExtensionMappings(DataInputStream input) throws IOException {
+ final Map<String, Integer> result= new TreeMap<>();
+ int numberOfMappings = 0;
+ try {
+ numberOfMappings = input.readInt();
+ } catch (EOFException e) {
+ // Ignore the exception, it will occur if there are no
+ // patterns stored in the state file.
+ return Collections.emptyMap();
+ }
+ for (int i = 0; i < numberOfMappings; i++) {
+ final String extension = input.readUTF();
+ final int type = input.readInt();
+ result.put(extension, Integer.valueOf(type));
+ }
+ return result;
+ }
+ }
+
+ private final UserStringMappings fUserExtensionMappings, fUserNameMappings;
+ private PluginStringMappings fPluginExtensionMappings;//, fPluginNameMappings;
+ private IContentType textContentType;
+
+ public FileContentManager() {
+ fUserExtensionMappings= new UserExtensionMappings(PREF_TEAM_EXTENSION_TYPES);
+ fUserNameMappings= new UserStringMappings(PREF_TEAM_FILENAME_TYPES);
+ fPluginExtensionMappings= new PluginStringMappings(TeamPlugin.FILE_TYPES_EXTENSION, "extension"); //$NON-NLS-1$
+ }
+
+ @Override
public int getTypeForName(String filename) {
- final int userType= fUserNameMappings.getType(filename);
+ final int userType= fUserNameMappings.getType(filename);
// final int pluginType= fPluginNameMappings.getType(filename);
// return userType != Team.UNKNOWN ? userType : pluginType;
- return userType;
- }
+ return userType;
+ }
- @Override
+ @Override
public int getTypeForExtension(String extension) {
- final int userType= fUserExtensionMappings.getType(extension);
- final int pluginType= fPluginExtensionMappings.getType(extension);
- return userType != Team.UNKNOWN ? userType : pluginType;
- }
+ final int userType= fUserExtensionMappings.getType(extension);
+ final int pluginType= fPluginExtensionMappings.getType(extension);
+ return userType != Team.UNKNOWN ? userType : pluginType;
+ }
- @Override
+ @Override
public void addNameMappings(String[] names, int [] types) {
- fUserNameMappings.addStringMappings(names, types);
- }
+ fUserNameMappings.addStringMappings(names, types);
+ }
- @Override
+ @Override
public void addExtensionMappings(String[] extensions, int [] types) {
- fUserExtensionMappings.addStringMappings(extensions, types);
- }
+ fUserExtensionMappings.addStringMappings(extensions, types);
+ }
- @Override
+ @Override
public void setNameMappings(String[] names, int [] types) {
- fUserNameMappings.setStringMappings(names, types);
- }
+ fUserNameMappings.setStringMappings(names, types);
+ }
- @Override
+ @Override
public void setExtensionMappings(String[] extensions, int [] types) {
- fUserExtensionMappings.setStringMappings(extensions, types);
- }
+ fUserExtensionMappings.setStringMappings(extensions, types);
+ }
- @Override
+ @Override
public IStringMapping[] getNameMappings() {
- return getMappings(fUserNameMappings, null);//fPluginNameMappings);
- }
+ return getMappings(fUserNameMappings, null);//fPluginNameMappings);
+ }
- @Override
+ @Override
public IStringMapping[] getExtensionMappings() {
- return getMappings(fUserExtensionMappings, fPluginExtensionMappings);
- }
+ return getMappings(fUserExtensionMappings, fPluginExtensionMappings);
+ }
- @Override
+ @Override
public int getType(IStorage storage) {
- int type;
-
- final String name= storage.getName();
- if (name != null && (type= getTypeForName(name)) != Team.UNKNOWN)
- return type;
-
- final String extension= getFileExtension(name);
- if (extension != null && (type= getTypeForExtension(extension)) != Team.UNKNOWN)
- return type;
-
- IContentType contentType = Platform.getContentTypeManager().findContentTypeFor(name);
- if (contentType != null) {
- IContentType textType = getTextContentType();
- if (contentType.isKindOf(textType)) {
- return Team.TEXT;
- }
- }
-
- return Team.UNKNOWN;
- }
-
- private IContentType getTextContentType() {
- if (textContentType == null)
- textContentType = Platform.getContentTypeManager().getContentType(IContentTypeManager.CT_TEXT);
- return textContentType;
- }
-
- @Override
+ int type;
+
+ final String name= storage.getName();
+ if (name != null && (type= getTypeForName(name)) != Team.UNKNOWN)
+ return type;
+
+ final String extension= getFileExtension(name);
+ if (extension != null && (type= getTypeForExtension(extension)) != Team.UNKNOWN)
+ return type;
+
+ IContentType contentType = Platform.getContentTypeManager().findContentTypeFor(name);
+ if (contentType != null) {
+ IContentType textType = getTextContentType();
+ if (contentType.isKindOf(textType)) {
+ return Team.TEXT;
+ }
+ }
+
+ return Team.UNKNOWN;
+ }
+
+ private IContentType getTextContentType() {
+ if (textContentType == null)
+ textContentType = Platform.getContentTypeManager().getContentType(IContentTypeManager.CT_TEXT);
+ return textContentType;
+ }
+
+ @Override
public IStringMapping[] getDefaultNameMappings() {
- // TODO: There is currently no extension point for this
- return new IStringMapping[0];//getStringMappings(fPluginNameMappings.referenceMap());
- }
+ // TODO: There is currently no extension point for this
+ return new IStringMapping[0];//getStringMappings(fPluginNameMappings.referenceMap());
+ }
- @Override
+ @Override
public IStringMapping[] getDefaultExtensionMappings() {
- return getStringMappings(fPluginExtensionMappings.referenceMap());
- }
+ return getStringMappings(fPluginExtensionMappings.referenceMap());
+ }
- @Override
+ @Override
public boolean isKnownExtension(String extension) {
- return fUserExtensionMappings.referenceMap().containsKey(extension)
- || fPluginExtensionMappings.referenceMap().containsKey(extension);
- }
+ return fUserExtensionMappings.referenceMap().containsKey(extension)
+ || fPluginExtensionMappings.referenceMap().containsKey(extension);
+ }
- @Override
+ @Override
public boolean isKnownFilename(String filename) {
- return fUserNameMappings.referenceMap().containsKey(filename);
+ return fUserNameMappings.referenceMap().containsKey(filename);
// || fPluginNameMappings.referenceMap().containsKey(filename);
- }
-
- private static String getFileExtension(String name) {
- if (name == null)
- return null;
- int index = name.lastIndexOf('.');
- if (index == -1)
- return null;
- if (index == (name.length() - 1))
- return ""; //$NON-NLS-1$
- return name.substring(index + 1);
- }
-
- private static IStringMapping [] getStringMappings(Map map) {
- final IStringMapping [] result= new IStringMapping [map.size()];
- int index= 0;
- for (final Iterator iter = map.entrySet().iterator(); iter.hasNext();) {
- final Map.Entry entry= (Map.Entry)iter.next();
- result[index++]= new StringMapping((String)entry.getKey(), ((Integer)entry.getValue()).intValue());
- }
- return result;
- }
-
- private IStringMapping [] getMappings(UserStringMappings userMappings, PluginStringMappings pluginMappings) {
- final Map<String, Integer> mappings= new HashMap<>();
- if (pluginMappings != null)
- mappings.putAll(pluginMappings.referenceMap());
- mappings.putAll(userMappings.referenceMap());
- return getStringMappings(mappings);
- }
+ }
+
+ private static String getFileExtension(String name) {
+ if (name == null)
+ return null;
+ int index = name.lastIndexOf('.');
+ if (index == -1)
+ return null;
+ if (index == (name.length() - 1))
+ return ""; //$NON-NLS-1$
+ return name.substring(index + 1);
+ }
+
+ private static IStringMapping [] getStringMappings(Map map) {
+ final IStringMapping [] result= new IStringMapping [map.size()];
+ int index= 0;
+ for (final Iterator iter = map.entrySet().iterator(); iter.hasNext();) {
+ final Map.Entry entry= (Map.Entry)iter.next();
+ result[index++]= new StringMapping((String)entry.getKey(), ((Integer)entry.getValue()).intValue());
+ }
+ return result;
+ }
+
+ private IStringMapping [] getMappings(UserStringMappings userMappings, PluginStringMappings pluginMappings) {
+ final Map<String, Integer> mappings= new HashMap<>();
+ if (pluginMappings != null)
+ mappings.putAll(pluginMappings.referenceMap());
+ mappings.putAll(userMappings.referenceMap());
+ return getStringMappings(mappings);
+ }
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileModificationValidatorManager.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileModificationValidatorManager.java
index e00379ea3..c8dc7055e 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileModificationValidatorManager.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/FileModificationValidatorManager.java
@@ -102,9 +102,9 @@ public class FileModificationValidatorManager extends FileModificationValidator
}
private synchronized FileModificationValidator getDefaultValidator() {
- if (defaultValidator == null) {
- defaultValidator = new DefaultFileModificationValidator();
- }
- return defaultValidator;
+ if (defaultValidator == null) {
+ defaultValidator = new DefaultFileModificationValidator();
+ }
+ return defaultValidator;
}
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Messages.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Messages.java
index fc01b4197..66017dc2a 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Messages.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/Messages.java
@@ -27,7 +27,7 @@ public class Messages extends NLS {
public static String ok;
public static String concatStrings;
- public static String AbstractResourceVariantTree_0;
+ public static String AbstractResourceVariantTree_0;
public static String Assert_assertionFailed;
@@ -44,7 +44,7 @@ public class Messages extends NLS {
public static String RepositoryProvider_linkedURIsNotSupported;
public static String RepositoryProvider_couldNotClearAfterError;
public static String RepositoryProvider_invalidClass;
- public static String RepositoryProvider_toString;
+ public static String RepositoryProvider_toString;
public static String SubscriberDiffTreeEventHandler_0;
@@ -99,15 +99,15 @@ public class Messages extends NLS {
public static String ProjectSetCapability_0;
public static String ProjectSetCapability_1;
- public static String SubscriberResourceMappingContext_0;
- public static String SubscriberResourceMappingContext_1;
+ public static String SubscriberResourceMappingContext_0;
+ public static String SubscriberResourceMappingContext_1;
public static String MergeContext_0;
public static String MergeContext_1;
public static String MergeContext_2;
public static String MergeContext_3;
public static String MergeContext_4;
- public static String LocalFileRevision_currentVersion;
+ public static String LocalFileRevision_currentVersion;
public static String LocalFileRevision_currentVersionTag;
public static String LocalFileRevision_localRevisionTag;
static {
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/PluginStringMappings.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/PluginStringMappings.java
index 3197bdc6e..8193e6ae4 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/PluginStringMappings.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/PluginStringMappings.java
@@ -29,63 +29,63 @@ import org.eclipse.team.core.Team;
*/
public class PluginStringMappings {
- private final String fExtensionID;
- private final String fAttributeName;
-
- private SortedMap<String, Integer> fMappings;
-
- public PluginStringMappings(String extensionID, String stringAttributeName) {
- fExtensionID= extensionID;
- fAttributeName= stringAttributeName;
- }
-
- /**
- * Load all the extension patterns contributed by plugins.
- * @return a map with the patterns
- */
- private SortedMap<String, Integer> loadPluginPatterns() {
-
- final SortedMap<String, Integer> result= new TreeMap<>();
-
- final TeamPlugin plugin = TeamPlugin.getPlugin();
- if (plugin == null)
- return result;
-
- final IExtensionPoint extension = Platform.getExtensionRegistry().getExtensionPoint(TeamPlugin.ID, fExtensionID);//TeamPlugin.FILE_TYPES_EXTENSION);
- if (extension == null)
- return result;
-
- final IExtension[] extensions = extension.getExtensions();
-
- for (int i = 0; i < extensions.length; i++) {
- IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
-
- for (int j = 0; j < configElements.length; j++) {
-
- final String ext = configElements[j].getAttribute(fAttributeName);//"extension");
- final String type = configElements[j].getAttribute("type"); //$NON-NLS-1$
- if (ext == null || type == null)
- continue;
-
- if (type.equals("text")) { //$NON-NLS-1$
- result.put(ext, Integer.valueOf(Team.TEXT));
- } else if (type.equals("binary")) { //$NON-NLS-1$
- result.put(ext, Integer.valueOf(Team.BINARY));
- }
- }
- }
- return result;
- }
-
- public Map<String, Integer> referenceMap() {
- if (fMappings == null) {
- fMappings= loadPluginPatterns();
- }
- return fMappings;
- }
-
- public int getType(String filename) {
- final Map<String, Integer> mappings= referenceMap();
- return mappings.containsKey(filename) ? mappings.get(filename).intValue() : Team.UNKNOWN;
- }
+ private final String fExtensionID;
+ private final String fAttributeName;
+
+ private SortedMap<String, Integer> fMappings;
+
+ public PluginStringMappings(String extensionID, String stringAttributeName) {
+ fExtensionID= extensionID;
+ fAttributeName= stringAttributeName;
+ }
+
+ /**
+ * Load all the extension patterns contributed by plugins.
+ * @return a map with the patterns
+ */
+ private SortedMap<String, Integer> loadPluginPatterns() {
+
+ final SortedMap<String, Integer> result= new TreeMap<>();
+
+ final TeamPlugin plugin = TeamPlugin.getPlugin();
+ if (plugin == null)
+ return result;
+
+ final IExtensionPoint extension = Platform.getExtensionRegistry().getExtensionPoint(TeamPlugin.ID, fExtensionID);//TeamPlugin.FILE_TYPES_EXTENSION);
+ if (extension == null)
+ return result;
+
+ final IExtension[] extensions = extension.getExtensions();
+
+ for (int i = 0; i < extensions.length; i++) {
+ IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+
+ for (int j = 0; j < configElements.length; j++) {
+
+ final String ext = configElements[j].getAttribute(fAttributeName);//"extension");
+ final String type = configElements[j].getAttribute("type"); //$NON-NLS-1$
+ if (ext == null || type == null)
+ continue;
+
+ if (type.equals("text")) { //$NON-NLS-1$
+ result.put(ext, Integer.valueOf(Team.TEXT));
+ } else if (type.equals("binary")) { //$NON-NLS-1$
+ result.put(ext, Integer.valueOf(Team.BINARY));
+ }
+ }
+ }
+ return result;
+ }
+
+ public Map<String, Integer> referenceMap() {
+ if (fMappings == null) {
+ fMappings= loadPluginPatterns();
+ }
+ return fMappings;
+ }
+
+ public int getType(String filename) {
+ final Map<String, Integer> mappings= referenceMap();
+ return mappings.containsKey(filename) ? mappings.get(filename).intValue() : Team.UNKNOWN;
+ }
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/ResourceVariantCache.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/ResourceVariantCache.java
index c1702941c..ba1bf5be1 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/ResourceVariantCache.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/ResourceVariantCache.java
@@ -100,8 +100,8 @@ public class ResourceVariantCache {
public static synchronized void shutdown() {
String[] keys = caches.keySet().toArray(new String[caches.size()]);
- for (int i = 0; i < keys.length; i++) {
- String id = keys[i];
+ for (int i = 0; i < keys.length; i++) {
+ String id = keys[i];
disableCache(id);
}
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/StorageMergerRegistry.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/StorageMergerRegistry.java
index 27f3f40f1..4c6095879 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/StorageMergerRegistry.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/StorageMergerRegistry.java
@@ -97,11 +97,11 @@ public class StorageMergerRegistry {
// collect all IStreamMergers
IConfigurationElement[] elements= registry.getConfigurationElementsFor(TeamPlugin.ID, STORAGE_MERGER_EXTENSION_POINT);
for (int i= 0; i < elements.length; i++) {
- IConfigurationElement element= elements[i];
- if (STORAGE_MERGER.equals(element.getName()))
- register(element, new StorageMergerDescriptor(element));
- else if (CONTENT_TYPE_BINDING.equals(element.getName()))
- createBinding(element, STORAGE_MERGER_ID_ATTRIBUTE);
+ IConfigurationElement element= elements[i];
+ if (STORAGE_MERGER.equals(element.getName()))
+ register(element, new StorageMergerDescriptor(element));
+ else if (CONTENT_TYPE_BINDING.equals(element.getName()))
+ createBinding(element, STORAGE_MERGER_ID_ATTRIBUTE);
}
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamPlugin.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamPlugin.java
index 82f2e7d8c..b2b22a7e7 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamPlugin.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/TeamPlugin.java
@@ -77,9 +77,9 @@ final public class TeamPlugin extends Plugin {
// The id of the default file modification validator extension point
public static final String DEFAULT_FILE_MODIFICATION_VALIDATOR_EXTENSION = "defaultFileModificationValidator"; //$NON-NLS-1$
- // The id used to associate a provider with a project
- public final static QualifiedName PROVIDER_PROP_KEY =
- new QualifiedName("org.eclipse.team.core", "repository"); //$NON-NLS-1$ //$NON-NLS-2$
+ // The id used to associate a provider with a project
+ public final static QualifiedName PROVIDER_PROP_KEY =
+ new QualifiedName("org.eclipse.team.core", "repository"); //$NON-NLS-1$ //$NON-NLS-2$
// The id for the Bundle Import extension point
public static final String EXTENSION_POINT_BUNDLE_IMPORTERS = ID + ".bundleImporters"; //$NON-NLS-1$
@@ -187,13 +187,13 @@ final public class TeamPlugin extends Plugin {
for (int i = 0; i < extensions.length; i++) {
IConfigurationElement [] configElements = extensions[i].getConfigurationElements();
for (int j = 0; j < configElements.length; j++) {
- String aliasId = configElements[j].getAttribute("canImportId"); //$NON-NLS-1$
- if (aliasId != null && aliasId.equals(id)) {
+ String aliasId = configElements[j].getAttribute("canImportId"); //$NON-NLS-1$
+ if (aliasId != null && aliasId.equals(id)) {
String extensionId = configElements[j].getAttribute("id"); //$NON-NLS-1$
if (extensionId != null) {
return RepositoryProviderType.getProviderType(extensionId);
}
- }
+ }
}
}
}
@@ -208,11 +208,11 @@ final public class TeamPlugin extends Plugin {
IConfigurationElement [] configElements = extensions[i].getConfigurationElements();
for (int j = 0; j < configElements.length; j++) {
String extensionId = configElements[j].getAttribute("id"); //$NON-NLS-1$
- String metaFilePaths = configElements[j].getAttribute("metaFilePaths"); //$NON-NLS-1$
- if (extensionId != null && extensionId.equals(id) && metaFilePaths != null) {
+ String metaFilePaths = configElements[j].getAttribute("metaFilePaths"); //$NON-NLS-1$
+ if (extensionId != null && extensionId.equals(id) && metaFilePaths != null) {
return getPaths(metaFilePaths);
- }
+ }
}
}
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/UserStringMappings.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/UserStringMappings.java
index acac94a70..cfe1bc0cd 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/UserStringMappings.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/UserStringMappings.java
@@ -28,96 +28,96 @@ import org.eclipse.team.core.Team;
public class UserStringMappings implements Preferences.IPropertyChangeListener {
- public static final Integer BINARY= Integer.valueOf(Team.BINARY);
- public static final Integer TEXT= Integer.valueOf(Team.TEXT);
- public static final Integer UNKNOWN= Integer.valueOf(Team.UNKNOWN);
-
-
- private static final String PREF_TEAM_SEPARATOR = "\n"; //$NON-NLS-1$
-
- private final Preferences fPreferences;
- private final String fKey;
-
- private Map<String, Integer> fMap;
-
- public UserStringMappings(String key) {
- fKey= key;
- fPreferences= TeamPlugin.getPlugin().getPluginPreferences();
- fPreferences.addPropertyChangeListener(this);
- }
-
- public Map<String, Integer> referenceMap() {
- if (fMap == null) {
- fMap= loadMappingsFromPreferences();
- }
- return fMap;
- }
-
- public void addStringMappings(String[] names, int[] types) {
- Assert.isTrue(names.length == types.length);
- final Map<String, Integer> map= referenceMap();
-
- for (int i = 0; i < names.length; i++) {
- switch (types[i]) {
- case Team.BINARY: map.put(names[i], BINARY); break;
- case Team.TEXT: map.put(names[i], TEXT); break;
- case Team.UNKNOWN: map.put(names[i], UNKNOWN); break;
- }
- }
- save();
- }
-
- public void setStringMappings(String [] names, int [] types) {
- Assert.isTrue(names.length == types.length);
- referenceMap().clear();
- addStringMappings(names, types);
- }
-
- public int getType(String string) {
- if (string == null)
- return Team.UNKNOWN;
- final Integer type= referenceMap().get(string);
- return type != null ? type.intValue() : Team.UNKNOWN;
- }
-
- @Override
+ public static final Integer BINARY= Integer.valueOf(Team.BINARY);
+ public static final Integer TEXT= Integer.valueOf(Team.TEXT);
+ public static final Integer UNKNOWN= Integer.valueOf(Team.UNKNOWN);
+
+
+ private static final String PREF_TEAM_SEPARATOR = "\n"; //$NON-NLS-1$
+
+ private final Preferences fPreferences;
+ private final String fKey;
+
+ private Map<String, Integer> fMap;
+
+ public UserStringMappings(String key) {
+ fKey= key;
+ fPreferences= TeamPlugin.getPlugin().getPluginPreferences();
+ fPreferences.addPropertyChangeListener(this);
+ }
+
+ public Map<String, Integer> referenceMap() {
+ if (fMap == null) {
+ fMap= loadMappingsFromPreferences();
+ }
+ return fMap;
+ }
+
+ public void addStringMappings(String[] names, int[] types) {
+ Assert.isTrue(names.length == types.length);
+ final Map<String, Integer> map= referenceMap();
+
+ for (int i = 0; i < names.length; i++) {
+ switch (types[i]) {
+ case Team.BINARY: map.put(names[i], BINARY); break;
+ case Team.TEXT: map.put(names[i], TEXT); break;
+ case Team.UNKNOWN: map.put(names[i], UNKNOWN); break;
+ }
+ }
+ save();
+ }
+
+ public void setStringMappings(String [] names, int [] types) {
+ Assert.isTrue(names.length == types.length);
+ referenceMap().clear();
+ addStringMappings(names, types);
+ }
+
+ public int getType(String string) {
+ if (string == null)
+ return Team.UNKNOWN;
+ final Integer type= referenceMap().get(string);
+ return type != null ? type.intValue() : Team.UNKNOWN;
+ }
+
+ @Override
public void propertyChange(PropertyChangeEvent event) {
- if(event.getProperty().equals(fKey))
- fMap= null;
- }
-
- public void save() {
- // Now set into preferences
- final StringBuilder buffer = new StringBuilder();
- final Iterator e = fMap.keySet().iterator();
-
- while (e.hasNext()) {
- final String filename = (String)e.next();
- buffer.append(filename);
- buffer.append(PREF_TEAM_SEPARATOR);
- final Integer type = fMap.get(filename);
- buffer.append(type);
- buffer.append(PREF_TEAM_SEPARATOR);
- }
- TeamPlugin.getPlugin().getPluginPreferences().setValue(fKey, buffer.toString());
- }
-
- protected Map<String, Integer> loadMappingsFromPreferences() {
- final Map<String, Integer> result= new HashMap<>();
-
- if (!fPreferences.contains(fKey))
- return result;
-
- final String prefTypes = fPreferences.getString(fKey);
- final StringTokenizer tok = new StringTokenizer(prefTypes, PREF_TEAM_SEPARATOR);
- try {
- while (tok.hasMoreElements()) {
- final String name = tok.nextToken();
- final String mode= tok.nextToken();
- result.put(name, Integer.valueOf(mode));
- }
- } catch (NoSuchElementException e) {
- }
- return result;
- }
+ if(event.getProperty().equals(fKey))
+ fMap= null;
+ }
+
+ public void save() {
+ // Now set into preferences
+ final StringBuilder buffer = new StringBuilder();
+ final Iterator e = fMap.keySet().iterator();
+
+ while (e.hasNext()) {
+ final String filename = (String)e.next();
+ buffer.append(filename);
+ buffer.append(PREF_TEAM_SEPARATOR);
+ final Integer type = fMap.get(filename);
+ buffer.append(type);
+ buffer.append(PREF_TEAM_SEPARATOR);
+ }
+ TeamPlugin.getPlugin().getPluginPreferences().setValue(fKey, buffer.toString());
+ }
+
+ protected Map<String, Integer> loadMappingsFromPreferences() {
+ final Map<String, Integer> result= new HashMap<>();
+
+ if (!fPreferences.contains(fKey))
+ return result;
+
+ final String prefTypes = fPreferences.getString(fKey);
+ final StringTokenizer tok = new StringTokenizer(prefTypes, PREF_TEAM_SEPARATOR);
+ try {
+ while (tok.hasMoreElements()) {
+ final String name = tok.nextToken();
+ final String mode= tok.nextToken();
+ result.put(name, Integer.valueOf(mode));
+ }
+ } catch (NoSuchElementException e) {
+ }
+ return result;
+ }
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/LFtoCRLFInputStream.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/LFtoCRLFInputStream.java
index b6b521cb2..92f4ab3b6 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/LFtoCRLFInputStream.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/LFtoCRLFInputStream.java
@@ -107,11 +107,11 @@ public class LFtoCRLFInputStream extends FilterInputStream {
count++;
}
buffer[off++] = b;
- }
- if (iioe != null) {
- iioe.bytesTransferred = count;
- throw iioe;
- }
+ }
+ if (iioe != null) {
+ iioe.bytesTransferred = count;
+ throw iioe;
+ }
return count;
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingOutputStream.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingOutputStream.java
index f8aaefa67..f98e1331c 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingOutputStream.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/streams/PollingOutputStream.java
@@ -151,11 +151,11 @@ public class PollingOutputStream extends FilterOutputStream {
@Override
public void close() throws IOException {
int attempts = numAttempts - 1; // fail fast if flush() does times out
- try {
- out.flush();
+ try {
+ out.flush();
attempts = 0;
- } finally {
- boolean stop = false;
+ } finally {
+ boolean stop = false;
while (!stop) {
try {
out.close();
@@ -167,7 +167,7 @@ public class PollingOutputStream extends FilterOutputStream {
if (Policy.DEBUG_STREAMS) System.out.println("close retry=" + attempts); //$NON-NLS-1$
}
}
- }
+ }
}
/**
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ActiveChangeSet.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ActiveChangeSet.java
index 0b6cfb1fb..59608f687 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ActiveChangeSet.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ActiveChangeSet.java
@@ -35,194 +35,194 @@ import org.osgi.service.prefs.Preferences;
*/
public class ActiveChangeSet extends DiffChangeSet {
- private static final String CTX_TITLE = "title"; //$NON-NLS-1$
- private static final String CTX_COMMENT = "comment"; //$NON-NLS-1$
- private static final String CTX_RESOURCES = "resources"; //$NON-NLS-1$
- private static final String CTX_USER_CREATED = "userCreated"; //$NON-NLS-1$
+ private static final String CTX_TITLE = "title"; //$NON-NLS-1$
+ private static final String CTX_COMMENT = "comment"; //$NON-NLS-1$
+ private static final String CTX_RESOURCES = "resources"; //$NON-NLS-1$
+ private static final String CTX_USER_CREATED = "userCreated"; //$NON-NLS-1$
- private final ActiveChangeSetManager manager;
- private String comment;
+ private final ActiveChangeSetManager manager;
+ private String comment;
private boolean userCreated = true;
/**
* Create a change set with the given title
* @param manager the manager that owns this set
- * @param title the title of the set
- */
- public ActiveChangeSet(ActiveChangeSetManager manager, String title) {
- super(title);
- this.manager = manager;
- }
-
- /**
- * Get the title of the change set. The title is used
- * as the comment when the set is checking in if no comment
- * has been explicitly set using <code>setComment</code>.
- * @return the title of the set
- */
- public String getTitle() {
- return getName();
- }
-
- /**
- * Set the title of the set. The title is used
- * as the comment when the set is committed if no comment
- * has been explicitly set using <code>setComment</code>.
- * @param title the title of the set
- */
- public void setTitle(String title) {
- setName(title);
- getManager().fireNameChangedEvent(this);
- }
-
- /**
- * Get the comment of this change set. If the comment
- * as never been set, the title is returned as the comment
- * @return the comment to be used when the set is committed
- */
- @Override
+ * @param title the title of the set
+ */
+ public ActiveChangeSet(ActiveChangeSetManager manager, String title) {
+ super(title);
+ this.manager = manager;
+ }
+
+ /**
+ * Get the title of the change set. The title is used
+ * as the comment when the set is checking in if no comment
+ * has been explicitly set using <code>setComment</code>.
+ * @return the title of the set
+ */
+ public String getTitle() {
+ return getName();
+ }
+
+ /**
+ * Set the title of the set. The title is used
+ * as the comment when the set is committed if no comment
+ * has been explicitly set using <code>setComment</code>.
+ * @param title the title of the set
+ */
+ public void setTitle(String title) {
+ setName(title);
+ getManager().fireNameChangedEvent(this);
+ }
+
+ /**
+ * Get the comment of this change set. If the comment
+ * as never been set, the title is returned as the comment
+ * @return the comment to be used when the set is committed
+ */
+ @Override
public String getComment() {
- if (comment == null) {
- return getTitle();
- }
- return comment;
- }
-
- /**
- * Set the comment to be used when the change set is committed.
- * If <code>null</code> is passed, the title of the set
- * will be used as the comment.
- * @param comment the comment for the set or <code>null</code>
- * if the title should be the comment
- */
- public void setComment(String comment) {
- if (comment != null && comment.equals(getTitle())) {
- this.comment = null;
- } else {
- this.comment = comment;
- }
- }
-
- /*
- * Override inherited method to only include outgoing changes
- */
- @Override
+ if (comment == null) {
+ return getTitle();
+ }
+ return comment;
+ }
+
+ /**
+ * Set the comment to be used when the change set is committed.
+ * If <code>null</code> is passed, the title of the set
+ * will be used as the comment.
+ * @param comment the comment for the set or <code>null</code>
+ * if the title should be the comment
+ */
+ public void setComment(String comment) {
+ if (comment != null && comment.equals(getTitle())) {
+ this.comment = null;
+ } else {
+ this.comment = comment;
+ }
+ }
+
+ /*
+ * Override inherited method to only include outgoing changes
+ */
+ @Override
protected boolean isValidChange(IDiff diff) {
- return getManager().isModified(diff);
- }
-
- private void addResource(IResource resource) throws CoreException {
- IDiff diff = getManager().getDiff(resource);
- if (diff != null) {
- add(diff);
- }
- }
-
- private ActiveChangeSetManager getManager() {
- return manager;
- }
-
- /**
- * Return whether the set has a comment that differs from the title.
- * @return whether the set has a comment that differs from the title
- */
- public boolean hasComment() {
- return comment != null;
- }
-
- public void save(Preferences prefs) {
- prefs.put(CTX_TITLE, getTitle());
- if (comment != null) {
- prefs.put(CTX_COMMENT, comment);
- }
- if (!isEmpty()) {
- StringBuilder buffer = new StringBuilder();
- IResource[] resources = getResources();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- buffer.append(resource.getFullPath().toString());
- buffer.append('\n');
- }
- prefs.put(CTX_RESOURCES, buffer.toString());
- }
- prefs.putBoolean(CTX_USER_CREATED, isUserCreated());
- }
-
- public void init(Preferences prefs) {
- setName(prefs.get(CTX_TITLE, "")); //$NON-NLS-1$
- comment = prefs.get(CTX_COMMENT, null);
- String resourcePaths = prefs.get(CTX_RESOURCES, null);
- if (resourcePaths != null) {
- ResourceDiffTree tree = internalGetDiffTree();
- try {
- tree.beginInput();
- IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
- StringTokenizer tokenizer = new StringTokenizer(resourcePaths, "\n"); //$NON-NLS-1$
- while (tokenizer.hasMoreTokens()) {
- String next = tokenizer.nextToken();
- if (next.trim().length() > 0) {
- IResource resource = getResource(root, next);
- // Only include the resource if it is out-of-sync
- try {
+ return getManager().isModified(diff);
+ }
+
+ private void addResource(IResource resource) throws CoreException {
+ IDiff diff = getManager().getDiff(resource);
+ if (diff != null) {
+ add(diff);
+ }
+ }
+
+ private ActiveChangeSetManager getManager() {
+ return manager;
+ }
+
+ /**
+ * Return whether the set has a comment that differs from the title.
+ * @return whether the set has a comment that differs from the title
+ */
+ public boolean hasComment() {
+ return comment != null;
+ }
+
+ public void save(Preferences prefs) {
+ prefs.put(CTX_TITLE, getTitle());
+ if (comment != null) {
+ prefs.put(CTX_COMMENT, comment);
+ }
+ if (!isEmpty()) {
+ StringBuilder buffer = new StringBuilder();
+ IResource[] resources = getResources();
+ for (int i = 0; i < resources.length; i++) {
+ IResource resource = resources[i];
+ buffer.append(resource.getFullPath().toString());
+ buffer.append('\n');
+ }
+ prefs.put(CTX_RESOURCES, buffer.toString());
+ }
+ prefs.putBoolean(CTX_USER_CREATED, isUserCreated());
+ }
+
+ public void init(Preferences prefs) {
+ setName(prefs.get(CTX_TITLE, "")); //$NON-NLS-1$
+ comment = prefs.get(CTX_COMMENT, null);
+ String resourcePaths = prefs.get(CTX_RESOURCES, null);
+ if (resourcePaths != null) {
+ ResourceDiffTree tree = internalGetDiffTree();
+ try {
+ tree.beginInput();
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ StringTokenizer tokenizer = new StringTokenizer(resourcePaths, "\n"); //$NON-NLS-1$
+ while (tokenizer.hasMoreTokens()) {
+ String next = tokenizer.nextToken();
+ if (next.trim().length() > 0) {
+ IResource resource = getResource(root, next);
+ // Only include the resource if it is out-of-sync
+ try {
if (resource != null && getManager().getDiff(resource) != null) {
addResource(resource);
}
} catch (CoreException e) {
TeamPlugin.log(e);
}
- }
- }
- } finally {
- tree.endInput(null);
- }
- }
- userCreated = prefs.getBoolean(CTX_USER_CREATED, true);
- }
-
- private IResource getResource(IWorkspaceRoot root, String next) {
- IResource resource = root.findMember(next);
- if (resource == null) {
- // May be an outgoing deletion
- Path path = new Path(null, next);
- if (next.charAt(next.length()-1) == IPath.SEPARATOR) {
- if (path.segmentCount() == 1) {
- // resource is a project
- resource = root.getProject(path.lastSegment());
- } else {
- // resource is a folder
- resource = root.getFolder(path);
- }
- } else {
- // resource is a file
- resource = root.getFile(path);
- }
- }
- return resource;
- }
-
- /**
- * Add the resources to the change set if they are outgoing changes.
- * @param resources the resources to add.
- * @throws CoreException
- */
- public void add(IResource[] resources) throws CoreException {
- List<IDiff> toAdd = new ArrayList<>();
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- IDiff diff = getManager().getDiff(resource);
- if (diff != null) {
- toAdd.add(diff);
- }
- }
- if (!toAdd.isEmpty()) {
- add(toAdd.toArray(new IDiff[toAdd.size()]));
- }
- }
-
- /**
- * Set whether this set was created by the user.
- * @param userCreated whether this set was created by the user
- */
+ }
+ }
+ } finally {
+ tree.endInput(null);
+ }
+ }
+ userCreated = prefs.getBoolean(CTX_USER_CREATED, true);
+ }
+
+ private IResource getResource(IWorkspaceRoot root, String next) {
+ IResource resource = root.findMember(next);
+ if (resource == null) {
+ // May be an outgoing deletion
+ Path path = new Path(null, next);
+ if (next.charAt(next.length()-1) == IPath.SEPARATOR) {
+ if (path.segmentCount() == 1) {
+ // resource is a project
+ resource = root.getProject(path.lastSegment());
+ } else {
+ // resource is a folder
+ resource = root.getFolder(path);
+ }
+ } else {
+ // resource is a file
+ resource = root.getFile(path);
+ }
+ }
+ return resource;
+ }
+
+ /**
+ * Add the resources to the change set if they are outgoing changes.
+ * @param resources the resources to add.
+ * @throws CoreException
+ */
+ public void add(IResource[] resources) throws CoreException {
+ List<IDiff> toAdd = new ArrayList<>();
+ for (int i = 0; i < resources.length; i++) {
+ IResource resource = resources[i];
+ IDiff diff = getManager().getDiff(resource);
+ if (diff != null) {
+ toAdd.add(diff);
+ }
+ }
+ if (!toAdd.isEmpty()) {
+ add(toAdd.toArray(new IDiff[toAdd.size()]));
+ }
+ }
+
+ /**
+ * Set whether this set was created by the user.
+ * @param userCreated whether this set was created by the user
+ */
public void setUserCreated(boolean userCreated) {
this.userCreated = userCreated;
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ActiveChangeSetManager.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ActiveChangeSetManager.java
index 0c57ee161..a5b35c1ef 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ActiveChangeSetManager.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ActiveChangeSetManager.java
@@ -48,61 +48,61 @@ import org.osgi.service.prefs.Preferences;
*/
public abstract class ActiveChangeSetManager extends ChangeSetManager implements IDiffChangeListener, IChangeGroupingRequestor {
- private static final String CTX_DEFAULT_SET = "defaultSet"; //$NON-NLS-1$
+ private static final String CTX_DEFAULT_SET = "defaultSet"; //$NON-NLS-1$
- private ActiveChangeSet defaultSet;
+ private ActiveChangeSet defaultSet;
/**
- * Return the Change Set whose sync info set is the
- * one given.
- * @param tree a diff tree
- * @return the change set for the given diff tree
- */
- protected ChangeSet getChangeSet(IResourceDiffTree tree) {
- ChangeSet[] sets = getSets();
- for (int i = 0; i < sets.length; i++) {
+ * Return the Change Set whose sync info set is the
+ * one given.
+ * @param tree a diff tree
+ * @return the change set for the given diff tree
+ */
+ protected ChangeSet getChangeSet(IResourceDiffTree tree) {
+ ChangeSet[] sets = getSets();
+ for (int i = 0; i < sets.length; i++) {
ChangeSet changeSet = sets[i];
- if (((DiffChangeSet)changeSet).getDiffTree() == tree) {
- return changeSet;
- }
- }
- return null;
- }
-
- @Override
+ if (((DiffChangeSet)changeSet).getDiffTree() == tree) {
+ return changeSet;
+ }
+ }
+ return null;
+ }
+
+ @Override
public void add(ChangeSet set) {
- Assert.isTrue(set instanceof ActiveChangeSet);
- super.add(set);
- }
+ Assert.isTrue(set instanceof ActiveChangeSet);
+ super.add(set);
+ }
- @Override
+ @Override
protected void handleSetAdded(ChangeSet set) {
- Assert.isTrue(set instanceof ActiveChangeSet);
- ((DiffChangeSet)set).getDiffTree().addDiffChangeListener(getDiffTreeListener());
- super.handleSetAdded(set);
- handleAddedResources(set, ((ActiveChangeSet)set).internalGetDiffTree().getDiffs());
- }
+ Assert.isTrue(set instanceof ActiveChangeSet);
+ ((DiffChangeSet)set).getDiffTree().addDiffChangeListener(getDiffTreeListener());
+ super.handleSetAdded(set);
+ handleAddedResources(set, ((ActiveChangeSet)set).internalGetDiffTree().getDiffs());
+ }
- @Override
+ @Override
protected void handleSetRemoved(ChangeSet set) {
- ((DiffChangeSet)set).getDiffTree().removeDiffChangeListener(getDiffTreeListener());
- super.handleSetRemoved(set);
- }
-
- /**
- * Return the listener that is registered with the diff trees associated with
- * the sets for this manager.
- * @return the listener that is registered with the diff trees associated with
- * the sets for this manager
- */
- protected IDiffChangeListener getDiffTreeListener() {
- return this;
- }
+ ((DiffChangeSet)set).getDiffTree().removeDiffChangeListener(getDiffTreeListener());
+ super.handleSetRemoved(set);
+ }
+
+ /**
+ * Return the listener that is registered with the diff trees associated with
+ * the sets for this manager.
+ * @return the listener that is registered with the diff trees associated with
+ * the sets for this manager
+ */
+ protected IDiffChangeListener getDiffTreeListener() {
+ return this;
+ }
@Override
public void diffsChanged(IDiffChangeEvent event, IProgressMonitor monitor) {
- IResourceDiffTree tree = (IResourceDiffTree)event.getTree();
- handleSyncSetChange(tree, event.getAdditions(), getAllResources(event));
+ IResourceDiffTree tree = (IResourceDiffTree)event.getTree();
+ handleSyncSetChange(tree, event.getAdditions(), getAllResources(event));
}
@Override
@@ -123,18 +123,18 @@ public abstract class ActiveChangeSetManager extends ChangeSetManager implements
* @param diff the diff
* @return whether the given diff represents a local change
*/
- public boolean isModified(IDiff diff) {
- if (diff != null) {
- if (diff instanceof IThreeWayDiff) {
+ public boolean isModified(IDiff diff) {
+ if (diff != null) {
+ if (diff instanceof IThreeWayDiff) {
IThreeWayDiff twd = (IThreeWayDiff) diff;
int dir = twd.getDirection();
return dir == IThreeWayDiff.OUTGOING || dir == IThreeWayDiff.CONFLICTING;
} else {
return diff.getKind() != IDiff.NO_CHANGE;
}
- }
- return false;
- }
+ }
+ return false;
+ }
/**
* Return the set with the given name.
@@ -152,48 +152,48 @@ public abstract class ActiveChangeSetManager extends ChangeSetManager implements
return null;
}
- /**
- * Create a change set containing the given files if
- * they have been modified locally.
- * @param title the title of the commit set
- * @param files the files contained in the set
- * @return the created set
- * @throws CoreException
- */
- public ActiveChangeSet createSet(String title, IFile[] files) throws CoreException {
- List<IDiff> infos = new ArrayList<>();
- for (int i = 0; i < files.length; i++) {
- IFile file = files[i];
- IDiff diff = getDiff(file);
- if (diff != null) {
- infos.add(diff);
- }
- }
- return createSet(title, infos.toArray(new IDiff[infos.size()]));
- }
-
- /**
- * Create a commit set with the given title and files. The created
- * set is not added to the control of the commit set manager
- * so no events are fired. The set can be added using the
- * <code>add</code> method.
- * @param title the title of the commit set
- * @param diffs the files contained in the set
- * @return the created set
- */
- public ActiveChangeSet createSet(String title, IDiff[] diffs) {
- ActiveChangeSet commitSet = doCreateSet(title);
- if (diffs != null && diffs.length > 0) {
- commitSet.add(diffs);
- }
- return commitSet;
- }
-
- /**
- * Create a change set with the given name.
- * @param name the name of the change set
- * @return the created change set
- */
+ /**
+ * Create a change set containing the given files if
+ * they have been modified locally.
+ * @param title the title of the commit set
+ * @param files the files contained in the set
+ * @return the created set
+ * @throws CoreException
+ */
+ public ActiveChangeSet createSet(String title, IFile[] files) throws CoreException {
+ List<IDiff> infos = new ArrayList<>();
+ for (int i = 0; i < files.length; i++) {
+ IFile file = files[i];
+ IDiff diff = getDiff(file);
+ if (diff != null) {
+ infos.add(diff);
+ }
+ }
+ return createSet(title, infos.toArray(new IDiff[infos.size()]));
+ }
+
+ /**
+ * Create a commit set with the given title and files. The created
+ * set is not added to the control of the commit set manager
+ * so no events are fired. The set can be added using the
+ * <code>add</code> method.
+ * @param title the title of the commit set
+ * @param diffs the files contained in the set
+ * @return the created set
+ */
+ public ActiveChangeSet createSet(String title, IDiff[] diffs) {
+ ActiveChangeSet commitSet = doCreateSet(title);
+ if (diffs != null && diffs.length > 0) {
+ commitSet.add(diffs);
+ }
+ return commitSet;
+ }
+
+ /**
+ * Create a change set with the given name.
+ * @param name the name of the change set
+ * @return the created change set
+ */
protected ActiveChangeSet doCreateSet(String name) {
return new ActiveChangeSet(this, name);
}
@@ -208,7 +208,7 @@ public abstract class ActiveChangeSetManager extends ChangeSetManager implements
* be in multiple sets.
*/
protected boolean isSingleSetPerResource() {
- return true;
+ return true;
}
private IPath[] getAllResources(IDiffChangeEvent event) {
@@ -228,7 +228,7 @@ public abstract class ActiveChangeSetManager extends ChangeSetManager implements
IPath path = removals[i];
allResources.add(path);
}
- return allResources.toArray(new IPath[allResources.size()]);
+ return allResources.toArray(new IPath[allResources.size()]);
}
/**
@@ -237,29 +237,29 @@ public abstract class ActiveChangeSetManager extends ChangeSetManager implements
* @param diffs the diffs
*/
protected void handleAddedResources(ChangeSet set, IDiff[] diffs) {
- if (isSingleSetPerResource() && ((ActiveChangeSet)set).isUserCreated()) {
- IResource[] resources = new IResource[diffs.length];
- for (int i = 0; i < resources.length; i++) {
+ if (isSingleSetPerResource() && ((ActiveChangeSet)set).isUserCreated()) {
+ IResource[] resources = new IResource[diffs.length];
+ for (int i = 0; i < resources.length; i++) {
resources[i] = ((DiffChangeSet)set).getDiffTree().getResource(diffs[i]);
}
- // Remove the added files from any other set that contains them
- ChangeSet[] sets = getSets();
- for (int i = 0; i < sets.length; i++) {
- ChangeSet otherSet = sets[i];
+ // Remove the added files from any other set that contains them
+ ChangeSet[] sets = getSets();
+ for (int i = 0; i < sets.length; i++) {
+ ChangeSet otherSet = sets[i];
if (otherSet != set && ((ActiveChangeSet)otherSet).isUserCreated()) {
- otherSet.remove(resources);
- }
- }
- }
+ otherSet.remove(resources);
+ }
+ }
+ }
}
private void handleSyncSetChange(IResourceDiffTree tree, IDiff[] addedDiffs, IPath[] allAffectedResources) {
- ChangeSet changeSet = getChangeSet(tree);
- if (tree.isEmpty() && changeSet != null) {
- remove(changeSet);
- }
- fireResourcesChangedEvent(changeSet, allAffectedResources);
- handleAddedResources(changeSet, addedDiffs);
+ ChangeSet changeSet = getChangeSet(tree);
+ if (tree.isEmpty() && changeSet != null) {
+ remove(changeSet);
+ }
+ fireResourcesChangedEvent(changeSet, allAffectedResources);
+ handleAddedResources(changeSet, addedDiffs);
}
/**
@@ -271,13 +271,13 @@ public abstract class ActiveChangeSetManager extends ChangeSetManager implements
* <code>null</code> to unset the default set
*/
public void makeDefault(ActiveChangeSet set) {
- // The default set must be an active set
+ // The default set must be an active set
if (set != null && !contains(set)) {
add(set);
}
- ActiveChangeSet oldSet = defaultSet;
- defaultSet = set;
- fireDefaultChangedEvent(oldSet, defaultSet);
+ ActiveChangeSet oldSet = defaultSet;
+ defaultSet = set;
+ fireDefaultChangedEvent(oldSet, defaultSet);
}
/**
@@ -287,17 +287,17 @@ public abstract class ActiveChangeSetManager extends ChangeSetManager implements
* @return whether the set is the default set
*/
public boolean isDefault(ActiveChangeSet set) {
- return set == defaultSet;
+ return set == defaultSet;
}
- /**
- * Return the set which is currently the default or
- * <code>null</code> if there is no default set.
- * @return the default change set
- */
- public ActiveChangeSet getDefaultSet() {
- return defaultSet;
- }
+ /**
+ * Return the set which is currently the default or
+ * <code>null</code> if there is no default set.
+ * @return the default change set
+ */
+ public ActiveChangeSet getDefaultSet() {
+ return defaultSet;
+ }
/**
* If the given traversals contain any resources in the active change sets, ensure
@@ -336,42 +336,42 @@ public abstract class ActiveChangeSetManager extends ChangeSetManager implements
// No need to save the sets if the manager has never been initialized
if (!isInitialized())
return;
- // Clear the persisted state before saving the new state
- try {
- String[] oldSetNames = prefs.childrenNames();
- for (int i = 0; i < oldSetNames.length; i++) {
- String string = oldSetNames[i];
- prefs.node(string).removeNode();
- }
- } catch (BackingStoreException e) {
- TeamPlugin.log(IStatus.ERROR, NLS.bind(Messages.SubscriberChangeSetCollector_5, new String[] { getName() }), e);
- }
- ChangeSet[] sets = getSets();
- for (int i = 0; i < sets.length; i++) {
- ChangeSet set = sets[i];
+ // Clear the persisted state before saving the new state
+ try {
+ String[] oldSetNames = prefs.childrenNames();
+ for (int i = 0; i < oldSetNames.length; i++) {
+ String string = oldSetNames[i];
+ prefs.node(string).removeNode();
+ }
+ } catch (BackingStoreException e) {
+ TeamPlugin.log(IStatus.ERROR, NLS.bind(Messages.SubscriberChangeSetCollector_5, new String[] { getName() }), e);
+ }
+ ChangeSet[] sets = getSets();
+ for (int i = 0; i < sets.length; i++) {
+ ChangeSet set = sets[i];
if (set instanceof ActiveChangeSet && !set.isEmpty()) {
- // Since the change set title is stored explicitly, the name of
- // the child preference node doesn't matter as long as it
- // doesn't contain / and no two change sets get the same name.
- String childPrefName = escapePrefName(((ActiveChangeSet)set).getTitle());
- Preferences child = prefs.node(childPrefName);
- ((ActiveChangeSet)set).save(child);
+ // Since the change set title is stored explicitly, the name of
+ // the child preference node doesn't matter as long as it
+ // doesn't contain / and no two change sets get the same name.
+ String childPrefName = escapePrefName(((ActiveChangeSet)set).getTitle());
+ Preferences child = prefs.node(childPrefName);
+ ((ActiveChangeSet)set).save(child);
}
}
if (getDefaultSet() != null) {
- prefs.put(CTX_DEFAULT_SET, getDefaultSet().getTitle());
+ prefs.put(CTX_DEFAULT_SET, getDefaultSet().getTitle());
} else {
// unset default changeset
prefs.remove(CTX_DEFAULT_SET);
}
try {
- prefs.flush();
- } catch (BackingStoreException e) {
- TeamPlugin.log(IStatus.ERROR, NLS.bind(Messages.SubscriberChangeSetCollector_3, new String[] { getName() }), e);
- }
- }
+ prefs.flush();
+ } catch (BackingStoreException e) {
+ TeamPlugin.log(IStatus.ERROR, NLS.bind(Messages.SubscriberChangeSetCollector_3, new String[] { getName() }), e);
+ }
+ }
- /**
+ /**
* Escape the given string for safe use as a preference node name by
* translating / to \s (so it's a single path component) and \ to \\ (to
* preserve uniqueness).
@@ -406,23 +406,23 @@ public abstract class ActiveChangeSetManager extends ChangeSetManager implements
*/
protected void load(Preferences prefs) {
String defaultSetTitle = prefs.get(CTX_DEFAULT_SET, null);
- try {
+ try {
String[] childNames = prefs.childrenNames();
for (int i = 0; i < childNames.length; i++) {
- String string = childNames[i];
- Preferences childPrefs = prefs.node(string);
- ActiveChangeSet set = createSet(childPrefs);
- if (!set.isEmpty()) {
- if (getDefaultSet() == null && defaultSetTitle != null && set.getTitle().equals(defaultSetTitle)) {
- makeDefault(set);
- }
- add(set);
- }
+ String string = childNames[i];
+ Preferences childPrefs = prefs.node(string);
+ ActiveChangeSet set = createSet(childPrefs);
+ if (!set.isEmpty()) {
+ if (getDefaultSet() == null && defaultSetTitle != null && set.getTitle().equals(defaultSetTitle)) {
+ makeDefault(set);
+ }
+ add(set);
+ }
}
} catch (BackingStoreException e) {
TeamPlugin.log(IStatus.ERROR, NLS.bind(Messages.SubscriberChangeSetCollector_4, new String[] { getName() }), e);
}
- }
+ }
/**
* Return the name of this change set manager.
@@ -430,23 +430,23 @@ public abstract class ActiveChangeSetManager extends ChangeSetManager implements
*/
protected abstract String getName();
- /**
- * Create a change set from the given preferences that were
- * previously saved.
- * @param childPrefs the previously saved preferences
- * @return the created change set
- */
- protected ActiveChangeSet createSet(Preferences childPrefs) {
- // Don't specify a title when creating the change set; instead, let the
- // change set read its title from the preferences.
- ActiveChangeSet changeSet = doCreateSet(null);
- changeSet.init(childPrefs);
- return changeSet;
- }
-
- @Override
+ /**
+ * Create a change set from the given preferences that were
+ * previously saved.
+ * @param childPrefs the previously saved preferences
+ * @return the created change set
+ */
+ protected ActiveChangeSet createSet(Preferences childPrefs) {
+ // Don't specify a title when creating the change set; instead, let the
+ // change set read its title from the preferences.
+ ActiveChangeSet changeSet = doCreateSet(null);
+ changeSet.init(childPrefs);
+ return changeSet;
+ }
+
+ @Override
public void ensureChangesGrouped(IProject project, IFile[] files,
- String name) throws CoreException {
+ String name) throws CoreException {
ActiveChangeSet set = getSet(name);
if (set == null) {
set = createSet(name, files);
@@ -456,5 +456,5 @@ public abstract class ActiveChangeSetManager extends ChangeSetManager implements
set.setUserCreated(false);
set.add(files);
}
- }
+ }
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/BatchingChangeSetManager.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/BatchingChangeSetManager.java
index ea8c4f540..f94fd8972 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/BatchingChangeSetManager.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/BatchingChangeSetManager.java
@@ -123,16 +123,16 @@ public class BatchingChangeSetManager extends ChangeSetManager {
}
}
- private void fireChanges(final IProgressMonitor monitor) {
- if (changes.isEmpty()) {
- return;
- }
- final CollectorChangeEvent event = changes;
- changes = new CollectorChangeEvent(this);
- Object[] listeners = getListeners();
- for (int i = 0; i < listeners.length; i++) {
- final IChangeSetChangeListener listener = (IChangeSetChangeListener)listeners[i];
- if (listener instanceof IChangeSetCollectorChangeListener) {
+ private void fireChanges(final IProgressMonitor monitor) {
+ if (changes.isEmpty()) {
+ return;
+ }
+ final CollectorChangeEvent event = changes;
+ changes = new CollectorChangeEvent(this);
+ Object[] listeners = getListeners();
+ for (int i = 0; i < listeners.length; i++) {
+ final IChangeSetChangeListener listener = (IChangeSetChangeListener)listeners[i];
+ if (listener instanceof IChangeSetCollectorChangeListener) {
final IChangeSetCollectorChangeListener csccl = (IChangeSetCollectorChangeListener) listener;
SafeRunner.run(new ISafeRunnable() {
@Override
@@ -145,44 +145,44 @@ public class BatchingChangeSetManager extends ChangeSetManager {
}
});
}
- }
+ }
}
- @Override
+ @Override
public void add(ChangeSet set) {
- try {
- beginInput();
- super.add(set);
- changes.setAdded(set);
- } finally {
- endInput(null);
- }
- }
-
- @Override
+ try {
+ beginInput();
+ super.add(set);
+ changes.setAdded(set);
+ } finally {
+ endInput(null);
+ }
+ }
+
+ @Override
public void remove(ChangeSet set) {
- try {
- beginInput();
- super.remove(set);
- changes.setRemoved(set);
- } finally {
- endInput(null);
- }
- }
-
- @Override
+ try {
+ beginInput();
+ super.remove(set);
+ changes.setRemoved(set);
+ } finally {
+ endInput(null);
+ }
+ }
+
+ @Override
protected void fireResourcesChangedEvent(ChangeSet changeSet, IPath[] allAffectedResources) {
- super.fireResourcesChangedEvent(changeSet, allAffectedResources);
- try {
- beginInput();
- changes.changed(changeSet, allAffectedResources);
- } finally {
- endInput(null);
- }
- }
-
- @Override
+ super.fireResourcesChangedEvent(changeSet, allAffectedResources);
+ try {
+ beginInput();
+ changes.changed(changeSet, allAffectedResources);
+ } finally {
+ endInput(null);
+ }
+ }
+
+ @Override
protected void initializeSets() {
- // Nothing to do
- }
+ // Nothing to do
+ }
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/BatchingLock.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/BatchingLock.java
index eea5814a4..7c551b763 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/BatchingLock.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/BatchingLock.java
@@ -86,7 +86,7 @@ public class BatchingLock {
} finally {
if (!success) {
try {
- // The begin was canceled (or some other problem occurred).
+ // The begin was canceled (or some other problem occurred).
// Free the scheduling rule
// so the clients of ReentrantLock don't need to
// do an endRule when the operation is canceled.
@@ -195,9 +195,9 @@ public class BatchingLock {
handleAbortedFlush(e);
throw e;
} finally {
- // We have to clear the resources no matter what since the next attempt
+ // We have to clear the resources no matter what since the next attempt
// to flush may not have an appropriate scheduling rule
- changedResources.clear();
+ changedResources.clear();
}
}
private boolean isFlushRequired() {
@@ -295,21 +295,21 @@ public class BatchingLock {
* Create the ThreadInfo instance used to cache the lock state for the
* current thread. Subclass can override to provide a subclass of
* ThreadInfo.
- * @param operation the flush operation
- * @return a ThreadInfo instance
- */
- protected ThreadInfo createThreadInfo(IFlushOperation operation) {
- return new ThreadInfo(operation);
- }
+ * @param operation the flush operation
+ * @return a ThreadInfo instance
+ */
+ protected ThreadInfo createThreadInfo(IFlushOperation operation) {
+ return new ThreadInfo(operation);
+ }
- /**
+ /**
* Release the lock held on any resources by this thread. The provided rule must
* be identical to the rule returned by the corresponding acquire(). If the rule
* for the release is non-null and all remaining rules held by the lock are null,
* the the flush operation provided in the acquire method will be executed.
- * @param rule the scheduling rule
- * @param monitor a progress monitor
- * @throws TeamException
+ * @param rule the scheduling rule
+ * @param monitor a progress monitor
+ * @throws TeamException
*/
public void release(ISchedulingRule rule, IProgressMonitor monitor) throws TeamException {
ThreadInfo info = getThreadInfo();
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ChangeSet.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ChangeSet.java
index 45b16a1f8..03c9e2e3e 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ChangeSet.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ChangeSet.java
@@ -20,101 +20,101 @@ import org.eclipse.core.resources.IResource;
*/
public abstract class ChangeSet {
- private String name;
+ private String name;
- /**
- * Create a change set with no name. Subclasses
- * that create a change set in this manner should
- * provide a name before the set is used by other clients.
- */
- protected ChangeSet() {
- super();
- }
+ /**
+ * Create a change set with no name. Subclasses
+ * that create a change set in this manner should
+ * provide a name before the set is used by other clients.
+ */
+ protected ChangeSet() {
+ super();
+ }
- /**
- * Create a change set with the given name.
- * @param name the name of the change set
- */
- public ChangeSet(String name) {
- this.name = name;
- }
+ /**
+ * Create a change set with the given name.
+ * @param name the name of the change set
+ */
+ public ChangeSet(String name) {
+ this.name = name;
+ }
- /**
- * Return the resources that are contained in this set.
- * @return the resources that are contained in this set
- */
- public abstract IResource[] getResources();
+ /**
+ * Return the resources that are contained in this set.
+ * @return the resources that are contained in this set
+ */
+ public abstract IResource[] getResources();
- /**
- * Return whether the set contains any files.
- * @return whether the set contains any files
- */
- public abstract boolean isEmpty();
+ /**
+ * Return whether the set contains any files.
+ * @return whether the set contains any files
+ */
+ public abstract boolean isEmpty();
- /**
- * Return true if the given file is included in this set.
- * @param local a local file
- * @return true if the given file is included in this set
- */
- public abstract boolean contains(IResource local);
+ /**
+ * Return true if the given file is included in this set.
+ * @param local a local file
+ * @return true if the given file is included in this set
+ */
+ public abstract boolean contains(IResource local);
- /**
- * Remove the resource from the set.
- * @param resource the resource to be removed
- */
- public abstract void remove(IResource resource);
+ /**
+ * Remove the resource from the set.
+ * @param resource the resource to be removed
+ */
+ public abstract void remove(IResource resource);
- /**
- * Remove the resources from the set.
- * @param resources the resources to be removed
- */
- public void remove(IResource[] resources) {
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- remove(resource);
- }
- }
+ /**
+ * Remove the resources from the set.
+ * @param resources the resources to be removed
+ */
+ public void remove(IResource[] resources) {
+ for (int i = 0; i < resources.length; i++) {
+ IResource resource = resources[i];
+ remove(resource);
+ }
+ }
- /**
- * Remove the resource and it's descendants to the given depth.
- * @param resource the resource to be removed
- * @param depth the depth of the removal (one of
- * <code>IResource.DEPTH_ZERO, IResource.DEPTH_ONE, IResource.DEPTH_INFINITE)</code>
- */
- public abstract void rootRemoved(IResource resource, int depth);
+ /**
+ * Remove the resource and it's descendants to the given depth.
+ * @param resource the resource to be removed
+ * @param depth the depth of the removal (one of
+ * <code>IResource.DEPTH_ZERO, IResource.DEPTH_ONE, IResource.DEPTH_INFINITE)</code>
+ */
+ public abstract void rootRemoved(IResource resource, int depth);
- /**
- * Return a comment describing the change.
- * @return a comment describing the change
- */
- public abstract String getComment();
+ /**
+ * Return a comment describing the change.
+ * @return a comment describing the change
+ */
+ public abstract String getComment();
- /**
- * Return the name assigned to this set. The name should be
- * unique.
- * @return the name assigned to this set
- */
- public String getName() {
- return name;
- }
+ /**
+ * Return the name assigned to this set. The name should be
+ * unique.
+ * @return the name assigned to this set
+ */
+ public String getName() {
+ return name;
+ }
- /**
- * Set the name of the change set. The name of a change
- * set can be changed but it is up to subclass to notify
- * any interested partied of the name change.
- * @param name the new name for the set
- */
- protected void setName(String name) {
- this.name = name;
- }
+ /**
+ * Set the name of the change set. The name of a change
+ * set can be changed but it is up to subclass to notify
+ * any interested partied of the name change.
+ * @param name the new name for the set
+ */
+ protected void setName(String name) {
+ this.name = name;
+ }
- /**
- * Return whether the set contains descendants of the given resource
- * to the given depth.
- * @param resource the resource
- * @param depth the depth
- * @return whether the set contains descendants of the given resource
- * to the given depth
- */
+ /**
+ * Return whether the set contains descendants of the given resource
+ * to the given depth.
+ * @param resource the resource
+ * @param depth the depth
+ * @return whether the set contains descendants of the given resource
+ * to the given depth
+ */
public abstract boolean containsChildren(IResource resource, int depth);
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ChangeSetManager.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ChangeSetManager.java
index 61ff6d178..ca446b0a3 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ChangeSetManager.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/ChangeSetManager.java
@@ -27,219 +27,219 @@ import org.eclipse.core.runtime.SafeRunner;
*/
public abstract class ChangeSetManager {
- private ListenerList<IChangeSetChangeListener> listeners = new ListenerList<IChangeSetChangeListener>(ListenerList.IDENTITY);
- private Set<ChangeSet> sets;
+ private ListenerList<IChangeSetChangeListener> listeners = new ListenerList<IChangeSetChangeListener>(ListenerList.IDENTITY);
+ private Set<ChangeSet> sets;
private boolean initializing;
- /**
- * Return the list of listeners registered with this change set manager.
- * @return the list of listeners registered with this change set manager
- */
- protected Object[] getListeners() {
- return listeners.getListeners();
- }
-
- /**
- * Method that can be invoked by subclasses when the name of
- * a managed change set changes.
- * @param set the set whose title has changed
- */
- protected void fireNameChangedEvent(final ChangeSet set) {
- if (initializing)
- return;
- if (contains(set)) {
- Object[] listeners = getListeners();
- for (int i = 0; i < listeners.length; i++) {
- final IChangeSetChangeListener listener = (IChangeSetChangeListener)listeners[i];
- SafeRunner.run(new ISafeRunnable() {
- @Override
+ /**
+ * Return the list of listeners registered with this change set manager.
+ * @return the list of listeners registered with this change set manager
+ */
+ protected Object[] getListeners() {
+ return listeners.getListeners();
+ }
+
+ /**
+ * Method that can be invoked by subclasses when the name of
+ * a managed change set changes.
+ * @param set the set whose title has changed
+ */
+ protected void fireNameChangedEvent(final ChangeSet set) {
+ if (initializing)
+ return;
+ if (contains(set)) {
+ Object[] listeners = getListeners();
+ for (int i = 0; i < listeners.length; i++) {
+ final IChangeSetChangeListener listener = (IChangeSetChangeListener)listeners[i];
+ SafeRunner.run(new ISafeRunnable() {
+ @Override
public void handleException(Throwable exception) {
- // Exceptions are logged by the platform
- }
- @Override
+ // Exceptions are logged by the platform
+ }
+ @Override
public void run() throws Exception {
- listener.nameChanged(set);
- }
- });
- }
- }
- }
-
- /**
- * Method which allows subclasses to notify listeners that the default
- * set has changed.
- * @param oldSet the previous default
- * @param defaultSet the new default
- */
- protected void fireDefaultChangedEvent(final ChangeSet oldSet, final ChangeSet defaultSet) {
- if (initializing)
- return;
- Object[] listeners = getListeners();
- for (int i = 0; i < listeners.length; i++) {
- final IChangeSetChangeListener listener = (IChangeSetChangeListener)listeners[i];
- SafeRunner.run(new ISafeRunnable() {
- @Override
+ listener.nameChanged(set);
+ }
+ });
+ }
+ }
+ }
+
+ /**
+ * Method which allows subclasses to notify listeners that the default
+ * set has changed.
+ * @param oldSet the previous default
+ * @param defaultSet the new default
+ */
+ protected void fireDefaultChangedEvent(final ChangeSet oldSet, final ChangeSet defaultSet) {
+ if (initializing)
+ return;
+ Object[] listeners = getListeners();
+ for (int i = 0; i < listeners.length; i++) {
+ final IChangeSetChangeListener listener = (IChangeSetChangeListener)listeners[i];
+ SafeRunner.run(new ISafeRunnable() {
+ @Override
public void handleException(Throwable exception) {
- // Exceptions are logged by the platform
- }
- @Override
+ // Exceptions are logged by the platform
+ }
+ @Override
public void run() throws Exception {
- listener.defaultSetChanged(oldSet, defaultSet);
- }
- });
- }
- }
-
- /**
- * Add the set to the list of active sets.
- * @param set the set to be added
- */
- public void add(final ChangeSet set) {
- if (!contains(set)) {
- internalGetSets().add(set);
- handleSetAdded(set);
- }
- }
-
- /**
- * Handle the set addition by notifying listeners.
- * @param set the added set
- */
+ listener.defaultSetChanged(oldSet, defaultSet);
+ }
+ });
+ }
+ }
+
+ /**
+ * Add the set to the list of active sets.
+ * @param set the set to be added
+ */
+ public void add(final ChangeSet set) {
+ if (!contains(set)) {
+ internalGetSets().add(set);
+ handleSetAdded(set);
+ }
+ }
+
+ /**
+ * Handle the set addition by notifying listeners.
+ * @param set the added set
+ */
protected void handleSetAdded(final ChangeSet set) {
- if (initializing)
- return;
+ if (initializing)
+ return;
Object[] listeners = getListeners();
for (int i = 0; i < listeners.length; i++) {
- final IChangeSetChangeListener listener = (IChangeSetChangeListener)listeners[i];
- SafeRunner.run(new ISafeRunnable() {
- @Override
+ final IChangeSetChangeListener listener = (IChangeSetChangeListener)listeners[i];
+ SafeRunner.run(new ISafeRunnable() {
+ @Override
public void handleException(Throwable exception) {
- // Exceptions are logged by the platform
- }
- @Override
+ // Exceptions are logged by the platform
+ }
+ @Override
public void run() throws Exception {
- listener.setAdded(set);
- }
- });
+ listener.setAdded(set);
+ }
+ });
}
}
- /**
- * Remove the set from the list of active sets.
- * @param set the set to be removed
- */
- public void remove(final ChangeSet set) {
- if (contains(set)) {
- internalGetSets().remove(set);
- handleSetRemoved(set);
- }
- }
-
- /**
- * Handle the set removal by notifying listeners.
- * @param set the removed set
- */
+ /**
+ * Remove the set from the list of active sets.
+ * @param set the set to be removed
+ */
+ public void remove(final ChangeSet set) {
+ if (contains(set)) {
+ internalGetSets().remove(set);
+ handleSetRemoved(set);
+ }
+ }
+
+ /**
+ * Handle the set removal by notifying listeners.
+ * @param set the removed set
+ */
protected void handleSetRemoved(final ChangeSet set) {
- if (initializing)
- return;
+ if (initializing)
+ return;
Object[] listeners = getListeners();
for (int i = 0; i < listeners.length; i++) {
- final IChangeSetChangeListener listener = (IChangeSetChangeListener)listeners[i];
- SafeRunner.run(new ISafeRunnable() {
- @Override
+ final IChangeSetChangeListener listener = (IChangeSetChangeListener)listeners[i];
+ SafeRunner.run(new ISafeRunnable() {
+ @Override
public void handleException(Throwable exception) {
- // Exceptions are logged by the platform
- }
- @Override
+ // Exceptions are logged by the platform
+ }
+ @Override
public void run() throws Exception {
- listener.setRemoved(set);
- }
- });
+ listener.setRemoved(set);
+ }
+ });
}
}
- /**
- * Return whether the manager contains the given commit set
- * @param set the commit set being tested
- * @return whether the set is contained in the manager's list of active sets
- */
- public boolean contains(ChangeSet set) {
- return internalGetSets().contains(set);
- }
-
- /**
- * Add the listener to the set of registered listeners.
- * @param listener the listener to be added
- */
- public void addListener(IChangeSetChangeListener listener) {
- listeners.add(listener);
- }
-
- /**
- * Remove the listener from the set of registered listeners.
- * @param listener the listener to remove
- */
- public void removeListener(IChangeSetChangeListener listener) {
- listeners.remove(listener);
- }
-
- /**
- * Return the list of active commit sets.
- * @return the list of active commit sets
- */
- public ChangeSet[] getSets() {
- Set<ChangeSet> sets = internalGetSets();
+ /**
+ * Return whether the manager contains the given commit set
+ * @param set the commit set being tested
+ * @return whether the set is contained in the manager's list of active sets
+ */
+ public boolean contains(ChangeSet set) {
+ return internalGetSets().contains(set);
+ }
+
+ /**
+ * Add the listener to the set of registered listeners.
+ * @param listener the listener to be added
+ */
+ public void addListener(IChangeSetChangeListener listener) {
+ listeners.add(listener);
+ }
+
+ /**
+ * Remove the listener from the set of registered listeners.
+ * @param listener the listener to remove
+ */
+ public void removeListener(IChangeSetChangeListener listener) {
+ listeners.remove(listener);
+ }
+
+ /**
+ * Return the list of active commit sets.
+ * @return the list of active commit sets
+ */
+ public ChangeSet[] getSets() {
+ Set<ChangeSet> sets = internalGetSets();
return sets.toArray(new ChangeSet[sets.size()]);
- }
-
- /**
- * Dispose of any resources maintained by the manager
- */
- public void dispose() {
- // Nothing to do
- }
-
- /**
- * Fire resource change notifications to the listeners.
- * @param changeSet
- * @param allAffectedResources
- */
- protected void fireResourcesChangedEvent(final ChangeSet changeSet, final IPath[] allAffectedResources) {
- if (initializing)
- return;
- Object[] listeners = getListeners();
- for (int i = 0; i < listeners.length; i++) {
- final IChangeSetChangeListener listener = (IChangeSetChangeListener)listeners[i];
- SafeRunner.run(new ISafeRunnable() {
- @Override
+ }
+
+ /**
+ * Dispose of any resources maintained by the manager
+ */
+ public void dispose() {
+ // Nothing to do
+ }
+
+ /**
+ * Fire resource change notifications to the listeners.
+ * @param changeSet
+ * @param allAffectedResources
+ */
+ protected void fireResourcesChangedEvent(final ChangeSet changeSet, final IPath[] allAffectedResources) {
+ if (initializing)
+ return;
+ Object[] listeners = getListeners();
+ for (int i = 0; i < listeners.length; i++) {
+ final IChangeSetChangeListener listener = (IChangeSetChangeListener)listeners[i];
+ SafeRunner.run(new ISafeRunnable() {
+ @Override
public void handleException(Throwable exception) {
- // Exceptions are logged by the platform
- }
- @Override
+ // Exceptions are logged by the platform
+ }
+ @Override
public void run() throws Exception {
- listener.resourcesChanged(changeSet, allAffectedResources);
- }
- });
- }
- }
-
- private Set<ChangeSet> internalGetSets() {
- if (sets == null) {
- sets = Collections.synchronizedSet(new HashSet<>());
- try {
- initializing = true;
- initializeSets();
- } finally {
- initializing = false;
- }
- }
- return sets;
- }
-
- /**
- * Initialize the sets contained in this manager.
- * This method is called the first time the sets are accessed.
- */
+ listener.resourcesChanged(changeSet, allAffectedResources);
+ }
+ });
+ }
+ }
+
+ private Set<ChangeSet> internalGetSets() {
+ if (sets == null) {
+ sets = Collections.synchronizedSet(new HashSet<>());
+ try {
+ initializing = true;
+ initializeSets();
+ } finally {
+ initializing = false;
+ }
+ }
+ return sets;
+ }
+
+ /**
+ * Initialize the sets contained in this manager.
+ * This method is called the first time the sets are accessed.
+ */
protected abstract void initializeSets();
public boolean isInitialized() {
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/CheckedInChangeSet.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/CheckedInChangeSet.java
index 9cada75b6..92a65d4a2 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/CheckedInChangeSet.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/CheckedInChangeSet.java
@@ -35,128 +35,128 @@ public abstract class CheckedInChangeSet extends ChangeSet {
private final SyncInfoTree set = new SyncInfoTree();
- public abstract String getAuthor();
-
- public abstract Date getDate();
-
- /**
- * Return the SyncInfoSet that contains the resources that belong to this change set.
- * @return the SyncInfoSet that contains the resources that belong to this change set
- */
- public SyncInfoTree getSyncInfoSet() {
- return set;
- }
-
- /**
- * Return the resources that are contained in this set.
- * @return the resources that are contained in this set
- */
- @Override
+ public abstract String getAuthor();
+
+ public abstract Date getDate();
+
+ /**
+ * Return the SyncInfoSet that contains the resources that belong to this change set.
+ * @return the SyncInfoSet that contains the resources that belong to this change set
+ */
+ public SyncInfoTree getSyncInfoSet() {
+ return set;
+ }
+
+ /**
+ * Return the resources that are contained in this set.
+ * @return the resources that are contained in this set
+ */
+ @Override
public IResource[] getResources() {
- return set.getResources();
- }
-
- /**
- * Return whether the set contains any files.
- * @return whether the set contains any files
- */
- @Override
+ return set.getResources();
+ }
+
+ /**
+ * Return whether the set contains any files.
+ * @return whether the set contains any files
+ */
+ @Override
public boolean isEmpty() {
- return set.isEmpty();
- }
-
- /**
- * Return true if the given file is included in this set.
- * @param local a local file
- * @return true if the given file is included in this set
- */
- @Override
+ return set.isEmpty();
+ }
+
+ /**
+ * Return true if the given file is included in this set.
+ * @param local a local file
+ * @return true if the given file is included in this set
+ */
+ @Override
public boolean contains(IResource local) {
- return set.getSyncInfo(local) != null;
- }
-
- /**
- * Add the resource to this set if it is modified
- * w.r.t. the subscriber.
- * @param info
- */
- public void add(SyncInfo info) {
- if (isValidChange(info)) {
- set.add(info);
- }
- }
-
- /**
- * Return whether the given sync info is a valid change
- * and can be included in this set. This method is used
- * by the <code>add</code> method to filter set additions.
- * @param info a sync info
- * @return whether the sync info is a valid member of this set
- */
- protected boolean isValidChange(SyncInfo info) {
- return (info != null);
- }
-
- /**
- * Add the resources to this set if they are modified
- * w.r.t. the subscriber.
- * @param infos the resources to be added.
- */
- public void add(SyncInfo[] infos) {
- try {
- set.beginInput();
- for (int i = 0; i < infos.length; i++) {
- SyncInfo info = infos[i];
- add(info);
- }
- } finally {
- set.endInput(null);
- }
- }
-
- /**
- * Remove the resource from the set.
- * @param resource the resource to be removed
- */
- @Override
+ return set.getSyncInfo(local) != null;
+ }
+
+ /**
+ * Add the resource to this set if it is modified
+ * w.r.t. the subscriber.
+ * @param info
+ */
+ public void add(SyncInfo info) {
+ if (isValidChange(info)) {
+ set.add(info);
+ }
+ }
+
+ /**
+ * Return whether the given sync info is a valid change
+ * and can be included in this set. This method is used
+ * by the <code>add</code> method to filter set additions.
+ * @param info a sync info
+ * @return whether the sync info is a valid member of this set
+ */
+ protected boolean isValidChange(SyncInfo info) {
+ return (info != null);
+ }
+
+ /**
+ * Add the resources to this set if they are modified
+ * w.r.t. the subscriber.
+ * @param infos the resources to be added.
+ */
+ public void add(SyncInfo[] infos) {
+ try {
+ set.beginInput();
+ for (int i = 0; i < infos.length; i++) {
+ SyncInfo info = infos[i];
+ add(info);
+ }
+ } finally {
+ set.endInput(null);
+ }
+ }
+
+ /**
+ * Remove the resource from the set.
+ * @param resource the resource to be removed
+ */
+ @Override
public void remove(IResource resource) {
- if (contains(resource)) {
- set.remove(resource);
- }
- }
-
- /**
- * Remove the resources from the set.
- * @param resources the resources to be removed
- */
- @Override
+ if (contains(resource)) {
+ set.remove(resource);
+ }
+ }
+
+ /**
+ * Remove the resources from the set.
+ * @param resources the resources to be removed
+ */
+ @Override
public void remove(IResource[] resources) {
- for (int i = 0; i < resources.length; i++) {
- IResource resource = resources[i];
- remove(resource);
- }
- }
-
- /**
- * Remove the resource and it's descendants to the given depth.
- * @param resource the resource to be removed
- * @param depth the depth of the removal (one of
- * <code>IResource.DEPTH_ZERO, IResource.DEPTH_ONE, IResource.DEPTH_INFINITE)</code>
- */
- @Override
+ for (int i = 0; i < resources.length; i++) {
+ IResource resource = resources[i];
+ remove(resource);
+ }
+ }
+
+ /**
+ * Remove the resource and it's descendants to the given depth.
+ * @param resource the resource to be removed
+ * @param depth the depth of the removal (one of
+ * <code>IResource.DEPTH_ZERO, IResource.DEPTH_ONE, IResource.DEPTH_INFINITE)</code>
+ */
+ @Override
public void rootRemoved(IResource resource, int depth) {
- SyncInfo[] infos = set.getSyncInfos(resource, depth);
- if (infos.length > 0) {
- IResource[] resources = new IResource[infos.length];
- for (int i = 0; i < resources.length; i++) {
- resources[i] = infos[i].getLocal();
- }
- set.removeAll(resources);
- }
- }
-
- @Override
+ SyncInfo[] infos = set.getSyncInfos(resource, depth);
+ if (infos.length > 0) {
+ IResource[] resources = new IResource[infos.length];
+ for (int i = 0; i < resources.length; i++) {
+ resources[i] = infos[i].getLocal();
+ }
+ set.removeAll(resources);
+ }
+ }
+
+ @Override
public boolean containsChildren(IResource resource, int depth) {
- return set.getSyncInfos(resource, depth).length > 0;
- }
+ return set.getSyncInfos(resource, depth).length > 0;
+ }
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/DiffChangeSet.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/DiffChangeSet.java
index 0a0798d78..cfb3a92e1 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/DiffChangeSet.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/DiffChangeSet.java
@@ -23,127 +23,127 @@ public class DiffChangeSet extends ChangeSet {
private final ResourceDiffTree tree = new ResourceDiffTree();
- public DiffChangeSet() {
+ public DiffChangeSet() {
super();
}
- public DiffChangeSet(String name) {
- super(name);
- }
+ public DiffChangeSet(String name) {
+ super(name);
+ }
- /**
- * Return the diff tree that contains the resources that belong to this change set.
- * @return the diff tree that contains the resources that belong to this change set
- */
- public IResourceDiffTree getDiffTree() {
- return tree;
- }
+ /**
+ * Return the diff tree that contains the resources that belong to this change set.
+ * @return the diff tree that contains the resources that belong to this change set
+ */
+ public IResourceDiffTree getDiffTree() {
+ return tree;
+ }
- protected ResourceDiffTree internalGetDiffTree() {
- return tree;
- }
+ protected ResourceDiffTree internalGetDiffTree() {
+ return tree;
+ }
- /**
- * Return the resources that are contained in this set.
- * @return the resources that are contained in this set
- */
- @Override
+ /**
+ * Return the resources that are contained in this set.
+ * @return the resources that are contained in this set
+ */
+ @Override
public IResource[] getResources() {
- return tree.getAffectedResources();
- }
-
- /**
- * Return whether the set contains any files.
- * @return whether the set contains any files
- */
- @Override
+ return tree.getAffectedResources();
+ }
+
+ /**
+ * Return whether the set contains any files.
+ * @return whether the set contains any files
+ */
+ @Override
public boolean isEmpty() {
- return tree.isEmpty();
- }
-
- /**
- * Return true if the given file is included in this set.
- * @param local a local file
- * @return true if the given file is included in this set
- */
- @Override
+ return tree.isEmpty();
+ }
+
+ /**
+ * Return true if the given file is included in this set.
+ * @param local a local file
+ * @return true if the given file is included in this set
+ */
+ @Override
public boolean contains(IResource local) {
- return tree.getDiff(local) != null;
- }
-
- /**
- * Add the resource to this set if it is modified
- * w.r.t. the subscriber.
- * @param diff the diff to be added
- */
- public void add(IDiff diff) {
- if (isValidChange(diff)) {
- tree.add(diff);
- }
- }
-
- /**
- * Return whether the given sync info is a valid change
- * and can be included in this set. This method is used
- * by the <code>add</code> method to filter set additions.
- * @param diff a diff
- * @return whether the sync info is a valid member of this set
- */
- protected boolean isValidChange(IDiff diff) {
- return (diff != null);
- }
-
- /**
- * Add the resources to this set if they are modified
- * w.r.t. the subscriber.
- * @param diffs the resources to be added.
- */
- public void add(IDiff[] diffs) {
- try {
- tree.beginInput();
- for (int i = 0; i < diffs.length; i++) {
- IDiff diff = diffs[i];
- add(diff);
- }
- } finally {
- tree.endInput(null);
- }
- }
-
- /**
- * Remove the resource from the set.
- * @param resource the resource to be removed
- */
- @Override
+ return tree.getDiff(local) != null;
+ }
+
+ /**
+ * Add the resource to this set if it is modified
+ * w.r.t. the subscriber.
+ * @param diff the diff to be added
+ */
+ public void add(IDiff diff) {
+ if (isValidChange(diff)) {
+ tree.add(diff);
+ }
+ }
+
+ /**
+ * Return whether the given sync info is a valid change
+ * and can be included in this set. This method is used
+ * by the <code>add</code> method to filter set additions.
+ * @param diff a diff
+ * @return whether the sync info is a valid member of this set
+ */
+ protected boolean isValidChange(IDiff diff) {
+ return (diff != null);
+ }
+
+ /**
+ * Add the resources to this set if they are modified
+ * w.r.t. the subscriber.
+ * @param diffs the resources to be added.
+ */
+ public void add(IDiff[] diffs) {
+ try {
+ tree.beginInput();
+ for (int i = 0; i < diffs.length; i++) {
+ IDiff diff = diffs[i];
+ add(diff);
+ }
+ } finally {
+ tree.endInput(null);
+ }
+ }
+
+ /**
+ * Remove the resource from the set.
+ * @param resource the resource to be removed
+ */
+ @Override
public void remove(IResource resource) {
- if (contains(resource)) {
- tree.remove(resource);
- }
- }
-
- /**
- * Remove the resource and it's descendants to the given depth.
- * @param resource the resource to be removed
- * @param depth the depth of the removal (one of
- * <code>IResource.DEPTH_ZERO, IResource.DEPTH_ONE, IResource.DEPTH_INFINITE)</code>
- */
- @Override
+ if (contains(resource)) {
+ tree.remove(resource);
+ }
+ }
+
+ /**
+ * Remove the resource and it's descendants to the given depth.
+ * @param resource the resource to be removed
+ * @param depth the depth of the removal (one of
+ * <code>IResource.DEPTH_ZERO, IResource.DEPTH_ONE, IResource.DEPTH_INFINITE)</code>
+ */
+ @Override
public void rootRemoved(IResource resource, int depth) {
- IDiff[] diffs = tree.getDiffs(resource, depth);
- if (diffs.length > 0) {
- try {
- tree.beginInput();
- for (int i = 0; i < diffs.length; i++) {
+ IDiff[] diffs = tree.getDiffs(resource, depth);
+ if (diffs.length > 0) {
+ try {
+ tree.beginInput();
+ for (int i = 0; i < diffs.length; i++) {
IDiff diff = diffs[i];
IResource r = tree.getResource(diff);
if (r != null)
tree.remove(r);
}
- } finally {
- tree.endInput(null);
- }
- }
- }
+ } finally {
+ tree.endInput(null);
+ }
+ }
+ }
public boolean contains(IPath path) {
return getDiffTree().getDiff(path) != null;
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/IChangeSetChangeListener.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/IChangeSetChangeListener.java
index ec42f7711..78f125f8a 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/IChangeSetChangeListener.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/IChangeSetChangeListener.java
@@ -22,41 +22,41 @@ import org.eclipse.core.runtime.IPath;
*/
public interface IChangeSetChangeListener {
- /**
- * The given set has been added to the set manager.
- * @param set the added set
- */
- void setAdded(ChangeSet set);
-
- /**
- * The default change set has change to be the given set.
- * All new modifications will be placed in the default
- * set.
- * @param previousDefault
- * @param set the default set
- */
- void defaultSetChanged(ChangeSet previousDefault, ChangeSet set);
-
- /**
- * The given set has been removed from the set manager.
- * @param set the removed set
- */
- void setRemoved(ChangeSet set);
-
- /**
- * The title of the given set has changed.
- * @param set the set whose title changed
- */
- void nameChanged(ChangeSet set);
-
- /**
- * The state of the given resources have change with respect to the
- * given set. This means that the resource have either been added
- * or removed from the set. Callers can use the resources contained
- * in the set to determine if each resource is an addition or removal.
- * @param set the set that has changed
- * @param paths the paths of the resources whose containment state has changed w.r.t the set
- */
- void resourcesChanged(ChangeSet set, IPath[] paths);
+ /**
+ * The given set has been added to the set manager.
+ * @param set the added set
+ */
+ void setAdded(ChangeSet set);
+
+ /**
+ * The default change set has change to be the given set.
+ * All new modifications will be placed in the default
+ * set.
+ * @param previousDefault
+ * @param set the default set
+ */
+ void defaultSetChanged(ChangeSet previousDefault, ChangeSet set);
+
+ /**
+ * The given set has been removed from the set manager.
+ * @param set the removed set
+ */
+ void setRemoved(ChangeSet set);
+
+ /**
+ * The title of the given set has changed.
+ * @param set the set whose title changed
+ */
+ void nameChanged(ChangeSet set);
+
+ /**
+ * The state of the given resources have change with respect to the
+ * given set. This means that the resource have either been added
+ * or removed from the set. Callers can use the resources contained
+ * in the set to determine if each resource is an addition or removal.
+ * @param set the set that has changed
+ * @param paths the paths of the resources whose containment state has changed w.r.t the set
+ */
+ void resourcesChanged(ChangeSet set, IPath[] paths);
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberChangeSetManager.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberChangeSetManager.java
index 462860ca5..c34010237 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberChangeSetManager.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberChangeSetManager.java
@@ -42,288 +42,288 @@ import org.osgi.service.prefs.Preferences;
*/
public class SubscriberChangeSetManager extends ActiveChangeSetManager {
- private static final String PREF_CHANGE_SETS = "changeSets"; //$NON-NLS-1$
+ private static final String PREF_CHANGE_SETS = "changeSets"; //$NON-NLS-1$
- private static final int RESOURCE_REMOVAL = 1;
- private static final int RESOURCE_CHANGE = 2;
+ private static final int RESOURCE_REMOVAL = 1;
+ private static final int RESOURCE_CHANGE = 2;
- private EventHandler handler;
- private ResourceCollector collector;
+ private EventHandler handler;
+ private ResourceCollector collector;
- /*
- * Background event handler for serializing and batching change set changes
- */
- private class EventHandler extends BackgroundEventHandler {
+ /*
+ * Background event handler for serializing and batching change set changes
+ */
+ private class EventHandler extends BackgroundEventHandler {
- private List<Event> dispatchEvents = new ArrayList<>();
+ private List<Event> dispatchEvents = new ArrayList<>();
- protected EventHandler(String jobName, String errorTitle) {
- super(jobName, errorTitle);
- }
+ protected EventHandler(String jobName, String errorTitle) {
+ super(jobName, errorTitle);
+ }
- @Override
+ @Override
protected void processEvent(Event event, IProgressMonitor monitor) throws CoreException {
- // Handle everything in the dispatch
- if (isShutdown())
- throw new OperationCanceledException();
- dispatchEvents.add(event);
- }
+ // Handle everything in the dispatch
+ if (isShutdown())
+ throw new OperationCanceledException();
+ dispatchEvents.add(event);
+ }
- @Override
+ @Override
protected boolean doDispatchEvents(IProgressMonitor monitor) throws TeamException {
- if (dispatchEvents.isEmpty()) {
- return false;
- }
- if (isShutdown())
- throw new OperationCanceledException();
- ResourceDiffTree[] locked = null;
- try {
- locked = beginDispath();
- for (Iterator iter = dispatchEvents.iterator(); iter.hasNext();) {
- Event event = (Event) iter.next();
- switch (event.getType()) {
- case RESOURCE_REMOVAL:
- handleRemove(event.getResource());
- break;
- case RESOURCE_CHANGE:
- handleChange(event.getResource(), ((ResourceEvent)event).getDepth());
- break;
- default:
- break;
- }
- if (isShutdown())
- throw new OperationCanceledException();
- }
- } catch (CoreException e) {
+ if (dispatchEvents.isEmpty()) {
+ return false;
+ }
+ if (isShutdown())
+ throw new OperationCanceledException();
+ ResourceDiffTree[] locked = null;
+ try {
+ locked = beginDispath();
+ for (Iterator iter = dispatchEvents.iterator(); iter.hasNext();) {
+ Event event = (Event) iter.next();
+ switch (event.getType()) {
+ case RESOURCE_REMOVAL:
+ handleRemove(event.getResource());
+ break;
+ case RESOURCE_CHANGE:
+ handleChange(event.getResource(), ((ResourceEvent)event).getDepth());
+ break;
+ default:
+ break;
+ }
+ if (isShutdown())
+ throw new OperationCanceledException();
+ }
+ } catch (CoreException e) {
throw TeamException.asTeamException(e);
} finally {
- try {
- endDispatch(locked, monitor);
- } finally {
- dispatchEvents.clear();
- }
- }
- return true;
- }
-
- /*
- * Begin input on all the sets and return the sync sets that were
- * locked. If this method throws an exception then the client
- * can assume that no sets were locked
- */
- private ResourceDiffTree[] beginDispath() {
- ChangeSet[] sets = getSets();
- List<ResourceDiffTree> lockedSets = new ArrayList<>();
- try {
- for (int i = 0; i < sets.length; i++) {
- ActiveChangeSet set = (ActiveChangeSet)sets[i];
- ResourceDiffTree tree = set.internalGetDiffTree();
- lockedSets.add(tree);
- tree.beginInput();
- }
- return lockedSets.toArray(new ResourceDiffTree[lockedSets.size()]);
- } catch (RuntimeException e) {
- try {
- for (Iterator iter = lockedSets.iterator(); iter.hasNext();) {
- ResourceDiffTree tree = (ResourceDiffTree) iter.next();
- try {
- tree.endInput(null);
- } catch (Throwable e1) {
- // Ignore so that original exception is not masked
- }
- }
- } catch (Throwable e1) {
- // Ignore so that original exception is not masked
- }
- throw e;
- }
- }
-
- private void endDispatch(ResourceDiffTree[] locked, IProgressMonitor monitor) {
- if (locked == null) {
- // The begin failed so there's nothing to unlock
- return;
- }
- monitor.beginTask(null, 100 * locked.length);
- for (int i = 0; i < locked.length; i++) {
- ResourceDiffTree tree = locked[i];
- try {
- tree.endInput(Policy.subMonitorFor(monitor, 100));
- } catch (RuntimeException e) {
- // Don't worry about ending every set if an error occurs.
- // Instead, log the error and suggest a restart.
- TeamPlugin.log(IStatus.ERROR, Messages.SubscriberChangeSetCollector_0, e);
- throw e;
- }
- }
- monitor.done();
- }
-
- @Override
+ try {
+ endDispatch(locked, monitor);
+ } finally {
+ dispatchEvents.clear();
+ }
+ }
+ return true;
+ }
+
+ /*
+ * Begin input on all the sets and return the sync sets that were
+ * locked. If this method throws an exception then the client
+ * can assume that no sets were locked
+ */
+ private ResourceDiffTree[] beginDispath() {
+ ChangeSet[] sets = getSets();
+ List<ResourceDiffTree> lockedSets = new ArrayList<>();
+ try {
+ for (int i = 0; i < sets.length; i++) {
+ ActiveChangeSet set = (ActiveChangeSet)sets[i];
+ ResourceDiffTree tree = set.internalGetDiffTree();
+ lockedSets.add(tree);
+ tree.beginInput();
+ }
+ return lockedSets.toArray(new ResourceDiffTree[lockedSets.size()]);
+ } catch (RuntimeException e) {
+ try {
+ for (Iterator iter = lockedSets.iterator(); iter.hasNext();) {
+ ResourceDiffTree tree = (ResourceDiffTree) iter.next();
+ try {
+ tree.endInput(null);
+ } catch (Throwable e1) {
+ // Ignore so that original exception is not masked
+ }
+ }
+ } catch (Throwable e1) {
+ // Ignore so that original exception is not masked
+ }
+ throw e;
+ }
+ }
+
+ private void endDispatch(ResourceDiffTree[] locked, IProgressMonitor monitor) {
+ if (locked == null) {
+ // The begin failed so there's nothing to unlock
+ return;
+ }
+ monitor.beginTask(null, 100 * locked.length);
+ for (int i = 0; i < locked.length; i++) {
+ ResourceDiffTree tree = locked[i];
+ try {
+ tree.endInput(Policy.subMonitorFor(monitor, 100));
+ } catch (RuntimeException e) {
+ // Don't worry about ending every set if an error occurs.
+ // Instead, log the error and suggest a restart.
+ TeamPlugin.log(IStatus.ERROR, Messages.SubscriberChangeSetCollector_0, e);
+ throw e;
+ }
+ }
+ monitor.done();
+ }
+
+ @Override
protected synchronized void queueEvent(Event event, boolean front) {
- // Override to allow access from enclosing class
- super.queueEvent(event, front);
- }
-
- /*
- * Handle the removal
- */
- private void handleRemove(IResource resource) {
- ChangeSet[] sets = getSets();
- for (int i = 0; i < sets.length; i++) {
- ChangeSet set = sets[i];
- // This will remove any descendants from the set and callback to
- // resourcesChanged which will batch changes
- if (!set.isEmpty()) {
- set.rootRemoved(resource, IResource.DEPTH_INFINITE);
- if (set.isEmpty()) {
- remove(set);
- }
- }
- }
- }
-
- /*
- * Handle the change
- */
- private void handleChange(IResource resource, int depth) throws CoreException {
- IDiff diff = getDiff(resource);
- if (isModified(diff)) {
- ActiveChangeSet[] containingSets = getContainingSets(resource);
- if (containingSets.length == 0) {
- // Consider for inclusion in the default set
- // if the resource is not already a member of another set
- if (getDefaultSet() != null) {
- getDefaultSet().add(diff);
- }
- } else {
- for (int i = 0; i < containingSets.length; i++) {
- ActiveChangeSet set = containingSets[i];
- // Update the sync info in the set
- set.add(diff);
- }
- }
- } else {
- removeFromAllSets(resource);
- }
- if (depth != IResource.DEPTH_ZERO) {
- IResource[] members = getSubscriber().members(resource);
- for (int i = 0; i < members.length; i++) {
- IResource member = members[i];
- handleChange(member, depth == IResource.DEPTH_ONE ? IResource.DEPTH_ZERO : IResource.DEPTH_INFINITE);
- }
- }
- }
-
- private void removeFromAllSets(IResource resource) {
- List<ChangeSet> toRemove = new ArrayList<>();
- ChangeSet[] sets = getSets();
- for (int i = 0; i < sets.length; i++) {
- ChangeSet set = sets[i];
- if (set.contains(resource)) {
- set.remove(resource);
- if (set.isEmpty()) {
- toRemove.add(set);
- }
- }
- }
- for (Object element : toRemove) {
- ActiveChangeSet set = (ActiveChangeSet) element;
- remove(set);
- }
- }
-
- private ActiveChangeSet[] getContainingSets(IResource resource) {
- Set<ActiveChangeSet> result = new HashSet<>();
- ChangeSet[] sets = getSets();
- for (int i = 0; i < sets.length; i++) {
- ChangeSet set = sets[i];
- if (set.contains(resource)) {
- result.add((ActiveChangeSet) set);
- }
- }
- return result.toArray(new ActiveChangeSet[result.size()]);
- }
- }
-
- private class ResourceCollector extends SubscriberResourceCollector {
-
- public ResourceCollector(Subscriber subscriber) {
- super(subscriber);
- }
-
- @Override
+ // Override to allow access from enclosing class
+ super.queueEvent(event, front);
+ }
+
+ /*
+ * Handle the removal
+ */
+ private void handleRemove(IResource resource) {
+ ChangeSet[] sets = getSets();
+ for (int i = 0; i < sets.length; i++) {
+ ChangeSet set = sets[i];
+ // This will remove any descendants from the set and callback to
+ // resourcesChanged which will batch changes
+ if (!set.isEmpty()) {
+ set.rootRemoved(resource, IResource.DEPTH_INFINITE);
+ if (set.isEmpty()) {
+ remove(set);
+ }
+ }
+ }
+ }
+
+ /*
+ * Handle the change
+ */
+ private void handleChange(IResource resource, int depth) throws CoreException {
+ IDiff diff = getDiff(resource);
+ if (isModified(diff)) {
+ ActiveChangeSet[] containingSets = getContainingSets(resource);
+ if (containingSets.length == 0) {
+ // Consider for inclusion in the default set
+ // if the resource is not already a member of another set
+ if (getDefaultSet() != null) {
+ getDefaultSet().add(diff);
+ }
+ } else {
+ for (int i = 0; i < containingSets.length; i++) {
+ ActiveChangeSet set = containingSets[i];
+ // Update the sync info in the set
+ set.add(diff);
+ }
+ }
+ } else {
+ removeFromAllSets(resource);
+ }
+ if (depth != IResource.DEPTH_ZERO) {
+ IResource[] members = getSubscriber().members(resource);
+ for (int i = 0; i < members.length; i++) {
+ IResource member = members[i];
+ handleChange(member, depth == IResource.DEPTH_ONE ? IResource.DEPTH_ZERO : IResource.DEPTH_INFINITE);
+ }
+ }
+ }
+
+ private void removeFromAllSets(IResource resource) {
+ List<ChangeSet> toRemove = new ArrayList<>();
+ ChangeSet[] sets = getSets();
+ for (int i = 0; i < sets.length; i++) {
+ ChangeSet set = sets[i];
+ if (set.contains(resource)) {
+ set.remove(resource);
+ if (set.isEmpty()) {
+ toRemove.add(set);
+ }
+ }
+ }
+ for (Object element : toRemove) {
+ ActiveChangeSet set = (ActiveChangeSet) element;
+ remove(set);
+ }
+ }
+
+ private ActiveChangeSet[] getContainingSets(IResource resource) {
+ Set<ActiveChangeSet> result = new HashSet<>();
+ ChangeSet[] sets = getSets();
+ for (int i = 0; i < sets.length; i++) {
+ ChangeSet set = sets[i];
+ if (set.contains(resource)) {
+ result.add((ActiveChangeSet) set);
+ }
+ }
+ return result.toArray(new ActiveChangeSet[result.size()]);
+ }
+ }
+
+ private class ResourceCollector extends SubscriberResourceCollector {
+
+ public ResourceCollector(Subscriber subscriber) {
+ super(subscriber);
+ }
+
+ @Override
protected void remove(IResource resource) {
- if (handler != null)
- handler.queueEvent(new BackgroundEventHandler.ResourceEvent(resource, RESOURCE_REMOVAL, IResource.DEPTH_INFINITE), false);
- }
+ if (handler != null)
+ handler.queueEvent(new BackgroundEventHandler.ResourceEvent(resource, RESOURCE_REMOVAL, IResource.DEPTH_INFINITE), false);
+ }
- @Override
+ @Override
protected void change(IResource resource, int depth) {
- if (handler != null)
- handler.queueEvent(new BackgroundEventHandler.ResourceEvent(resource, RESOURCE_CHANGE, depth), false);
- }
+ if (handler != null)
+ handler.queueEvent(new BackgroundEventHandler.ResourceEvent(resource, RESOURCE_CHANGE, depth), false);
+ }
- @Override
+ @Override
protected boolean hasMembers(IResource resource) {
- return SubscriberChangeSetManager.this.hasMembers(resource);
- }
- }
+ return SubscriberChangeSetManager.this.hasMembers(resource);
+ }
+ }
- public SubscriberChangeSetManager(Subscriber subscriber) {
- collector = new ResourceCollector(subscriber);
- handler = new EventHandler(NLS.bind(Messages.SubscriberChangeSetCollector_1, new String[] { subscriber.getName() }), NLS.bind(Messages.SubscriberChangeSetCollector_2, new String[] { subscriber.getName() })); //
- }
+ public SubscriberChangeSetManager(Subscriber subscriber) {
+ collector = new ResourceCollector(subscriber);
+ handler = new EventHandler(NLS.bind(Messages.SubscriberChangeSetCollector_1, new String[] { subscriber.getName() }), NLS.bind(Messages.SubscriberChangeSetCollector_2, new String[] { subscriber.getName() })); //
+ }
- @Override
+ @Override
protected void initializeSets() {
- load(getPreferences());
- }
-
- public boolean hasMembers(IResource resource) {
- ChangeSet[] sets = getSets();
- for (int i = 0; i < sets.length; i++) {
- ActiveChangeSet set = (ActiveChangeSet)sets[i];
- if (set.getDiffTree().getChildren(resource.getFullPath()).length > 0)
- return true;
- }
- if (getDefaultSet() != null)
- return (getDefaultSet().getDiffTree().getChildren(resource.getFullPath()).length > 0);
- return false;
- }
-
- /**
- * Return the sync info for the given resource obtained
- * from the subscriber.
- * @param resource the resource
- * @return the sync info for the resource
- * @throws CoreException
- */
- @Override
+ load(getPreferences());
+ }
+
+ public boolean hasMembers(IResource resource) {
+ ChangeSet[] sets = getSets();
+ for (int i = 0; i < sets.length; i++) {
+ ActiveChangeSet set = (ActiveChangeSet)sets[i];
+ if (set.getDiffTree().getChildren(resource.getFullPath()).length > 0)
+ return true;
+ }
+ if (getDefaultSet() != null)
+ return (getDefaultSet().getDiffTree().getChildren(resource.getFullPath()).length > 0);
+ return false;
+ }
+
+ /**
+ * Return the sync info for the given resource obtained
+ * from the subscriber.
+ * @param resource the resource
+ * @return the sync info for the resource
+ * @throws CoreException
+ */
+ @Override
public IDiff getDiff(IResource resource) throws CoreException {
- Subscriber subscriber = getSubscriber();
- return subscriber.getDiff(resource);
- }
-
- /**
- * Return the subscriber associated with this collector.
- * @return the subscriber associated with this collector
- */
- public Subscriber getSubscriber() {
- return collector.getSubscriber();
- }
-
- @Override
+ Subscriber subscriber = getSubscriber();
+ return subscriber.getDiff(resource);
+ }
+
+ /**
+ * Return the subscriber associated with this collector.
+ * @return the subscriber associated with this collector
+ */
+ public Subscriber getSubscriber() {
+ return collector.getSubscriber();
+ }
+
+ @Override
public void dispose() {
- handler.shutdown();
- collector.dispose();
- super.dispose();
- save(getPreferences());
- }
+ handler.shutdown();
+ collector.dispose();
+ super.dispose();
+ save(getPreferences());
+ }
- private Preferences getPreferences() {
- return getParentPreferences().node(getSubscriberIdentifier());
- }
+ private Preferences getPreferences() {
+ return getParentPreferences().node(getSubscriberIdentifier());
+ }
private static Preferences getParentPreferences() {
return getTeamPreferences().node(PREF_CHANGE_SETS);
@@ -333,21 +333,21 @@ public class SubscriberChangeSetManager extends ActiveChangeSetManager {
return InstanceScope.INSTANCE.getNode(TeamPlugin.getPlugin().getBundle().getSymbolicName());
}
- /**
- * Return the id that will uniquely identify the subscriber across
- * restarts.
- * @return the id that will uniquely identify the subscriber across
- */
- protected String getSubscriberIdentifier() {
- return getSubscriber().getName();
- }
-
- /**
- * Wait until the collector is done processing any events.
- * This method is for testing purposes only.
- * @param monitor
- */
- public void waitUntilDone(IProgressMonitor monitor) {
+ /**
+ * Return the id that will uniquely identify the subscriber across
+ * restarts.
+ * @return the id that will uniquely identify the subscriber across
+ */
+ protected String getSubscriberIdentifier() {
+ return getSubscriber().getName();
+ }
+
+ /**
+ * Wait until the collector is done processing any events.
+ * This method is for testing purposes only.
+ * @param monitor
+ */
+ public void waitUntilDone(IProgressMonitor monitor) {
monitor.worked(1);
// wait for the event handler to process changes.
while(handler.getEventHandlerJob().getState() != Job.NONE) {
@@ -359,7 +359,7 @@ public class SubscriberChangeSetManager extends ActiveChangeSetManager {
Policy.checkCanceled(monitor);
}
monitor.worked(1);
- }
+ }
@Override
protected String getName() {
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberDiffTreeEventHandler.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberDiffTreeEventHandler.java
index c6454da7c..4fbe86525 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberDiffTreeEventHandler.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberDiffTreeEventHandler.java
@@ -205,7 +205,7 @@ public class SubscriberDiffTreeEventHandler extends SubscriberEventHandler {
protected void dispatchEvents(SubscriberEvent[] events,
IProgressMonitor monitor) {
try {
- tree.beginInput();
+ tree.beginInput();
for (int i = 0; i < events.length; i++) {
SubscriberEvent event = events[i];
switch (event.getType()) {
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberEventHandler.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberEventHandler.java
index 79355152b..94e2495a4 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberEventHandler.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberEventHandler.java
@@ -310,15 +310,15 @@ public abstract class SubscriberEventHandler extends BackgroundEventHandler {
break;
case SubscriberEvent.CHANGE :
collect(
- event.getResource(),
- ((ResourceEvent)event).getDepth(),
+ event.getResource(),
+ ((ResourceEvent)event).getDepth(),
monitor);
break;
case SubscriberEvent.INITIALIZE :
monitor.subTask(NLS.bind(Messages.SubscriberEventHandler_2, new String[] { event.getResource().getFullPath().toString() }));
collectAll(
- event.getResource(),
- ((ResourceEvent)event).getDepth(),
+ event.getResource(),
+ ((ResourceEvent)event).getDepth(),
Policy.subMonitorFor(monitor, 64));
break;
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberResourceCollector.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberResourceCollector.java
index f202ca6e3..04b85e69f 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberResourceCollector.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberResourceCollector.java
@@ -32,19 +32,19 @@ import org.eclipse.team.core.subscribers.Subscriber;
*/
public abstract class SubscriberResourceCollector implements IResourceChangeListener, ISubscriberChangeListener {
- Subscriber subscriber;
-
- /**
- * Create the collector and register it as a listener with the workspace
- * and the subscriber.
- * @param subscriber the subscriber to be associated with this collector
- */
- public SubscriberResourceCollector(Subscriber subscriber) {
- Assert.isNotNull(subscriber);
- this.subscriber = subscriber;
+ Subscriber subscriber;
+
+ /**
+ * Create the collector and register it as a listener with the workspace
+ * and the subscriber.
+ * @param subscriber the subscriber to be associated with this collector
+ */
+ public SubscriberResourceCollector(Subscriber subscriber) {
+ Assert.isNotNull(subscriber);
+ this.subscriber = subscriber;
ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);
subscriber.addListener(this);
- }
+ }
/**
* Returns the <code>Subscriber</code> associated with this collector.
@@ -55,9 +55,9 @@ public abstract class SubscriberResourceCollector implements IResourceChangeList
return subscriber;
}
- /**
- * De-register the listeners for this collector.
- */
+ /**
+ * De-register the listeners for this collector.
+ */
public void dispose() {
getSubscriber().removeListener(this);
ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
@@ -65,14 +65,14 @@ public abstract class SubscriberResourceCollector implements IResourceChangeList
@Override
public void subscriberResourceChanged(ISubscriberChangeEvent[] deltas) {
- try {
- beginInput();
+ try {
+ beginInput();
IResource[] roots = getRoots();
for (int i = 0; i < deltas.length; i++) {
switch (deltas[i].getFlags()) {
case ISubscriberChangeEvent.SYNC_CHANGED :
if (isAllRootsIncluded() || isDescendantOfRoot(deltas[i].getResource(), roots)) {
- change(deltas[i].getResource(), IResource.DEPTH_ZERO);
+ change(deltas[i].getResource(), IResource.DEPTH_ZERO);
}
break;
case ISubscriberChangeEvent.ROOT_REMOVED :
@@ -85,42 +85,42 @@ public abstract class SubscriberResourceCollector implements IResourceChangeList
break;
}
}
- } finally {
- endInput();
- }
+ } finally {
+ endInput();
+ }
}
- /**
- * This method is invoked at the beginning of a subscriber change event
- * or resource delta event. The endInput method will be invoked at some point
- * following this. There may be several invocations of remove or change
- * in between.
- */
- protected void beginInput() {
- // Do nothing by default
- }
-
- /**
- * The processing of the resource or subscriber delta has finished.
- * Subclasses can accumulate removals and changes and handle them
- * at this point to allow batched change events.
- */
- protected void endInput() {
- // Do nothing by default
- }
+ /**
+ * This method is invoked at the beginning of a subscriber change event
+ * or resource delta event. The endInput method will be invoked at some point
+ * following this. There may be several invocations of remove or change
+ * in between.
+ */
+ protected void beginInput() {
+ // Do nothing by default
+ }
+
+ /**
+ * The processing of the resource or subscriber delta has finished.
+ * Subclasses can accumulate removals and changes and handle them
+ * at this point to allow batched change events.
+ */
+ protected void endInput() {
+ // Do nothing by default
+ }
@Override
public void resourceChanged(IResourceChangeEvent event) {
- try {
- beginInput();
+ try {
+ beginInput();
processDelta(event.getDelta(), getRoots());
- } finally {
- endInput();
- }
+ } finally {
+ endInput();
+ }
}
- /**
+ /**
* Process the resource delta and posts all necessary events to the background
* event handler.
*
@@ -133,8 +133,8 @@ public abstract class SubscriberResourceCollector implements IResourceChangeList
if (resource.getType() == IResource.PROJECT) {
// Handle projects that should be removed from the collector
if (((kind & IResourceDelta.REMOVED) != 0) /* deleted project */
- || (delta.getFlags() & IResourceDelta.OPEN) != 0 && !((IProject) resource).isOpen() /* closed project */
- || !isAncestorOfRoot(resource, roots)) /* not within subscriber roots */ {
+ || (delta.getFlags() & IResourceDelta.OPEN) != 0 && !((IProject) resource).isOpen() /* closed project */
+ || !isAncestorOfRoot(resource, roots)) /* not within subscriber roots */ {
// If the project has any entries in the sync set, remove them
if (hasMembers(resource)) {
remove(resource);
@@ -178,8 +178,8 @@ public abstract class SubscriberResourceCollector implements IResourceChangeList
* Return the root resources that are to be considered by this handler.
* These may be either the subscriber roots or a set of resources that are
* contained by the subscriber's roots.
- * @return the root resources that are to be considered by this handler
- */
+ * @return the root resources that are to be considered by this handler
+ */
protected IResource[] getRoots() {
return getSubscriber().roots();
}
@@ -188,38 +188,38 @@ public abstract class SubscriberResourceCollector implements IResourceChangeList
* Return whether the given resource, which is not
* within the roots of this handler, has children
* that are.
- * @param resource the resource
- * @return whether the resource has children that are being considered
- * by this handler.
- */
- protected abstract boolean hasMembers(IResource resource);
-
- /**
- * The resource is no longer of concern to the subscriber.
- * Remove the resource and any of it's descendants
- * from the set of resources being collected.
- * @param resource the resource to be removed along with its
- * descendants.
- */
- protected abstract void remove(IResource resource);
-
- /**
- * The resource sync state has changed to the depth specified.
- * @param resource the resource
- * @param depth the depth
- */
- protected abstract void change(IResource resource, int depth);
+ * @param resource the resource
+ * @return whether the resource has children that are being considered
+ * by this handler.
+ */
+ protected abstract boolean hasMembers(IResource resource);
+
+ /**
+ * The resource is no longer of concern to the subscriber.
+ * Remove the resource and any of it's descendants
+ * from the set of resources being collected.
+ * @param resource the resource to be removed along with its
+ * descendants.
+ */
+ protected abstract void remove(IResource resource);
+
+ /**
+ * The resource sync state has changed to the depth specified.
+ * @param resource the resource
+ * @param depth the depth
+ */
+ protected abstract void change(IResource resource, int depth);
/**
* Return whether all roots of a subscriber are included or
* if the collector is only consider a subset of the resources.
- * @return whether all roots of a subscriber are included
- */
+ * @return whether all roots of a subscriber are included
+ */
protected boolean isAllRootsIncluded() {
return true;
}
- private boolean isAncestorOfRoot(IResource parent, IResource[] roots) {
+ private boolean isAncestorOfRoot(IResource parent, IResource[] roots) {
// Always traverse into projects in case a root was removed
if (parent.getType() == IResource.ROOT) return true;
for (int i = 0; i < roots.length; i++) {
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberSyncInfoCollector.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberSyncInfoCollector.java
index 9ac9c4554..e14f38c7d 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberSyncInfoCollector.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberSyncInfoCollector.java
@@ -51,7 +51,7 @@ public final class SubscriberSyncInfoCollector extends SubscriberResourceCollect
* @param roots the roots of the out-of-sync resources to be collected
*/
public SubscriberSyncInfoCollector(Subscriber subscriber, IResource[] roots) {
- super(subscriber);
+ super(subscriber);
this.roots = roots;
this.eventHandler = new SubscriberSyncInfoEventHandler(subscriber, roots);
this.subscriberInput = eventHandler.getSyncSetInput();
@@ -196,18 +196,18 @@ public final class SubscriberSyncInfoCollector extends SubscriberResourceCollect
reset();
}
- @Override
+ @Override
protected boolean hasMembers(IResource resource) {
- return getSubscriberSyncInfoSet().hasMembers(resource);
- }
+ return getSubscriberSyncInfoSet().hasMembers(resource);
+ }
- @Override
+ @Override
protected void remove(IResource resource) {
- eventHandler.remove(resource);
- }
+ eventHandler.remove(resource);
+ }
- @Override
+ @Override
protected void change(IResource resource, int depth) {
- eventHandler.change(resource, depth);
- }
+ eventHandler.change(resource, depth);
+ }
}
diff --git a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberSyncInfoEventHandler.java b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberSyncInfoEventHandler.java
index a6128cd21..72379bb7c 100644
--- a/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberSyncInfoEventHandler.java
+++ b/bundles/org.eclipse.team.core/src/org/eclipse/team/internal/core/subscribers/SubscriberSyncInfoEventHandler.java
@@ -179,7 +179,7 @@ public class SubscriberSyncInfoEventHandler extends SubscriberEventHandler {
protected void dispatchEvents(SubscriberEvent[] events, IProgressMonitor monitor) {
// this will batch the following set changes until endInput is called.
SubscriberSyncInfoSet syncSet = syncSetInput.getSyncSet();
- try {
+ try {
syncSet.beginInput();
for (int i = 0; i < events.length; i++) {
SubscriberEvent event = events[i];

Back to the top