/** * Invoke a method on the repository by routing the invocation to the appropriate {@link RepositoryFragment}. * * @param method * @param args * @return * @throws Throwable */ public Object invoke(Method method, Object... args) throws Throwable { Method methodToCall = findMethod(method) // .orElseThrow(() -> new IllegalArgumentException(String.format("No fragment found for method %s", method))); ReflectionUtils.makeAccessible(methodToCall); return fragments.invoke(methodToCall, argumentConverter.apply(methodToCall, args)); }