package sk.stuba.fiit.perconik.core.resources; import sk.stuba.fiit.perconik.core.Listener; import static com.google.common.base.Preconditions.checkNotNull; final class StandardHookSupport<H extends Hook<T, L>, T, L extends Listener> extends AbstractHookSupport<H, T, L> { private final HookFactory<T, L> factory; StandardHookSupport(final HookFactory<T, L> factory) { this.factory = checkNotNull(factory); } static <H extends Hook<T, L>, T, L extends Listener> StandardHookSupport<H, T, L> using(final HookFactory<T, L> factory) { return new StandardHookSupport<>(factory); } public Hook<T, L> create(final L listener) { return this.factory.create(listener); } }