@SuppressWarnings({ "rawtypes", "unchecked" })
	protected Filter<T> createEmptyCopy() {

		//
		// Note: for this code to work, each subclass must have a no-arg, public constructor.  
		//       If not, then the differing subclass needs to override this method.
		//

		Class<? extends Filter> clazz = getClass();
		try {
			Constructor<? extends Filter> constructor = clazz.getConstructor((Class<?>[]) null);
			Filter<?> newInstance = constructor.newInstance((Object[]) null);
			return (Filter<T>) newInstance;
		}
		catch (Exception e) {
			throw new AssertException("Exception copying filter '" + clazz.getSimpleName() +
				"'--missing empty constructor?", e);
		}
	}
Creates an empty copy of this filter object. 

<P>Note: for this code to work, each subclass must have a no-arg, public constructor.  
         If not, then the differing subclass needs to override this method.

@return the new uninitialized instance
Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/filters/Filter.java