package io.graceland.inject; import java.util.Set; import com.codahale.metrics.health.HealthCheck; import com.google.inject.TypeLiteral; import io.dropwizard.Bundle; import io.dropwizard.cli.Command; import io.dropwizard.lifecycle.Managed; import io.dropwizard.servlets.tasks.Task; import io.graceland.dropwizard.Configurator; import io.graceland.dropwizard.Initializer; import io.graceland.filter.FilterSpec; /** * A utility class that defines helpful classes and static variables. They are used when interacting with Guice's * {@link com.google.inject.Injector}. */ public final class TypeLiterals { protected TypeLiterals() { // utility class } // ============================== // Jersey Component Type Literals // ============================== public static final TypeLiteral<Set<Object>> ObjectSet = new TypeLiteral<Set<Object>>() { }; // ========================== // Health Check Type Literals // ========================== public static final TypeLiteral<Class<? extends HealthCheck>> HealthCheckClass = new TypeLiteral<Class<? extends HealthCheck>>() { }; public static final TypeLiteral<Set<HealthCheck>> HealthCheckSet = new TypeLiteral<Set<HealthCheck>>() { }; public static final TypeLiteral<Set<Class<? extends HealthCheck>>> HealthCheckClassSet = new TypeLiteral<Set<Class<? extends HealthCheck>>>() { }; // ===================== // Managed Type Literals // ===================== public static final TypeLiteral<Class<? extends Managed>> ManagedClass = new TypeLiteral<Class<? extends Managed>>() { }; public static final TypeLiteral<Set<Managed>> ManagedSet = new TypeLiteral<Set<Managed>>() { }; public static final TypeLiteral<Set<Class<? extends Managed>>> ManagedClassSet = new TypeLiteral<Set<Class<? extends Managed>>>() { }; // ================== // Task Type Literals // ================== public static final TypeLiteral<Class<? extends Task>> TaskClass = new TypeLiteral<Class<? extends Task>>() { }; public static final TypeLiteral<Set<Task>> TaskSet = new TypeLiteral<Set<Task>>() { }; public static final TypeLiteral<Set<Class<? extends Task>>> TaskClassSet = new TypeLiteral<Set<Class<? extends Task>>>() { }; // ==================== // Bundle Type Literals // ==================== public static final TypeLiteral<Class<? extends Bundle>> BundleClass = new TypeLiteral<Class<? extends Bundle>>() { }; public static final TypeLiteral<Set<Bundle>> BundleSet = new TypeLiteral<Set<Bundle>>() { }; public static final TypeLiteral<Set<Class<? extends Bundle>>> BundleClassSet = new TypeLiteral<Set<Class<? extends Bundle>>>() { }; // ===================== // Command Type Literals // ===================== public static final TypeLiteral<Class<? extends Command>> CommandClass = new TypeLiteral<Class<? extends Command>>() { }; public static final TypeLiteral<Set<Command>> CommandSet = new TypeLiteral<Set<Command>>() { }; public static final TypeLiteral<Set<Class<? extends Command>>> CommandClassSet = new TypeLiteral<Set<Class<? extends Command>>>() { }; // ========================= // Initializer Type Literals // ========================= public static final TypeLiteral<Class<? extends Initializer>> InitializerClass = new TypeLiteral<Class<? extends Initializer>>() { }; public static final TypeLiteral<Set<Initializer>> InitializerSet = new TypeLiteral<Set<Initializer>>() { }; public static final TypeLiteral<Set<Class<? extends Initializer>>> InitializerClassSet = new TypeLiteral<Set<Class<? extends Initializer>>>() { }; // ========================== // Configurator Type Literals // ========================== public static final TypeLiteral<Class<? extends Configurator>> ConfiguratorClass = new TypeLiteral<Class<? extends Configurator>>() { }; public static final TypeLiteral<Set<Configurator>> ConfiguratorSet = new TypeLiteral<Set<Configurator>>() { }; public static final TypeLiteral<Set<Class<? extends Configurator>>> ConfiguratorClassSet = new TypeLiteral<Set<Class<? extends Configurator>>>() { }; // ========================== // Filter Spec Type Literals // ========================== public static final TypeLiteral<Set<FilterSpec>> FilterSpecSet = new TypeLiteral<Set<FilterSpec>>() { }; }