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
FilterCopy [] filterCopies = (FilterCopy []) arg;
			IFileInfoMatcherDescription[] descriptions = new IFileInfoMatcherDescription[filterCopies.length];
			for (int i = 0; i < descriptions.length; i++)
				descriptions[i] = filterCopies[i].getFileInfoMatcherDescription();
			arg = descriptions;
		}
		desc.setArguments(arg);
		return desc;
	}
}
class FilterEditDialog extends TrayDialog {
	private FilterCopy filter;
	protected Button includeButton;
	protected Button excludeButton;
	protected Button filesButton;
	protected Button foldersButton;
	protected Button filesAndFoldersButton;
	protected Combo idCombo;
	protected Button inherited;
	protected Text arguments;
	protected Label argumentsLabel;
	protected Label description;
	protected FilterTypeUtil util;
	private static final String REGEX_FILTER_ID = "org.eclipse.core.resources.regexFilter"; 
	
	/**
	 * Find and replace command adapters.
	 * @since 3.3
	 */
	private ContentAssistCommandAdapter fContentAssistField;