in flink-ml-core/src/main/java/org/apache/flink/ml/param/WindowsParam.java [69:94]
public Windows jsonDecode(Object json) {
Map<String, Object> map = (Map<String, Object>) json;
String classString = (String) map.get("class");
if (classString.equals(GlobalWindows.class.getName())) {
return GlobalWindows.getInstance();
} else if (classString.equals(CountTumblingWindows.class.getName())) {
long size = ((Number) map.get("size")).longValue();
return CountTumblingWindows.of(size);
} else if (classString.equals(ProcessingTimeTumblingWindows.class.getName())) {
Time size = Time.milliseconds(((Number) map.get("size")).longValue());
return ProcessingTimeTumblingWindows.of(size);
} else if (classString.equals(EventTimeTumblingWindows.class.getName())) {
Time size = Time.milliseconds(((Number) map.get("size")).longValue());
return EventTimeTumblingWindows.of(size);
} else if (classString.equals(ProcessingTimeSessionWindows.class.getName())) {
Time gap = Time.milliseconds(((Number) map.get("gap")).longValue());
return ProcessingTimeSessionWindows.withGap(gap);
} else if (classString.equals(EventTimeSessionWindows.class.getName())) {
Time gap = Time.milliseconds(((Number) map.get("gap")).longValue());
return EventTimeSessionWindows.withGap(gap);
} else {
throw new UnsupportedOperationException(
String.format("Unsupported %s subclass: %s", Windows.class, classString));
}
}