package tc.oc.pgm.xml.parser; import javax.annotation.Nullable; import com.google.inject.TypeLiteral; import tc.oc.commons.core.inject.TypeManifest; public class EnumParserManifest<T extends Enum<T>> extends TypeManifest<T> implements ParserBinders { private final TypeLiteral<EnumParser<T>> parserType; protected EnumParserManifest() { this((TypeLiteral) null); } public EnumParserManifest(Class<T> type) { this(TypeLiteral.get(type)); } public EnumParserManifest(@Nullable TypeLiteral<T> type) { super(type); this.parserType = resolve(new TypeLiteral<EnumParser<T>>(){}); } @Override protected void configure() { bind(parserType); bindPrimitiveParser(type).to(parserType); } }