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
((Integer) index).intValue());
				}
				if (getColumnID(columnIndex).equals(FilterTypeUtil.MODE)) {
					Object index = FilterTypeUtil.getValue(
							(FilterCopy) element, FilterTypeUtil.MODE);
					return util.getImage(FilterTypeUtil.MODE, ((Integer) index)
							.intValue());
				}
				if (getColumnID(columnIndex).equals(FilterTypeUtil.INHERITABLE)) {
					Object condition = FilterTypeUtil.getValue(
							(FilterCopy) element, FilterTypeUtil.INHERITABLE);
					if (((Boolean) condition).booleanValue())
						return checkIcon;
				}
			}
			return null;
		}
		public String getColumnText(Object element, int columnIndex) {
			FilterCopy filter = ((FilterCopy) element);
			String column = getColumnID(columnIndex);
			return getValue(filter, column);
		}
		private String getValue(FilterCopy filter, String column) {
			if (column.equals(FilterTypeUtil.ID)) {
				String id = filter.getId();
				IFilterMatcherDescriptor descriptor = FilterTypeUtil.getDescriptor(id);
				if (descriptor != null)
					return descriptor.getName();
			}
			if (column.equals(FilterTypeUtil.MODE)) {