package io.dropwizard.jdbi; import com.google.common.collect.ImmutableSet; import org.skife.jdbi.v2.ContainerBuilder; import org.skife.jdbi.v2.tweak.ContainerFactory; public class ImmutableSetContainerFactory implements ContainerFactory<ImmutableSet<?>> { @Override public boolean accepts(Class<?> type) { return ImmutableSet.class.isAssignableFrom(type); } @Override public ContainerBuilder<ImmutableSet<?>> newContainerBuilderFor(Class<?> type) { return new ImmutableSetContainerBuilder(); } private static class ImmutableSetContainerBuilder implements ContainerBuilder<ImmutableSet<?>> { private final ImmutableSet.Builder<Object> builder = ImmutableSet.builder(); @Override public ContainerBuilder<ImmutableSet<?>> add(Object it) { builder.add(it); return this; } @Override public ImmutableSet<?> build() { return builder.build(); } } }