docs: public boolean addClasspathEntryObject(final Object pathObject, final ClassLoader classLoader,
              final ScanSpec scanSpec, final LogNode log) {
          boolean valid = false;
          if (pathObject != null) {
              if (pathObject instanceof String) {
                  valid |= addClasspathEntries((String) pathObject, classLoader, scanSpec, log);
              } else if (pathObject instanceof Iterable) {
                  for (final Object p : (Iterable<?>) pathObject) {
                      if (p != null) {
                          valid |= addClasspathEntries(p.toString(), classLoader, scanSpec, log);
                      }
                  }
              } else {
                  final Class<?> valClass = pathObject.getClass();
                  if (valClass.isArray()) {
                      for (int j = 0, n = Array.getLength(pathObject); j < n; j++) {
                          final Object elt = Array.get(pathObject, j);
                          if (elt != null) {
                              valid |= addClasspathEntryObject(elt, classLoader, scanSpec, log);
                          }
                      }
                  } else {
                      // Try simply calling toString() as a final fallback, in case this returns something sensible
                      valid |= addClasspathEntries(pathObject.toString(), classLoader, scanSpec, log);
                  }
              }
          }
          return valid;
      }