public static <E, T> Predicate<T> asTransaction(final Predicate<T> predicate) { final List<Class> generics = Classes.genericsToClasses(predicate); for (final Class<?> type : generics) { if (PersistenceContexts.isPersistentClass(type)) { return asTransaction(type, predicate); } } throw new IllegalArgumentException( "Failed to find generics for provided predicate, cannot make into transaction: " + Threads.currentStackString()); }
public static <T, R> Function<T, R> asTransaction(final Function<T, R> function) { if (function instanceof TransactionalFunction) { return function; } else { final List<Class> generics = Classes.genericsToClasses(function); for (final Class<?> type : generics) { if (PersistenceContexts.isPersistentClass(type)) { return asTransaction(type, function); } } throw new IllegalArgumentException( "Failed to find generics for provided function, cannot make into transaction: " + Threads.currentStackString()); } }