package org.testng.eclipse.ui.util; import org.testng.eclipse.launch.components.AnnotationVisitor; import org.testng.eclipse.launch.components.BaseVisitor; import org.testng.eclipse.launch.components.ITestContent; import org.eclipse.jdt.core.ICompilationUnit; import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.dom.AST; import org.eclipse.jdt.core.dom.ASTParser; import org.eclipse.jdt.core.dom.CompilationUnit; /** * This class parses an IType into an ITestContent * * @author cbeust */ public class TypeParser { public static ITestContent parseType(IType type) { BaseVisitor result = new AnnotationVisitor(); ICompilationUnit compilationUnit = type.getCompilationUnit(); if (compilationUnit == null) { return result; } ASTParser parser = ASTParser.newParser(AST.JLS3); parser.setKind(ASTParser.K_COMPILATION_UNIT); parser.setResolveBindings(true); parser.setSource(compilationUnit); parser.setProject(type.getJavaProject()); parser.setUnitName(compilationUnit.getPath().toString()); CompilationUnit cu = (CompilationUnit) parser.createAST(null); cu.accept(result); return result; } }