in src/main/java/org/apache/datasketches/server/MergeHandler.java [203:235]
private static Object deserializeSketch(final Family family, final String b64String) {
if (family == null || b64String == null) {
return null;
}
final Memory skBytes = Memory.wrap(Base64.getUrlDecoder().decode(b64String));
switch (family) {
case QUICKSELECT:
return CompactSketch.heapify(skBytes);
case HLL:
return HllSketch.heapify(skBytes);
case CPC:
return CpcSketch.heapify(skBytes);
case KLL:
return KllFloatsSketch.heapify(skBytes);
case FREQUENCY:
return ItemsSketch.getInstance(skBytes, new ArrayOfStringsSerDe());
case RESERVOIR:
return ReservoirItemsSketch.heapify(skBytes, new ArrayOfStringsSerDe());
case VAROPT:
return VarOptItemsSketch.heapify(skBytes, new ArrayOfStringsSerDe());
default:
throw new SketchesException("Unsupported sketch family: " + family);
}
}