private static void checkObject()

in holo-client/src/main/java/com/alibaba/hologres/client/utils/RecordChecker.java [54:132]


	private static void checkObject(TableSchema schema, Column column, Object value) throws HoloClientException {
		if (value == null) {
			checkNull(schema, column);
		} else if (value instanceof Short) {
			checkShort(schema, column, (Short) value);
		} else if (value instanceof Integer) {
			checkInteger(schema, column, (Integer) value);
		} else if (value instanceof Long) {
			checkLong(schema, column, (Long) value);
		} else if (value instanceof BigDecimal) {
			checkBigDecimal(schema, column, (BigDecimal) value);
		} else if (value instanceof Float) {
			checkFloat(schema, column, (Float) value);
		} else if (value instanceof Double) {
			checkDouble(schema, column, (Double) value);
		} else if (value instanceof Boolean) {
			checkBoolean(schema, column, (Boolean) value);
		} else if (value instanceof LocalDateTime) {
			checkLocalDateTime(schema, column, (LocalDateTime) value);
		} else if (value instanceof Timestamp) { // Timestamp must before Date.
			checkTimeStamp(schema, column, (Timestamp) value);
		}  else if (value instanceof Time) { // Time must before Date.
			checkTime(schema, column, (Time) value);
		} else if (value instanceof Date) {
			checkDate(schema, column, (Date) value);
		} else if (value instanceof String[]) {
			checkStringArray(schema, column, (String[]) value);
		} else if (value instanceof int[]) {
			checkIntegerArray(schema, column, (int[]) value);
		} else if (value instanceof Integer[]) {
			checkIntegerArray(schema, column, (Integer[]) value);
		} else if (value instanceof long[]) {
			checkLongArray(schema, column, (long[]) value);
		} else if (value instanceof Long[]) {
			checkLongArray(schema, column, (Long[]) value);
		} else if (value instanceof float[]) {
			checkFloatArray(schema, column, (float[]) value);
		} else if (value instanceof Float[]) {
			checkFloatArray(schema, column, (Float[]) value);
		} else if (value instanceof double[]) {
			checkDoubleArray(schema, column, (double[]) value);
		} else if (value instanceof Double[]) {
			checkDoubleArray(schema, column, (Double[]) value);
		} else if (value instanceof boolean[]) {
			checkBooleanArray(schema, column, (boolean[]) value);
		} else if (value instanceof Boolean[]) {
			checkBooleanArray(schema, column, (Boolean[]) value);
		} else if (value instanceof List) {
			List<?> list = (List<?>) value;
			checkObject(schema, column, list.toArray());
		} else if (value instanceof byte[]) {
			switch (column.getType()) {
				case Types.OTHER:
					if ("roaringbitmap".equals(column.getTypeName())) {
						checkRoaringbitmap(schema, column, (byte[]) value);
						break;
					}
				case Types.BINARY:
					checkBytea(schema, column, (byte[]) value);
				default:
			}
		} else if (value instanceof String) {
			switch (column.getType()) {
				case Types.OTHER:
					if ("json".equals(column.getTypeName())) {
						checkJson(schema, column, (String) value);
						break;
					} else if ("jsonb".equals(column.getTypeName())) {
						checkJsonb(schema, column, (String) value);
						break;
					}
				default:
					checkString(schema, column, value.toString());
			}

		} else {
			checkString(schema, column, value.toString());
		}
	}