private static List<Symbol> extractMembers(Symbol.TypeSymbol classSymbol, boolean ignorePrivate) {
   List<Symbol> results = Lists.newLinkedList();
   for (Symbol symbol : classSymbol.memberSymbols()) {
     if ((isVariableToExtract(symbol) || isMethodToExtract(symbol))
         && !(symbol.isPrivate() && ignorePrivate)) {
       results.add(symbol);
     }
   }
   return results;
 }
 private static boolean hasOnlyStaticMethods(Symbol.TypeSymbol newClassTypeSymbol) {
   Collection<MethodSymbol> methods = filterMethods(newClassTypeSymbol.memberSymbols());
   if (methods.isEmpty()) {
     return false;
   }
   for (MethodSymbol method : methods) {
     if (!method.isStatic()) {
       return false;
     }
   }
   return superClassHasOnlyStaticMethods(newClassTypeSymbol);
 }