package junitparams.converters; import java.lang.annotation.Annotation; public class ParamAnnotation { public static boolean matches(Annotation annotation) { return getParam(annotation) != null; } public static Object convert(Annotation annotation, Object param) throws ConversionFailedException { return converter(annotation).convert(param); } private static Param getParam(Annotation annotation) { if (annotation.annotationType().isAssignableFrom(Param.class)) { return (Param) annotation; } return annotation.annotationType().getAnnotation(Param.class); } private static Converter converter(Annotation annotation) { Converter converter = null; try { converter = getParam(annotation).converter().newInstance(); } catch (Exception e) { throw new RuntimeException("Your Converter class must have a public no-arg constructor!", e); } converter.initialize(annotation); return converter; } }