public static <T> T visitJavaElement(IJavaElement element, IJavaElementVisitor<T> visitor) {
if (element instanceof JavaProject)
return visitor.from((JavaProject) element);
if (element instanceof JavaModel)
return visitor.from((JavaModel) element);
else if (element instanceof PackageFragmentRoot)
return visitor.from((PackageFragmentRoot) element);
else if (element instanceof PackageFragment)
return visitor.from((PackageFragment) element);
else if (element instanceof org.eclipse.jdt.internal.core.CompilationUnit)
return visitor.from((org.eclipse.jdt.internal.core.CompilationUnit) element);
else if (element instanceof SourceType)
return visitor.from((SourceType) element);
else if (element instanceof BinaryType)
return visitor.from((BinaryType) element);
else if (element instanceof BinaryMember)
return visitor.from((BinaryMember) element);
else if (element instanceof SourceMethod)
return visitor.from((SourceMethod) element);
else if (element instanceof ClassFile)
return visitor.from((ClassFile) element);
...etc
}
public static CompilationUnit findCompilationUnitFrom(ITypeRoot compilationUnit) {
CompilationUnit root = SharedASTProvider.getAST(compilationUnit, SharedASTProvider.WAIT_NO, null);
return root;
}
public static ASTNode findAstNodeFor(ASTNode root, int offset, int length) {
ASTNode node = NodeFinder.perform(root, offset, length);
return node;
}