Home | History | Annotate | Download | only in converters
      1 package junitparams.converters;
      2 
      3 import java.lang.annotation.Annotation;
      4 
      5 public class ParamAnnotation {
      6 
      7     public static boolean matches(Annotation annotation) {
      8         return getParam(annotation) != null;
      9     }
     10 
     11     public static Object convert(Annotation annotation, Object param) throws ConversionFailedException {
     12         return converter(annotation).convert(param);
     13     }
     14 
     15     private static Param getParam(Annotation annotation) {
     16         if (annotation.annotationType().isAssignableFrom(Param.class)) {
     17             return (Param) annotation;
     18         }
     19         return annotation.annotationType().getAnnotation(Param.class);
     20     }
     21 
     22     private static Converter converter(Annotation annotation) {
     23         Converter converter = null;
     24         try {
     25             converter = getParam(annotation).converter().newInstance();
     26         } catch (Exception e) {
     27             throw new RuntimeException("Your Converter class must have a public no-arg constructor!", e);
     28         }
     29         converter.initialize(annotation);
     30         return converter;
     31     }
     32 }
     33