package tc.oc.pgm.features; import javax.annotation.Nullable; import tc.oc.commons.core.reflect.ClassFormException; import tc.oc.commons.core.reflect.Types; public class Features { private Features() {} public static @Nullable FeatureInfo findInfo(Class<? extends FeatureDefinition> type) { return Types.inheritableAnnotation(type, FeatureInfo.class); } public static FeatureInfo info(Class<? extends FeatureDefinition> type) { final FeatureInfo info = Types.inheritableAnnotation(type, FeatureInfo.class); if(info == null) { throw new ClassFormException(type, "Can't find @FeatureInfo annotation"); } return info; } public static String name(Class<? extends FeatureDefinition> type) { return info(type).name(); } }