@Override public Handlers createCopy() { return new Handlers(this); } }
private Handler buildMethodHandler(Class<?> sqlObjectType, Method method, Handlers handlers, HandlerDecorators decorators) { Handler handler = handlers.findFor(sqlObjectType, method) .orElseThrow(() -> new IllegalStateException(String.format( "Method %s.%s must be default or be annotated with a SQL method annotation.", sqlObjectType.getSimpleName(), method.getName()))); return decorators.applyDecorators(handler, sqlObjectType, method); }
@Before public void setUp() { Jdbi db = dbRule.getJdbi(); HandlerFactory defaultHandlerFactory = new HandlerFactory() { @Override public Optional<Handler> buildHandler(Class<?> sqlObjectType, Method method) { return getImplementation(sqlObjectType, method).map(m -> (Handler) (target, args, handle) -> m.invoke(null, Stream.concat(Stream.of(target), Stream.of(args)).toArray()) ); } private Optional<Method> getImplementation(Class<?> type, Method method) { return Stream.of(type.getClasses()) .filter(c -> c.getSimpleName().equals("DefaultImpls")) .flatMap(c -> Stream.of(c.getMethods()).filter(m -> m.getName().equals(method.getName()))) .findAny(); } }; db.configure(Handlers.class, c -> c.register(defaultHandlerFactory)); handle = db.open(); }
@Before public void setUp() { Jdbi db = dbRule.getJdbi(); HandlerFactory defaultHandlerFactory = new HandlerFactory() { @Override public Optional<Handler> buildHandler(Class<?> sqlObjectType, Method method) { return getImplementation(sqlObjectType, method).map(m -> (Handler) (target, args, handle) -> m.invoke(null, Stream.concat(Stream.of(target), Stream.of(args)).toArray()) ); } private Optional<Method> getImplementation(Class<?> type, Method method) { return Stream.of(type.getClasses()) .filter(c -> c.getSimpleName().equals("DefaultImpls")) .flatMap(c -> Stream.of(c.getMethods()).filter(m -> m.getName().equals(method.getName()))) .findAny(); } }; db.configure(Handlers.class, c -> c.register(defaultHandlerFactory)); handle = db.open(); }