Bug 297728 [Filters] IFileInfoMatcherDescription and FileInfoMatcherDescription cleanup
Users should not be allowed to modify matcher descriptions once they are used in any resource filter. Right now IFileInfoMatcherDescription has setters what is not right, since setting new id or arguments on the matcher doesn't affect the filter. We can either create kind of a factory for creating IFileInfoMatcherDescription objects, remove setters from IFileInfoMatcherDescription and make the default implementation FileInfoMatcherDescription non-API, or get rid of IFileInfoMatcherDescription and use immutable FileInfoMatcherDescription objects (initialization in constructor and getters only).
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/dialogs/ResourceFilterGroup.java
}
		public void remove(FilterCopy filter) {
			super.removeChild(filter);
			if (filter.original != null)
				trash.add(filter);
			changed = true;
		}
		public void moveUp(UIResourceFilterDescription filter) {
			FilterCopy[] content = getChildren();
			for (int i = 1; i < content.length; i++) {
				if (content[i] == filter) {
					FilterCopy tmp = content[i - 1];
					content[i - 1] = content[i];
					content[i] = tmp;
				}
			}
			children = new LinkedList(Arrays.asList(content));
			changed = true;
		}
		public void moveDown(UIResourceFilterDescription filter) {
			FilterCopy[] content = getChildren();
			for (int i = 0; i < (content.length - 1); i++) {
				if (content[i] == filter) {
					FilterCopy tmp = content[i + 1];
					content[i + 1] = content[i];
					content[i] = tmp;
				}
			}
			children = new LinkedList(Arrays.asList(content));
			changed = true;