code: @SuppressWarnings("unchecked")
      private Set<String> getAdapterTypeNames() {
          List<OsgiModelSource<?>> modelSources = this.registry.getModelSources();
          Set<String> modelNames = new HashSet<>();
          for (OsgiModelSource<?> source : modelSources) {
              Class<?> c = source.getModelType();
              modelNames.add(c.getName());
              modelNames.addAll(toClassnameList(getAllInterfaces(c)));
              List<Class<?>> allSuperclasses = getAllSuperclasses(c);
              // Remove Object.class - it is always the topmost element.
              allSuperclasses.remove(allSuperclasses.size() - 1);
              modelNames.addAll(toClassnameList(allSuperclasses));
          }
          return modelNames;
      }
docs: Obtains all {@link OsgiModelSource model sources} from the
  {@link io.neba.core.resourcemodels.registration.ModelRegistrar} and adds the {@link OsgiModelSource#getModelType()
  model type name} as well as the type name of all of its superclasses and
  interfaces to the set.
  
  @return never null but rather an empty set.
  @see org.apache.commons.lang3.ClassUtils#getAllInterfaces(Class)
  @see org.apache.commons.lang3.ClassUtils#getAllSuperclasses(Class)