org.testng.internal.annotations.IAnnotationFinder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of testng Show documentation
Show all versions of testng Show documentation
Testing framework for Java
package org.testng.internal.annotations;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.List;
import org.testng.ITestNGMethod;
import org.testng.annotations.IAnnotation;
import org.testng.internal.ConstructorOrMethod;
/**
* This interface defines how annotations are found on classes, methods and constructors. It will be
* implemented by both JDK 1.4 and JDK 5 annotation finders.
*/
public interface IAnnotationFinder {
/**
* @param cls - The corresponding class.
* @param annotationClass - The class on which annotation is to be looked for.
* @param The expected {@link IAnnotation} type
* @return The annotation on the class or null if none found.
*/
A findAnnotation(Class> cls, Class annotationClass);
/**
* @param m - The corresponding {@link Method}
* @param annotationClass - The class on which annotation is to be looked for.
* @param The expected {@link IAnnotation} type
* @return The annotation on the method. If not found, return the annotation on the declaring
* class. If not found, return null.
*/
A findAnnotation(Method m, Class annotationClass);
A findAnnotation(ITestNGMethod m, Class annotationClass);
A findAnnotation(ConstructorOrMethod com, Class annotationClass);
A findAnnotation(
Class> clazz, Method m, java.lang.Class annotationClass);
/**
* @param cons - The corresponding {@link Constructor}
* @param annotationClass - The class on which annotation is to be looked for.
* @param The expected {@link IAnnotation} type
* @return The annotation on the method. If not found, return the annotation on the declaring
* class. If not found, return null.
*/
A findAnnotation(Constructor> cons, Class annotationClass);
/**
* @param cls - The corresponding class.
* @param annotationClass - The class on which annotation is to be looked for.
* @param - The expected {@link IAnnotation} type
* @return The annotations on the inherited interfaces. If not found, return the annotations on
* the declaring interface. If not found, return an empty list.
*/
List findInheritedAnnotations(Class> cls, Class annotationClass);
/**
* @param method The Method
* @param i The parameter index
* @return true if the ith parameter of the given method has the annotation @TestInstance.
*/
boolean hasTestInstance(Method method, int i);
/**
* @param method The Method
* @return the @Optional values of this method's parameters (null
if the parameter
* isn't optional)
*/
String[] findOptionalValues(Method method);
/**
* @param ctor The Constructor
* @return the @Optional values of this method's parameters (null
if the parameter
* isn't optional)
*/
String[] findOptionalValues(Constructor> ctor);
}