in src/main/java/org/apache/sdap/ningester/datatiler/SliceFileByTilesDesired.java [73:95]
List<String> generateChunkBoundrySlices(Integer tilesDesired, Map<String, Integer> dimensionNameToLength) {
List<Set<String>> dimensionBounds = dimensionNameToLength.entrySet().stream()
.map(stringIntegerEntry -> {
String dimensionName = stringIntegerEntry.getKey();
Integer lengthOfDimension = stringIntegerEntry.getValue();
Integer stepSize = calculateStepSize(stringIntegerEntry.getValue(), tilesDesired, dimensionNameToLength.size());
Set<String> bounds = new LinkedHashSet<>();
for (int i = 0; i < lengthOfDimension; i += stepSize) {
bounds.add(
dimensionName + ":" +
i + ":" +
(i + stepSize >= lengthOfDimension ? lengthOfDimension : i + stepSize));
}
return bounds;
}).collect(Collectors.toList());
return Sets.cartesianProduct(dimensionBounds)
.stream()
.map(tileSpecAsList -> tileSpecAsList.stream().collect(Collectors.joining(",")))
.collect(Collectors.toList());
}