code: public List<Class> findAvailableClasses(String uri) throws IOException {
          resourcesNotLoaded.clear();
          List<Class> classes = new ArrayList<>();
          List<String> strings = findAvailableStrings(uri);
          for (String className : strings) {
              try {
                  Class clazz = classLoader.loadClass(className);
                  classes.add(clazz);
              } catch (Exception notAvailable) {
                  resourcesNotLoaded.add(className);
              }
          }
          return classes;
      }
docs: Executes findAvailableStrings assuming the strings are
  the names of a classes that should be loaded and returned.
  <p/>
  Any class that cannot be loaded will be skipped and placed in the
  'resourcesNotLoaded' collection.
  
  @param uri
  @return
  @throws IOException if classLoader.getResources throws an exception