package org.testng.eclipse.ui.conversion;
import org.eclipse.jdt.core.dom.ASTVisitor;
import org.eclipse.jdt.core.dom.Annotation;
import org.eclipse.jdt.core.dom.IExtendedModifier;
import org.eclipse.jdt.core.dom.MethodDeclaration;
import org.eclipse.jdt.core.dom.TypeDeclaration;
import java.util.List;
/**
* Base class for all our visitors.
*
* @author Cedric Beust <cedric@beust.com>
*/
public class Visitor extends ASTVisitor {
@SuppressWarnings("unchecked")
protected Annotation getAnnotation(MethodDeclaration md, String annotation) {
return getAnnotation(md.modifiers(), annotation);
}
@SuppressWarnings("unchecked")
protected Annotation getAnnotation(TypeDeclaration td, String annotation) {
return getAnnotation(td.modifiers(), annotation);
}
private Annotation getAnnotation(List<IExtendedModifier> modifiers, String annotation) {
for (IExtendedModifier m : modifiers) {
if (m.isAnnotation()) {
Annotation a = (Annotation) m;
if (annotation.equals(a.getTypeName().toString())) {
return a;
}
}
}
return null;
}
/**
* @return true if the given method is annotated with the annotation
*/
protected boolean hasAnnotation(MethodDeclaration md, String annotation) {
return getAnnotation(md, annotation) != null;
}
}