Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 149866 Details for
Bug 291755
[Filters] Filters implementation and API cleanup
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Work in progress
291755_20091019-1440.txt (text/plain), 29.25 KB, created by
Szymon Brandys
on 2009-10-19 08:36:11 EDT
(
hide
)
Description:
Work in progress
Filename:
MIME Type:
Creator:
Szymon Brandys
Created:
2009-10-19 08:36:11 EDT
Size:
29.25 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.core.resources >Index: src/org/eclipse/core/internal/resources/Filter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/Filter.java,v >retrieving revision 1.2 >diff -u -r1.2 Filter.java >--- src/org/eclipse/core/internal/resources/Filter.java 5 Oct 2009 21:40:28 -0000 1.2 >+++ src/org/eclipse/core/internal/resources/Filter.java 19 Oct 2009 12:38:34 -0000 >@@ -64,7 +64,7 @@ > return false; > } > >- public String getArguments() { >+ public Object getArguments() { > return description.getArguments(); > } > >Index: src/org/eclipse/core/internal/resources/FilterDescription.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/FilterDescription.java,v >retrieving revision 1.2 >diff -u -r1.2 FilterDescription.java >--- src/org/eclipse/core/internal/resources/FilterDescription.java 5 Oct 2009 21:40:29 -0000 1.2 >+++ src/org/eclipse/core/internal/resources/FilterDescription.java 19 Oct 2009 12:38:34 -0000 >@@ -10,24 +10,23 @@ > *******************************************************************************/ > package org.eclipse.core.internal.resources; > >-import java.util.Iterator; >- >-import java.util.LinkedList; >+import org.eclipse.core.resources.IProject; > import org.eclipse.core.runtime.IPath; > >-import org.eclipse.core.resources.IResourceFilter; >- >+import java.util.Iterator; >+import java.util.LinkedList; > import org.eclipse.core.resources.IResource; >+import org.eclipse.core.resources.IResourceFilter; > import org.eclipse.core.runtime.*; > > /** > * Class for describing the characteristics of filters that are stored > * in the project description. > */ >-public class FilterDescription implements Comparable { >+public class FilterDescription implements Comparable, IResourceFilter { > > private String id; >- private String arguments; >+ private Object arguments; > > /** > * The project relative path. >@@ -45,7 +44,7 @@ > this.arguments = null; > } > >- public FilterDescription(IResource resource, int type, String filterID, String arguments) { >+ public FilterDescription(IResource resource, int type, String filterID, Object arguments) { > super(); > Assert.isNotNull(resource); > Assert.isNotNull(filterID); >@@ -55,7 +54,7 @@ > this.arguments = arguments; > } > >- public FilterDescription(IPath projectRelativePath, int type, String filterID, String arguments) { >+ private FilterDescription(IPath projectRelativePath, int type, String filterID, Object arguments) { > super(); > Assert.isNotNull(projectRelativePath); > Assert.isNotNull(filterID); >@@ -79,7 +78,7 @@ > return id; > } > >- public String getArguments() { >+ public Object getArguments() { > return arguments; > } > >@@ -103,7 +102,7 @@ > this.id = id; > } > >- public void setArguments(String arguments) { >+ public void setArguments(Object arguments) { > this.arguments = arguments; > } > >@@ -148,4 +147,16 @@ > } > return copy; > } >+ >+ public String getId() { >+ return id; >+ } >+ >+ public IPath getPath() { >+ return path; >+ } >+ >+ public IProject getProject() { >+ return null; >+ } > } >Index: src/org/eclipse/core/internal/resources/ModelObjectWriter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/ModelObjectWriter.java,v >retrieving revision 1.32 >diff -u -r1.32 ModelObjectWriter.java >--- src/org/eclipse/core/internal/resources/ModelObjectWriter.java 13 Oct 2009 09:28:08 -0000 1.32 >+++ src/org/eclipse/core/internal/resources/ModelObjectWriter.java 19 Oct 2009 12:38:34 -0000 >@@ -20,8 +20,7 @@ > import org.eclipse.core.internal.events.BuildCommand; > import org.eclipse.core.internal.localstore.SafeFileOutputStream; > import org.eclipse.core.internal.utils.FileUtil; >-import org.eclipse.core.resources.IProject; >-import org.eclipse.core.resources.IncrementalProjectBuilder; >+import org.eclipse.core.resources.*; > import org.eclipse.core.runtime.IPath; > > // >@@ -93,14 +92,28 @@ > writer.endTag(LINK); > } > >- protected void write(FilterDescription description, XMLWriter writer) { >+ protected void write(IResourceFilter description, XMLWriter writer) { > writer.startTag(FILTER, null); > if (description != null) { >- writer.printSimpleTag(NAME, description.getProjectRelativePath()); >+ writer.printSimpleTag(NAME, description.getPath()); > writer.printSimpleTag(TYPE, Integer.toString(description.getType())); >- writer.printSimpleTag(ID, description.getFilterID()); >- if (description.getArguments() != null) >- writer.printSimpleTag(ARGUMENTS, description.getArguments()); >+ writer.printSimpleTag(ID, description.getId()); >+ if (description.getArguments() != null){ >+ if (description.getArguments() instanceof String){ >+ writer.printSimpleTag(ARGUMENTS, description.getArguments()); >+ } >+ else if (description.getArguments() instanceof IResourceFilter[]){ >+ writer.startTag(ARGUMENTS, null); >+ IResourceFilter[] array = (IResourceFilter[])description.getArguments(); >+ for (int i=0; i< array.length; i ++){ >+ write(array[i], writer); >+ } >+ writer.endTag(ARGUMENTS); >+ } >+ else writer.printSimpleTag(ARGUMENTS, ""); //$NON-NLS-1$ >+ >+ } >+ > } > writer.endTag(FILTER); > } >@@ -176,8 +189,8 @@ > write((LinkDescription) obj, writer); > return; > } >- if (obj instanceof FilterDescription) { >- write((FilterDescription) obj, writer); >+ if (obj instanceof IResourceFilter) { >+ write((IResourceFilter) obj, writer); > return; > } > if (obj instanceof VariableDescription) { >Index: src/org/eclipse/core/internal/resources/ProjectDescriptionReader.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/ProjectDescriptionReader.java,v >retrieving revision 1.37 >diff -u -r1.37 ProjectDescriptionReader.java >--- src/org/eclipse/core/internal/resources/ProjectDescriptionReader.java 5 Oct 2009 21:40:29 -0000 1.37 >+++ src/org/eclipse/core/internal/resources/ProjectDescriptionReader.java 19 Oct 2009 12:38:34 -0000 >@@ -474,7 +474,6 @@ > */ > private void endFilterElement(String elementName) { > if (elementName.equals(FILTER)) { >- state = S_FILTERED_RESOURCES; > // Pop off the filter description > FilterDescription filter = (FilterDescription) objectStack.pop(); > // Make sure that you have something reasonable >@@ -495,14 +494,23 @@ > return; > } > >- // The HashMap of filtered resources is the next thing on the stack >- HashMap map = ((HashMap) objectStack.peek()); >- LinkedList/*FilterDescription*/ list = (LinkedList/*FilterDescription*/) map.get(filter.getProjectRelativePath()); >- if (list == null) { >- list = new LinkedList/*FilterDescription*/(); >- map.put(filter.getProjectRelativePath(), list); >+ if (objectStack.peek() instanceof HashMap) { >+ state = S_FILTERED_RESOURCES; >+ // The HashMap of filtered resources is the next thing on the stack >+ HashMap map = ((HashMap) objectStack.peek()); >+ LinkedList/*FilterDescription*/list = (LinkedList/*FilterDescription*/) map.get(filter.getProjectRelativePath()); >+ if (list == null) { >+ list = new LinkedList/*FilterDescription*/(); >+ map.put(filter.getProjectRelativePath(), list); >+ } >+ list.add(filter); >+ } >+ >+ if (objectStack.peek() instanceof ArrayList) { >+ state = S_FILTER_ARGUMENTS; >+ ArrayList l = ((ArrayList) objectStack.peek()); >+ l.add(filter); > } >- list.add(filter); > } > } > >@@ -603,9 +611,13 @@ > > private void endFilterArguments(String elementName) { > if (elementName.equals(ARGUMENTS)) { >- String newArguments = charBuffer.toString(); >- // objectStack has a FilterDescription on it. Set the type on this FilterDescription. >- String oldArguments = ((FilterDescription) objectStack.peek()).getArguments(); >+ ArrayList filters = (ArrayList) objectStack.pop(); >+ Object newArguments = charBuffer.toString(); >+ >+ if (filters.size() > 0) >+ newArguments = filters.toArray(new IResourceFilter[filters.size()]); >+ >+ Object oldArguments = ((FilterDescription) objectStack.peek()).getArguments(); > if (oldArguments != null) { > parseProblem(NLS.bind(Messages.projRead_badArguments, oldArguments, newArguments)); > } else >@@ -958,7 +970,7 @@ > case S_FILTERED_RESOURCES : > if (elementName.equals(FILTER)) { > state = S_FILTER; >- // Push place holders for the name, type, id and argumkents of >+ // Push place holders for the name, type, id and arguments of > // this filter. > objectStack.push(new FilterDescription()); > } >@@ -972,6 +984,15 @@ > state = S_FILTER_ID; > } else if (elementName.equals(ARGUMENTS)) { > state = S_FILTER_ARGUMENTS; >+ objectStack.push(new ArrayList()); >+ } >+ break; >+ case S_FILTER_ARGUMENTS: >+ if (elementName.equals(FILTER)) { >+ state = S_FILTER; >+ // Push place holders for the name, type, id and arguments of >+ // this filter. >+ objectStack.push(new FilterDescription()); > } > break; > case S_VARIABLE: >Index: src/org/eclipse/core/internal/resources/RegexFilterFactory.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/RegexFilterFactory.java,v >retrieving revision 1.2 >diff -u -r1.2 RegexFilterFactory.java >--- src/org/eclipse/core/internal/resources/RegexFilterFactory.java 5 Oct 2009 21:40:29 -0000 1.2 >+++ src/org/eclipse/core/internal/resources/RegexFilterFactory.java 19 Oct 2009 12:38:34 -0000 >@@ -38,7 +38,7 @@ > } > } > >- public IFileInfoFilter instantiate(IProject project, String arguments) { >- return new RegexFilterType(project, arguments); >+ public IFileInfoFilter instantiate(IProject project, Object arguments) { >+ return new RegexFilterType(project, (String)arguments); > } > } >Index: src/org/eclipse/core/internal/resources/Resource.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/Resource.java,v >retrieving revision 1.172 >diff -u -r1.172 Resource.java >--- src/org/eclipse/core/internal/resources/Resource.java 9 Oct 2009 16:36:35 -0000 1.172 >+++ src/org/eclipse/core/internal/resources/Resource.java 19 Oct 2009 12:38:34 -0000 >@@ -707,9 +707,9 @@ > > > /* (non-Javadoc) >- * @see org.eclipse.core.resources.IContainer#addFilter(String, int, String, IProgressMonitor) >+ * @see org.eclipse.core.resources.IContainer#addFilter(String, int, Object, IProgressMonitor) > */ >- public void addFilter(String filterID, int type, String arguments, int updateFlags, IProgressMonitor monitor) throws CoreException { >+ public void addFilter(String filterID, int type, Object arguments, int updateFlags, IProgressMonitor monitor) throws CoreException { > Assert.isNotNull(filterID); > Assert.isNotNull(getProject()); > monitor = Policy.monitorFor(monitor); >@@ -754,9 +754,9 @@ > } > > /* (non-Javadoc) >- * @see org.eclipse.core.resources.IFolder#removeFilter(String, int, String, IProgressMonitor) >+ * @see org.eclipse.core.resources.IFolder#removeFilter(String, int, Object, IProgressMonitor) > */ >- public void removeFilter(String filterID, int type, String arguments, int updateFlags, IProgressMonitor monitor) throws CoreException { >+ public void removeFilter(String filterID, int type, Object arguments, int updateFlags, IProgressMonitor monitor) throws CoreException { > Assert.isNotNull(filterID); > monitor = Policy.monitorFor(monitor); > try { >Index: src/org/eclipse/core/resources/IContainer.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.resources/src/org/eclipse/core/resources/IContainer.java,v >retrieving revision 1.37 >diff -u -r1.37 IContainer.java >--- src/org/eclipse/core/resources/IContainer.java 5 Oct 2009 21:40:29 -0000 1.37 >+++ src/org/eclipse/core/resources/IContainer.java 19 Oct 2009 12:38:34 -0000 >@@ -484,12 +484,12 @@ > * @exception OperationCanceledException if the operation is canceled. > * Cancelation can occur even if no progress monitor is provided. > * >- * @see IContainer#removeFilter(String, int, String, int, IProgressMonitor) >+ * @see IContainer#removeFilter(String, int, Object, int, IProgressMonitor) > * @see IContainer#getFilters() > * > * @since 3.6 > */ >- public void addFilter(String filterID, int type, String arguments, int updateFlags, IProgressMonitor monitor) throws CoreException; >+ public void addFilter(String filterID, int type, Object arguments, int updateFlags, IProgressMonitor monitor) throws CoreException; > > /** > * Remove the filter matching the arguments from this folder's filter list >@@ -508,12 +508,12 @@ > * @exception OperationCanceledException if the operation is canceled. > * Cancelation can occur even if no progress monitor is provided. > * >- * @see IContainer#addFilter(String, int, String, int, IProgressMonitor) >+ * @see IContainer#addFilter(String, int, Object, int, IProgressMonitor) > * @see IContainer#getFilters() > * > * @since 3.6 > */ >- public void removeFilter(String filterID, int type, String arguments, int updateFlags, IProgressMonitor monitor) throws CoreException; >+ public void removeFilter(String filterID, int type, Object arguments, int updateFlags, IProgressMonitor monitor) throws CoreException; > > /** > * Retrieve the filters for this folder. >@@ -524,8 +524,8 @@ > * <ul> > * <li> This resource is not a folder.</li> > * >- * @see IContainer#addFilter(String, int, String, int, IProgressMonitor) >- * @see IContainer#removeFilter(String, int, String, int, IProgressMonitor) >+ * @see IContainer#addFilter(String, int, Object, int, IProgressMonitor) >+ * @see IContainer#removeFilter(String, int, Object, int, IProgressMonitor) > * > * @since 3.6 > */ >Index: src/org/eclipse/core/resources/IFileInfoFilterFactory.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.resources/src/org/eclipse/core/resources/IFileInfoFilterFactory.java,v >retrieving revision 1.2 >diff -u -r1.2 IFileInfoFilterFactory.java >--- src/org/eclipse/core/resources/IFileInfoFilterFactory.java 5 Oct 2009 21:40:29 -0000 1.2 >+++ src/org/eclipse/core/resources/IFileInfoFilterFactory.java 19 Oct 2009 12:38:34 -0000 >@@ -28,5 +28,5 @@ > * @param arguments the test arguments, or <code>null</code> if not applicable > * for this filter type. > */ >- public IFileInfoFilter instantiate(IProject project, String arguments); >+ public IFileInfoFilter instantiate(IProject project, Object arguments); > } >Index: src/org/eclipse/core/resources/IResource.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.resources/src/org/eclipse/core/resources/IResource.java,v >retrieving revision 1.106 >diff -u -r1.106 IResource.java >--- src/org/eclipse/core/resources/IResource.java 9 Oct 2009 16:36:35 -0000 1.106 >+++ src/org/eclipse/core/resources/IResource.java 19 Oct 2009 12:38:35 -0000 >@@ -1716,8 +1716,8 @@ > * > * @return <code>true</code> if this resource has filters, and > * <code>false</code> otherwise >- * @see IContainer#addFilter(String, int, String, int, IProgressMonitor) >- * @see IContainer#removeFilter(String, int, String, int, IProgressMonitor) >+ * @see IContainer#addFilter(String, int, Object, int, IProgressMonitor) >+ * @see IContainer#removeFilter(String, int, Object, int, IProgressMonitor) > * @since 3.6 > */ > public boolean hasFilters(); >Index: src/org/eclipse/core/resources/IResourceFilter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.core.resources/src/org/eclipse/core/resources/IResourceFilter.java,v >retrieving revision 1.2 >diff -u -r1.2 IResourceFilter.java >--- src/org/eclipse/core/resources/IResourceFilter.java 5 Oct 2009 21:40:29 -0000 1.2 >+++ src/org/eclipse/core/resources/IResourceFilter.java 19 Oct 2009 12:38:35 -0000 >@@ -17,8 +17,8 @@ > * Interface for resource filters. A filter determines which file system > * objects will be visible when a local refresh is performed for an IContainer. > * >- * @see IFolder#addFilter(String, int, String, int, IProgressMonitor) >- * @see IFolder#removeFilter(String, int, String, int, IProgressMonitor) >+ * @see IFolder#addFilter(String, int, Object, int, IProgressMonitor) >+ * @see IFolder#removeFilter(String, int, Object, int, IProgressMonitor) > * @see IFolder#getFilters() > * @noimplement This interface is not intended to be implemented by clients. > * @since 3.6 >@@ -88,7 +88,7 @@ > * > * @return the argument string, or null > */ >- public String getArguments(); >+ public Object getArguments(); > > /** > * Returns the project which contains this filter. >#P org.eclipse.ui.ide >Index: src/org/eclipse/ui/internal/ide/dialogs/ResourceFilterGroup.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceFilterGroup.java,v >retrieving revision 1.2 >diff -u -r1.2 ResourceFilterGroup.java >--- src/org/eclipse/ui/internal/ide/dialogs/ResourceFilterGroup.java 15 Oct 2009 08:12:15 -0000 1.2 >+++ src/org/eclipse/ui/internal/ide/dialogs/ResourceFilterGroup.java 19 Oct 2009 12:38:42 -0000 >@@ -90,7 +90,6 @@ > import org.eclipse.ui.internal.ide.IDEWorkbenchMessages; > import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin; > import org.eclipse.ui.internal.ide.IIDEHelpContextIds; >-import org.eclipse.ui.internal.ide.misc.CompoundResourceFilter; > import org.eclipse.ui.plugin.AbstractUIPlugin; > > /** >@@ -372,7 +371,7 @@ > } > if (column.equals(FilterTypeUtil.ARGUMENTS)) { > if (filter.hasStringArguments()) >- return filter.getArguments(); >+ return filter.getArguments().toString(); > if ((filter.getChildrenLimit() > 0) > && !filter.isUnderAGroupFilter()) > return "< " + getFilterTypeName(filter) + " >"; //$NON-NLS-1$ //$NON-NLS-2$ >@@ -1310,7 +1309,7 @@ > > class FilterCopy implements IResourceFilter { > static String EMPTY = ""; //$NON-NLS-1$ >- String arguments = EMPTY; >+ Object arguments = EMPTY; > String id = null; > IPath path = null; > IProject project = null; >@@ -1386,7 +1385,7 @@ > id = FilterTypeUtil.getDefaultFilterID(); > } > >- public String getArguments() { >+ public Object getArguments() { > return arguments; > } > >@@ -1486,8 +1485,7 @@ > if (children == null) { > if (getChildrenLimit() > 0) { > children = new LinkedList(); >- IResourceFilter[] filters = CompoundResourceFilter.unserialize( >- getProject(), getArguments()); >+ IResourceFilter[] filters = (IResourceFilter[])getArguments(); //CompoundResourceFilter.unserialize(getProject(), getArguments()); > for (int i = 0; i < filters.length; i++) { > FilterCopy child = new FilterCopy(filters[i]); > child.parent = this; >@@ -1522,9 +1520,7 @@ > protected void argumentsChanged() { > initializeChildren(); > if (children != null) >- arguments = CompoundResourceFilter >- .serialize((FilterCopy[]) children >- .toArray(new FilterCopy[0])); >+ arguments = (FilterCopy[]) children.toArray(new FilterCopy[0]); > FilterCopy up = parent; > while (up != null) { > up.serializeChildren(); >Index: src/org/eclipse/ui/internal/ide/misc/AndResourceFilter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/AndResourceFilter.java,v >retrieving revision 1.2 >diff -u -r1.2 AndResourceFilter.java >--- src/org/eclipse/ui/internal/ide/misc/AndResourceFilter.java 15 Oct 2009 08:12:16 -0000 1.2 >+++ src/org/eclipse/ui/internal/ide/misc/AndResourceFilter.java 19 Oct 2009 12:38:42 -0000 >@@ -37,7 +37,7 @@ > } > } > >- public IFileInfoFilter instantiate(IProject project, String arguments) { >- return new AndFileInfoFilter(project, unserialize(project, arguments)); >+ public IFileInfoFilter instantiate(IProject project, Object arguments) { >+ return new AndFileInfoFilter(project,(IResourceFilter[])arguments); > } > } >Index: src/org/eclipse/ui/internal/ide/misc/CompoundResourceFilter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/CompoundResourceFilter.java,v >retrieving revision 1.2 >diff -u -r1.2 CompoundResourceFilter.java >--- src/org/eclipse/ui/internal/ide/misc/CompoundResourceFilter.java 15 Oct 2009 08:12:16 -0000 1.2 >+++ src/org/eclipse/ui/internal/ide/misc/CompoundResourceFilter.java 19 Oct 2009 12:38:42 -0000 >@@ -11,26 +11,17 @@ > *******************************************************************************/ > package org.eclipse.ui.internal.ide.misc; > >-import java.io.IOException; >-import java.io.StringReader; >-import java.io.StringWriter; >-import java.util.LinkedList; >- > import org.eclipse.core.filesystem.IFileInfoFilter; > import org.eclipse.core.resources.IFilterDescriptor; > import org.eclipse.core.resources.IProject; > import org.eclipse.core.resources.IResourceFilter; >-import org.eclipse.core.runtime.IPath; >-import org.eclipse.ui.IMemento; >-import org.eclipse.ui.WorkbenchException; >-import org.eclipse.ui.XMLMemento; > > /** > * Resource Filter Type allowing serializing sub filters as the arguments > */ > public class CompoundResourceFilter { > >- private static final String T_FILTERS = "filters"; //$NON-NLS-1$ >+ // private static final String T_FILTERS = "filters"; //$NON-NLS-1$ > > protected IFileInfoFilter instantiate(IProject project, > IResourceFilter filter) { >@@ -42,10 +33,10 @@ > return null; > } > >- private static final String T_FILTER = "filter"; //$NON-NLS-1$ >- private static final String T_TYPE = "type"; //$NON-NLS-1$ >- private static final String T_ID = "id"; //$NON-NLS-1$ >- private static final String T_ARGUMENTS = "arguments"; //$NON-NLS-1$ >+ // private static final String T_FILTER = "filter"; //$NON-NLS-1$ >+ // private static final String T_TYPE = "type"; //$NON-NLS-1$ >+ // private static final String T_ID = "id"; //$NON-NLS-1$ >+ // private static final String T_ARGUMENTS = "arguments"; //$NON-NLS-1$ > > /** > * Unserialize the filters stored in a memento >@@ -54,50 +45,50 @@ > * @param memento > * @return the filter array > */ >- public static IResourceFilter[] unserialize(final IProject project, >- String memento) { >- LinkedList filters = new LinkedList(); >- XMLMemento mementoObject = null; >- try { >- mementoObject = XMLMemento >- .createReadRoot(new StringReader(memento)); >- } catch (WorkbenchException e) { >- return new IResourceFilter[0]; >- } >- IMemento childMem = mementoObject.getChild(T_FILTERS); >- if (childMem != null) { >- IMemento[] elementMem = childMem.getChildren(T_FILTER); >- for (int i = 0; i < elementMem.length; i++) { >- final String id = elementMem[i].getString(T_ID); >- final int type = elementMem[i].getInteger(T_TYPE).intValue(); >- IMemento argumentMem = elementMem[i].getChild(T_ARGUMENTS); >- final String arguments = argumentMem != null ? argumentMem >- .getTextData() : ""; //$NON-NLS-1$ >- filters.add(new IResourceFilter() { >- public String getArguments() { >- return arguments; >- } >- >- public String getId() { >- return id; >- } >- >- public IPath getPath() { >- return null; >- } >- >- public IProject getProject() { >- return project; >- } >- >- public int getType() { >- return type; >- } >- }); >- } >- } >- return (IResourceFilter[]) filters.toArray(new IResourceFilter[0]); >- } >+ // public static IResourceFilter[] unserialize(final IProject project, >+ // String memento) { >+ // LinkedList filters = new LinkedList(); >+ // XMLMemento mementoObject = null; >+ // try { >+ // mementoObject = XMLMemento >+ // .createReadRoot(new StringReader(memento)); >+ // } catch (WorkbenchException e) { >+ // return new IResourceFilter[0]; >+ // } >+ // IMemento childMem = mementoObject.getChild(T_FILTERS); >+ // if (childMem != null) { >+ // IMemento[] elementMem = childMem.getChildren(T_FILTER); >+ // for (int i = 0; i < elementMem.length; i++) { >+ // final String id = elementMem[i].getString(T_ID); >+ // final int type = elementMem[i].getInteger(T_TYPE).intValue(); >+ // IMemento argumentMem = elementMem[i].getChild(T_ARGUMENTS); >+ // final String arguments = argumentMem != null ? argumentMem >+ // .getTextData() : ""; //$NON-NLS-1$ >+ // filters.add(new IResourceFilter() { >+ // public String getArguments() { >+ // return arguments; >+ // } >+ // >+ // public String getId() { >+ // return id; >+ // } >+ // >+ // public IPath getPath() { >+ // return null; >+ // } >+ // >+ // public IProject getProject() { >+ // return project; >+ // } >+ // >+ // public int getType() { >+ // return type; >+ // } >+ // }); >+ // } >+ // } >+ // return (IResourceFilter[]) filters.toArray(new IResourceFilter[0]); >+ // } > > /** > * Serialize filters into in a memento >@@ -105,26 +96,26 @@ > * @param filters > * @return the memento > */ >- public static String serialize(IResourceFilter[] filters) { >- XMLMemento memento = XMLMemento.createWriteRoot("memento"); //$NON-NLS-1$ >- >- IMemento expandedMem = memento.createChild(T_FILTERS); >- for (int i = 0; i < filters.length; i++) { >- IMemento elementMem = expandedMem.createChild(T_FILTER); >- elementMem.putString(T_ID, filters[i].getId()); >- elementMem.putInteger(T_TYPE, filters[i].getType()); >- IMemento argumentMem = elementMem.createChild(T_ARGUMENTS); >- argumentMem.putTextData(filters[i].getArguments()); >- } >- >- StringWriter writer = new StringWriter(); >- try { >- memento.save(writer); >- } catch (IOException e) { >- return ""; //$NON-NLS-1$ >- } >- return writer.toString(); >- } >+ // public static String serialize(IResourceFilter[] filters) { >+ // XMLMemento memento = XMLMemento.createWriteRoot("memento"); //$NON-NLS-1$ >+ // >+ // IMemento expandedMem = memento.createChild(T_FILTERS); >+ // for (int i = 0; i < filters.length; i++) { >+ // IMemento elementMem = expandedMem.createChild(T_FILTER); >+ // elementMem.putString(T_ID, filters[i].getId()); >+ // elementMem.putInteger(T_TYPE, filters[i].getType()); >+ // IMemento argumentMem = elementMem.createChild(T_ARGUMENTS); >+ // argumentMem.putTextData(filters[i].getArguments()); >+ // } >+ // >+ // StringWriter writer = new StringWriter(); >+ // try { >+ // memento.save(writer); >+ // } catch (IOException e) { >+ // return ""; //$NON-NLS-1$ >+ // } >+ // return writer.toString(); >+ // } > > protected abstract class FileInfoFilter implements IFileInfoFilter { > protected IFileInfoFilter[] filterTypes; >Index: src/org/eclipse/ui/internal/ide/misc/NotResourceFilter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/NotResourceFilter.java,v >retrieving revision 1.2 >diff -u -r1.2 NotResourceFilter.java >--- src/org/eclipse/ui/internal/ide/misc/NotResourceFilter.java 15 Oct 2009 08:12:16 -0000 1.2 >+++ src/org/eclipse/ui/internal/ide/misc/NotResourceFilter.java 19 Oct 2009 12:38:42 -0000 >@@ -37,7 +37,7 @@ > } > } > >- public IFileInfoFilter instantiate(IProject project, String arguments) { >- return new NotFileInfoFilter(project, unserialize(project, arguments)); >+ public IFileInfoFilter instantiate(IProject project, Object arguments) { >+ return new NotFileInfoFilter(project, (IResourceFilter[])arguments); > } > } >Index: src/org/eclipse/ui/internal/ide/misc/OrResourceFilter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/OrResourceFilter.java,v >retrieving revision 1.2 >diff -u -r1.2 OrResourceFilter.java >--- src/org/eclipse/ui/internal/ide/misc/OrResourceFilter.java 15 Oct 2009 08:12:16 -0000 1.2 >+++ src/org/eclipse/ui/internal/ide/misc/OrResourceFilter.java 19 Oct 2009 12:38:42 -0000 >@@ -40,7 +40,7 @@ > } > } > >- public IFileInfoFilter instantiate(IProject project, String arguments) { >- return new OrFileInfoFilter(project, unserialize(project, arguments)); >+ public IFileInfoFilter instantiate(IProject project, Object arguments) { >+ return new OrFileInfoFilter(project, (IResourceFilter[])arguments); > } > } >Index: src/org/eclipse/ui/internal/ide/misc/StringMatcherFilter.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/StringMatcherFilter.java,v >retrieving revision 1.2 >diff -u -r1.2 StringMatcherFilter.java >--- src/org/eclipse/ui/internal/ide/misc/StringMatcherFilter.java 15 Oct 2009 08:12:16 -0000 1.2 >+++ src/org/eclipse/ui/internal/ide/misc/StringMatcherFilter.java 19 Oct 2009 12:38:42 -0000 >@@ -51,8 +51,8 @@ > > } > >- public IFileInfoFilter instantiate(IProject project, String arguments) { >- return new FilterType(arguments); >+ public IFileInfoFilter instantiate(IProject project, Object arguments) { >+ return new FilterType((String)arguments); > } > > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 291755
:
149853
|
149866
|
149964