code: @Override
      public SimplePath[] scan(KamNode[] sources) {
          if (sources == null || sources.length == 0) {
              throw new InvalidArgument(
                      "Source kam nodes cannot be null or empty.");
          }
  
          for (final KamNode source : sources) {
              if (!kam.contains(source)) {
                  throw new InvalidArgument("Source does not exist in KAM.");
              }
          }
  
          final List<SimplePath> pathsFound = new ArrayList<SimplePath>();
          for (final KamNode source : sources) {
              pathsFound.addAll(runDepthFirstScan(kam, source));
          }
          return pathsFound.toArray(new SimplePath[pathsFound.size()]);
      }
docs: {@inheritDoc}