@Override public boolean validate(Schema schema, Object datum) { switch (schema.getType()) { case ARRAY: if (!datum.getClass().isArray()) return super.validate(schema, datum); int length = java.lang.reflect.Array.getLength(datum); for (int i = 0; i < length; i++) if (!validate(schema.getElementType(), java.lang.reflect.Array.get(datum, i))) return false; return true; default: return super.validate(schema, datum); } }
@Override public boolean validate(Schema schema, Object datum) { switch (schema.getType()) { case ARRAY: if (!datum.getClass().isArray()) return super.validate(schema, datum); int length = java.lang.reflect.Array.getLength(datum); for (int i = 0; i < length; i++) if (!validate(schema.getElementType(), java.lang.reflect.Array.get(datum, i))) return false; return true; default: return super.validate(schema, datum); } }
@Override public boolean validate(Schema schema, Object datum) { switch (schema.getType()) { case ARRAY: if (!datum.getClass().isArray()) return super.validate(schema, datum); int length = java.lang.reflect.Array.getLength(datum); for (int i = 0; i < length; i++) if (!validate(schema.getElementType(), java.lang.reflect.Array.get(datum, i))) return false; return true; default: return super.validate(schema, datum); } }
@Override public boolean validate(Schema schema, Object datum) { switch (schema.getType()) { case ARRAY: if (!datum.getClass().isArray()) return super.validate(schema, datum); int length = java.lang.reflect.Array.getLength(datum); for (int i = 0; i < length; i++) if (!validate(schema.getElementType(), java.lang.reflect.Array.get(datum, i))) return false; return true; default: return super.validate(schema, datum); } }
/** * Checks that the type of each of {@code values} is consistent with the type of * field {@code fieldName} declared in the Avro schema (from {@code descriptor}). */ public static void checkTypeConsistency(Schema schema, PartitionStrategy strategy, String fieldName, Object... values) { Schema fieldSchema = fieldSchema(schema, strategy, fieldName); for (Object value : values) { // SpecificData#validate checks consistency for generic, reflect, // and specific models. Preconditions.checkArgument( SpecificData.get().validate(fieldSchema, value), "Value '%s' of type '%s' inconsistent with field schema %s.", value, value.getClass(), fieldSchema); } }
return super.validate(schema, datum);
return super.validate(schema, datum);