diff options
| author | Dani Megert | 2012-04-11 16:23:20 +0000 |
|---|---|---|
| committer | Dani Megert | 2012-04-11 16:23:20 +0000 |
| commit | ab64fff09e017c0471e09730735ee099fedad75e (patch) | |
| tree | a1b5f9ad09fc3682bee3ee60a5363c062fffec64 | |
| parent | 3e11700c446525cd84deb3f79af0e27aa610902a (diff) | |
| download | eclipse.pde.ui-ab64fff09e017c0471e09730735ee099fedad75e.tar.gz eclipse.pde.ui-ab64fff09e017c0471e09730735ee099fedad75e.tar.xz eclipse.pde.ui-ab64fff09e017c0471e09730735ee099fedad75e.zip | |
Fixed bug 361389: API Tools quick fix changes all line delimiters in
.api_filters
| -rw-r--r-- | apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiFilterStore.java | 63 |
1 files changed, 44 insertions, 19 deletions
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiFilterStore.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiFilterStore.java index 535c674bed..36827ede4f 100644 --- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiFilterStore.java +++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiFilterStore.java @@ -23,6 +23,31 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; + +import org.eclipse.pde.api.tools.internal.problems.ApiProblemFactory; +import org.eclipse.pde.api.tools.internal.problems.ApiProblemFilter; +import org.eclipse.pde.api.tools.internal.provisional.ApiPlugin; +import org.eclipse.pde.api.tools.internal.provisional.IApiFilterStore; +import org.eclipse.pde.api.tools.internal.provisional.problems.IApiProblem; +import org.eclipse.pde.api.tools.internal.provisional.problems.IApiProblemFilter; +import org.eclipse.pde.api.tools.internal.util.Util; + +import org.eclipse.core.runtime.Assert; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.SubMonitor; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.core.runtime.preferences.IScopeContext; +import org.eclipse.core.runtime.preferences.InstanceScope; + import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; @@ -31,28 +56,11 @@ import org.eclipse.core.resources.IResourceChangeEvent; import org.eclipse.core.resources.IResourceChangeListener; import org.eclipse.core.resources.IResourceDelta; import org.eclipse.core.resources.IncrementalProjectBuilder; +import org.eclipse.core.resources.ProjectScope; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.resources.WorkspaceJob; -import org.eclipse.core.runtime.Assert; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.SubMonitor; -import org.eclipse.core.runtime.jobs.Job; + import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.pde.api.tools.internal.problems.ApiProblemFactory; -import org.eclipse.pde.api.tools.internal.problems.ApiProblemFilter; -import org.eclipse.pde.api.tools.internal.provisional.ApiPlugin; -import org.eclipse.pde.api.tools.internal.provisional.IApiFilterStore; -import org.eclipse.pde.api.tools.internal.provisional.problems.IApiProblem; -import org.eclipse.pde.api.tools.internal.provisional.problems.IApiProblemFilter; -import org.eclipse.pde.api.tools.internal.util.Util; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; /** * Base implementation of a filter store for API components @@ -144,6 +152,8 @@ public class ApiFilterStore implements IApiFilterStore, IResourceChangeListener } return Status.OK_STATUS; } + String lineDelimiter= getLineDelimiterPreference(file); + xml= xml.replaceAll(System.getProperty("line.separator"), lineDelimiter); //$NON-NLS-1$ InputStream xstream = Util.getInputStreamFromString(xml); if(xstream == null) { return Status.CANCEL_STATUS; @@ -730,6 +740,21 @@ public class ApiFilterStore implements IApiFilterStore, IResourceChangeListener } return new Path(SETTINGS_FOLDER).append(IApiCoreConstants.API_FILTERS_XML_NAME); } + + static String getLineDelimiterPreference(IFile file) { + IScopeContext[] scopeContext; + if (file != null && file.getProject() != null) { + // project preference + scopeContext= new IScopeContext[] { new ProjectScope(file.getProject()) }; + String lineDelimiter= Platform.getPreferencesService().getString(Platform.PI_RUNTIME, Platform.PREF_LINE_SEPARATOR, null, scopeContext); + if (lineDelimiter != null) + return lineDelimiter; + } + // workspace preference + scopeContext= new IScopeContext[] { InstanceScope.INSTANCE }; + return Platform.getPreferencesService().getString(Platform.PI_RUNTIME, Platform.PREF_LINE_SEPARATOR, null, scopeContext); + } + /** * Start recording filter usage for this store. */ |
