private boolean isPublicApi(ClassTree classTree, MethodTree methodTree) {
   Preconditions.checkNotNull(classTree);
   if (separateAccessorsFromMethods && AccessorsUtils.isAccessor(classTree, methodTree)) {
     return false;
   }
   if (isPublicInterface(classTree)) {
     return !hasOverrideAnnotation(methodTree);
   } else if (isEmptyDefaultConstructor(methodTree)
       || hasOverrideAnnotation(methodTree)
       || classTree.is(Tree.Kind.INTERFACE, Tree.Kind.ANNOTATION_TYPE)
       || constructorOfNonPublicClass(methodTree, classTree)) {
     return false;
   }
   return hasPublic(methodTree.modifiers());
 }
 private boolean isAccessor(String code) {
   ClassTree classTree = parseClass(code);
   return AccessorsUtils.isAccessor(classTree, extractMethod(classTree));
 }