code: private Optional<String> getSuperClassName(String superName, boolean isInterface) {
          return superName != null && !isInterface ?
                  Optional.of(createTypeName(superName)) :
                  Optional.<String>absent();
      }
docs: This is inconsistent with the behavior of Class.getSuperClass()