docs: private String getDataType(final Value value) {
          if (value instanceof BigDecimalValue) {
              return DataType.TYPE_NUMERIC_BIGDECIMAL;
          } else if (value instanceof BigIntegerValue) {
              return DataType.TYPE_NUMERIC_BIGINTEGER;
          } else if (value instanceof BooleanValue) {
              return DataType.TYPE_BOOLEAN;
          } else if (value instanceof ByteValue) {
              return DataType.TYPE_NUMERIC_BYTE;
          } else if (value instanceof DateValue) {
              return DataType.TYPE_DATE;
          } else if (value instanceof DoubleValue) {
              return DataType.TYPE_NUMERIC_DOUBLE;
          } else if (value instanceof FloatValue) {
              return DataType.TYPE_NUMERIC_FLOAT;
          } else if (value instanceof IntegerValue) {
              return DataType.TYPE_NUMERIC_INTEGER;
          } else if (value instanceof LongValue) {
              return DataType.TYPE_NUMERIC_LONG;
          } else if (value instanceof ShortValue) {
              return DataType.TYPE_NUMERIC_SHORT;
          } else if (value instanceof EnumValue) {
              return DataType.TYPE_COMPARABLE;
          }
  
          return DataType.TYPE_STRING;
      }