if (f.order() == Field.Order.IGNORE) continue; hashCode = hashCodeAdd(hashCode, getField(o, f.name(), f.pos()), f.schema()); Schema elementType = s.getElementType(); for (Object e : a) hashCode = hashCodeAdd(hashCode, e, elementType); return hashCode; case UNION:
if (f.order() == Field.Order.IGNORE) continue; hashCode = hashCodeAdd(hashCode, getField(o, f.name(), f.pos()), f.schema()); Schema elementType = s.getElementType(); for (Object e : a) hashCode = hashCodeAdd(hashCode, e, elementType); return hashCode; case UNION:
/** Compute a hash code according to a schema, consistent with {@link * #compare(Object,Object,Schema)}. */ public int hashCode(Object o, Schema s) { if (o == null) return 0; // incomplete datum int hashCode = 1; switch (s.getType()) { case RECORD: IndexedRecord r = (IndexedRecord)o; for (Field f : s.getFields()) { if (f.order() == Field.Order.IGNORE) continue; hashCode = hashCodeAdd(hashCode, r.get(f.pos()), f.schema()); } return hashCode; case ARRAY: GenericArray a = (GenericArray)o; Schema elementType = a.getSchema().getElementType(); for (Object e : a) hashCode = hashCodeAdd(hashCode, e, elementType); return hashCode; case UNION: return hashCode(o, s.getTypes().get(resolveUnion(s, o))); case NULL: return 0; default: return o.hashCode(); } }
if (f.order() == Field.Order.IGNORE) continue; hashCode = hashCodeAdd(hashCode, getField(o, f.name(), f.pos()), f.schema()); Schema elementType = s.getElementType(); for (Object e : a) hashCode = hashCodeAdd(hashCode, e, elementType); return hashCode; case UNION:
if (f.order() == Field.Order.IGNORE) continue; hashCode = hashCodeAdd(hashCode, getField(o, f.name(), f.pos()), f.schema()); Schema elementType = s.getElementType(); for (Object e : a) hashCode = hashCodeAdd(hashCode, e, elementType); return hashCode; case UNION:
/** Compute a hash code according to a schema, consistent with {@link * #compare(Object,Object,Schema)}. */ public int hashCode(Object o, Schema s) { if (o == null) return 0; // incomplete datum int hashCode = 1; switch (s.getType()) { case RECORD: IndexedRecord r = (IndexedRecord)o; for (Field f : s.getFields()) { if (f.order() == Field.Order.IGNORE) continue; hashCode = hashCodeAdd(hashCode, r.get(f.pos()), f.schema()); } return hashCode; case ARRAY: GenericArray a = (GenericArray)o; Schema elementType = a.getSchema().getElementType(); for (Object e : a) hashCode = hashCodeAdd(hashCode, e, elementType); return hashCode; case UNION: return hashCode(o, s.getTypes().get(resolveUnion(s, o))); case ENUM: return s.getEnumOrdinal(o.toString()); case NULL: return 0; default: return o.hashCode(); } }