code: @PublicAPI(usage = ACCESS)
      public JavaClasses importLocations(Collection<Location> locations) {
          List<ClassFileSource> sources = new ArrayList<>();
          for (Location location : locations) {
              tryAdd(sources, location);
          }
          return new ClassFileProcessor().process(unify(sources));
      }
docs: Imports all class files at the given {@link Location locations}. The behavior will depend on the type of {@link Location},
  i.e. the target of the underlying URI:
  <ul>
  <li>a single class file =&lt; that file will be imported</li>
  <li>a directory =&lt; all class files from that directory as well as sub directories will be imported</li>
  <li>a JAR file =&lt; all class files from that archive will be imported</li>
  <li>a JAR URI representing a class (e.g. '<code>jar:file:///some.jar!/some/MyClass.class</code>') =&lt; that file will be imported</li>
  <li>a JAR URI representing a folder (e.g. '<code>jar:file:///some.jar!/some/pkg</code>') =&lt; all class files from that folder as well as
  sub folders within the JAR archive will be imported</li>
  </ul>
  For information about the impact of the imported classes on the evaluation of rules,
  as well as configuration and details, refer to {@link ClassFileImporter}.