package junitparams.internal.annotation; import java.lang.annotation.Annotation; import org.junit.runners.model.FrameworkMethod; import junitparams.Parameters; import junitparams.custom.CustomParameters; public class FrameworkMethodAnnotations { private final FrameworkMethod frameworkMethod; public FrameworkMethodAnnotations(FrameworkMethod frameworkMethod) { this.frameworkMethod = frameworkMethod; } public boolean isParametrised() { return hasAnnotation(Parameters.class) || hasCustomParameters(); } public Annotation[] allAnnotations() { return frameworkMethod.getAnnotations(); } public <T extends Annotation> T getAnnotation(Class<T> annotationType) { return frameworkMethod.getAnnotation(annotationType); } public boolean hasAnnotation(Class<? extends Annotation> annotation) { return getAnnotation(annotation) != null; } public boolean hasCustomParameters() { return getCustomParameters() != null; } public CustomParametersDescriptor getCustomParameters() { CustomParameters customParameters = frameworkMethod.getAnnotation(CustomParameters.class); if (customParameters != null) { return new CustomParametersDescriptor(customParameters); } for (Annotation annotation : frameworkMethod.getAnnotations()) { customParameters = annotation.annotationType().getAnnotation(CustomParameters.class); if (customParameters != null) { return new CustomParametersDescriptor(customParameters, annotation); } } return null; } }