private static ClassOrInterface findClassContainer(Tree.CompilationUnit cu, Node node) { FindContainerVisitor fcv = new FindContainerVisitor(node); fcv.visit(cu); Tree.Declaration declaration = fcv.getDeclaration(); if (declaration == null || declaration == node) return null; if (declaration instanceof Tree.ClassOrInterface) return (ClassOrInterface) declaration.getDeclarationModel(); if (declaration instanceof Tree.MethodDefinition) return findClassContainer(declaration.getDeclarationModel()); if (declaration instanceof Tree.ObjectDefinition) return findClassContainer(declaration.getDeclarationModel()); return null; }