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;
 }