public List<PhotoAlbum> split(int numberOfNewAlbums) {
    return IntStream.range(1, numberOfNewAlbums + 1)
        .mapToObj(
            i ->
                new PhotoAlbum(
                    String.format("%s-pt%d", id, i),
                    String.format("%s (%d/%d)", id, i, numberOfNewAlbums),
                    description))
        .collect(Collectors.toList());
  }
Generates PhotoAlbum objects that represent fragments of this one. Used in cases where an album
from the originating service is larger than the allowable size in the destination service. If
an album "MyAlbum" is split into 3, the results will be "MyAlbum (1/3)", etc. Please note the
resulting albums lose the original name, getting 'id (X/Y)' instead of the name.
portability-types-common/src/main/java/org/datatransferproject/types/common/models/photos/PhotoAlbum.java