/** * Convenience method for {@code getConfig(JdbiCollectors.class).register(factory)} * * @param factory collector factory * @return this */ default This registerCollector(CollectorFactory factory) { return configure(JdbiCollectors.class, c -> c.register(factory)); }
public JdbiCollectors() { // TODO move to BuiltInSupportPlugin register(new MapCollectorFactory()); register(new OptionalCollectorFactory()); register(new ListCollectorFactory()); register(new SetCollectorFactory()); register(new OptionalPrimitiveCollectorFactory()); register(new ArrayCollectorFactory()); register(new EnumSetCollectorFactory()); }
@Override public void configureForType(ConfigRegistry registry, Annotation annotation, Class<?> sqlObjectType) { RegisterCollectorFactory registerCollectorFactory = (RegisterCollectorFactory) annotation; JdbiCollectors collectors = registry.get(JdbiCollectors.class); Class<? extends CollectorFactory> type = registerCollectorFactory.value(); try { collectors.register(type.newInstance()); } catch (InstantiationException | IllegalAccessException e) { throw new IllegalStateException("Unable to instantiate container factory", e); } } }
/** * Convenience method for {@code getConfig(JdbiCollectors.class).register(factory)} * * @param factory collector factory * @return this */ default This registerCollector(CollectorFactory factory) { return configure(JdbiCollectors.class, c -> c.register(factory)); }