@SuppressWarnings("unchecked")
	private Predicate<ActionContext> adaptPredicate(Predicate<C> predicate) {
		if (actionContextClass == ActionContext.class) {
			// don't wrap the predicate if it doesn't need it
			return (Predicate<ActionContext>) predicate;
		}
		// Convert a sub-classed ActionContext predicate to a plain ActionContext predicate
		Predicate<ActionContext> predicateAdapter = (ac) -> {
			return actionContextClass.isInstance(ac) && predicate.test((C) ac);
		};
		return predicateAdapter;
	}
Since the built action will need a predicate that handles any action type, this method 
creates a predicate that adapts a user supplied predicate for a more specific ActionContext
to a general predicate that can accept any ActionContext.
@param predicate the client supplied predicate that expects a more specific ActionContext
@return a predicate that can handle any ActionContext
Ghidra/Framework/Docking/src/main/java/docking/action/builder/AbstractActionBuilder.java