package com.ganggarrison.gmdec; public final class LgmConst { public static interface Provider { byte getLgmConst(); } private LgmConst() { throw new AssertionError("This class isn't supposed to be instantiated."); } public static <T extends Enum<? extends Provider>> String toString(byte lgmConst, Class<T> enumType) { for (Provider lcp : (Provider[]) enumType.getEnumConstants()) { if (lcp.getLgmConst() == lgmConst) { return lcp.toString(); } } throw new IllegalArgumentException("Error: Found "+enumType+" with unknown integer constant "+lgmConst+"."); } public static <T extends Enum<? extends Provider>> byte fromString(String string, Class<T> enumType) { return ((Provider) Enum.valueOf((Class) enumType, string)).getLgmConst(); } }