code: @PublicAPI(usage = ACCESS)
      public void accept(Predicate<? super JavaPackage> predicate, PackageVisitor visitor) {
          if (predicate.apply(this)) {
              visitor.visit(this);
          }
          for (JavaPackage subPackage : getSubPackages()) {
              subPackage.accept(predicate, visitor);
          }
      }
docs: Traverses the package tree visiting each matching package.
  @param predicate determines which packages within the package tree should be visited
  @param visitor will receive each package in the package tree matching the given predicate
  @see #accept(Predicate, ClassVisitor)