in modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/externalize/RelJson.java [264:319]
Object toJson(Object value) {
if (value == null
|| value instanceof Number
|| value instanceof String
|| value instanceof Boolean
|| value instanceof UUID) {
return value;
} else if (value instanceof Enum) {
return toJson((Enum) value);
} else if (value instanceof RexNode) {
return toJson((RexNode) value);
} else if (value instanceof RexWindow) {
return toJson((RexWindow) value);
} else if (value instanceof RexFieldCollation) {
return toJson((RexFieldCollation) value);
} else if (value instanceof RexWindowBound) {
return toJson((RexWindowBound) value);
} else if (value instanceof CorrelationId) {
return toJson((CorrelationId) value);
} else if (value instanceof List) {
List<Object> list = list();
for (Object o : (Iterable) value) {
list.add(toJson(o));
}
return list;
} else if (value instanceof ImmutableBitSet) {
List<Object> list = list();
for (Integer integer : (Iterable<Integer>) value) {
list.add(toJson(integer));
}
return list;
} else if (value instanceof Set) {
Set<Object> set = set();
for (Object o : (Iterable) value) {
set.add(toJson(o));
}
return set;
} else if (value instanceof DistributionTrait) {
return toJson((DistributionTrait) value);
} else if (value instanceof AggregateCall) {
return toJson((AggregateCall) value);
} else if (value instanceof RelCollationImpl) {
return toJson((RelCollationImpl) value);
} else if (value instanceof RelDataType) {
return toJson((RelDataType) value);
} else if (value instanceof RelDataTypeField) {
return toJson((RelDataTypeField) value);
} else if (value instanceof ByteString) {
return toJson((ByteString) value);
} else if (value instanceof SearchBounds) {
return toJson((SearchBounds) value);
} else {
throw new UnsupportedOperationException("type not serializable: "
+ value + " (type " + value.getClass().getCanonicalName() + ")");
}
}