private Predicate<Class<? extends Plugin>> createFilter() {
		Predicate<Class<? extends Plugin>> ignore = ProgramaticUseOnly.class::isAssignableFrom;
		return not(ignore).and(c -> accepts(c));
	}
This class maintains a collection of all plugin classes that are acceptable for a given tool
type.  Simple applications with only one plugin type can use the
{@link DefaultPluginsConfiguration}.  More complex tools can support a subset of the available
plugins. Those tools should create custom subclasses for each tool type, that filter out plugins
that are not appropriate for that tool type.
Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/PluginsConfiguration.java