Bug 291755 [Filters] Filters implementation and API cleanup
This bug is raised to track reviewing and cleanup of filters API and implementation.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/misc/CompoundResourceFilter.java
});
			}
		}
		return (IResourceFilter[]) filters.toArray(new IResourceFilter[0]);
	}
	/**
	 * Serialize filters into in a memento
	 * 
	 * @param filters
	 * @return the memento
	 */
	public static String serialize(IResourceFilter[] filters) {
		XMLMemento memento = XMLMemento.createWriteRoot("memento"); 
		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 ""; 
		}
		return writer.toString();
	}
	protected abstract class FileInfoFilter implements IFileInfoFilter {