/**
  * Includes superclass and super interface hierarchy.
  *
  * @return list of classTypes.
  */
 public Set<JavaType.ClassJavaType> superTypes() {
   ImmutableSet.Builder<JavaType.ClassJavaType> types = ImmutableSet.builder();
   JavaType.ClassJavaType superClassType = (JavaType.ClassJavaType) this.superClass();
   types.addAll(this.interfacesOfType());
   while (superClassType != null) {
     types.add(superClassType);
     TypeJavaSymbol superClassSymbol = superClassType.getSymbol();
     types.addAll(superClassSymbol.interfacesOfType());
     superClassType = (JavaType.ClassJavaType) superClassSymbol.superClass();
   }
   return types.build();
 }
 public Boolean isOverriden() {
   Boolean result = false;
   TypeJavaSymbol enclosingClass = enclosingClass();
   for (JavaType.ClassJavaType superType : enclosingClass.superTypes()) {
     Boolean overrideFromType = overridesFromSymbol(superType);
     if (overrideFromType == null) {
       result = null;
     } else if (BooleanUtils.isTrue(overrideFromType)) {
       return true;
     }
   }
   return result;
 }