package org.testng.internal.annotations;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

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.
Author:Cedric Beust
/** * 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. * * @author <a href="mailto:cedric@beust.com">Cedric Beust</a> */
public interface IAnnotationFinder {
Params:
  • cls –
  • annotationClass –
Returns:The annotation on the class or null if none found.
/** * @param cls * @param annotationClass * @return The annotation on the class or null if none found. */
public <A extends IAnnotation> A findAnnotation(Class<?> cls, Class<A> annotationClass);
Params:
  • m –
  • annotationClass –
Returns:The annotation on the method. If not found, return the annotation on the declaring class. If not found, return null.
/** * @param m * @param annotationClass * @return The annotation on the method. * If not found, return the annotation on the declaring class. * If not found, return null. */
<A extends IAnnotation> A findAnnotation(Method m, Class<A> annotationClass); <A extends IAnnotation> A findAnnotation(ITestNGMethod m, Class<A> annotationClass); <A extends IAnnotation> A findAnnotation(ConstructorOrMethod com, Class<A> annotationClass);
Params:
  • cons –
  • annotationClass –
Returns:The annotation on the method. If not found, return the annotation on the declaring class. If not found, return null.
/** * @param cons * @param annotationClass * @return The annotation on the method. * If not found, return the annotation on the declaring class. * If not found, return null. */
public <A extends IAnnotation> A findAnnotation(Constructor<?> cons, Class<A> annotationClass);
Returns:true if the ith parameter of the given method has the annotation @TestInstance.
/** * @return true if the ith parameter of the given method has the annotation @TestInstance. */
public boolean hasTestInstance(Method method, int i);
Returns:the @Optional values of this method's parameters (null if the parameter isn't optional)
/** * @return the @Optional values of this method's parameters (<code>null</code> * if the parameter isn't optional) */
public String[] findOptionalValues(Method method);
Returns:the @Optional values of this method's parameters (null if the parameter isn't optional)
/** * @return the @Optional values of this method's parameters (<code>null</code> * if the parameter isn't optional) */
public String[] findOptionalValues(Constructor ctor); }