/** * Adds the complex item to array. * * @param container the record * @param array the array * @throws DeltaCalculatorException the delta calculator exception */ private void addComplexItemToArray(GenericContainer container, GenericArray array) throws DeltaCalculatorException { Schema itemSchema = getSchemaByFullName(array.getSchema(), getFullName(container)); if (itemSchema.getType() == Type.RECORD) { GenericRecord subDelta = new GenericData.Record(itemSchema); fillDeltaWithoutMerge(subDelta, (GenericRecord) container); array.add(subDelta); } else { array.add(container); } }
currentArray = new LinkedList<CommonValue>(); record.setField(fieldName, commonFactory.createCommonValue( commonFactory.createCommonArray(array.getSchema(), currentArray)));
public static void fillArrayItemRemoveDelta(GenericRecord delta) { GenericArray testField1 = new GenericData.Array(1, getArraySchema(delta, "testField1")); byte[] rawUuidToRemove = new byte[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}; GenericFixed uuidToRemove = new GenericData.Fixed(getSchemaByFullName( testField1.getSchema().getElementType().getTypes(), "org.kaaproject.configuration.uuidT"), rawUuidToRemove); testField1.add(uuidToRemove); delta.put("testField1", testField1); }
if (sourceArray.getSchema().getElementType().getType() == Schema.Type.RECORD) { GenericArray destArray = new GenericData.Array<>(sourceArray.size(), sourceArray.getSchema()); for (Object item : sourceArray) { GenericRecord recordItem = (GenericRecord) item; case APPEND: GenericArray destArray = (GenericArray) destinationChild; if (sourceArray.getSchema().getElementType().getType() == Schema.Type.RECORD) { for (Object item : sourceArray) { GenericRecord recordItem = (GenericRecord) item;
GenericArray<GenericFixed> testField31 = new GenericData.Array<GenericFixed>(1, getArraySchema(testField21, "testField3")); byte[] rawUuidToDelete = new byte[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}; GenericFixed uuidToDelete = new GenericData.Fixed(getSchemaByFullName(testField31.getSchema().getElementType().getTypes(), "org.kaaproject.configuration.uuidT"), rawUuidToDelete); testField31.add(uuidToDelete); "org.kaa.config.testRecordT")); GenericArray<GenericRecord> testField32 = new GenericData.Array<GenericRecord>(1, getArraySchema(testField22, "testField3")); GenericRecord itemRecord = new GenericData.Record(getSchemaByFullName(testField32.getSchema().getElementType().getTypes(), "org.kaa.config.testRecordItemT")); itemRecord.put("testField4", 4);
testField1.getSchema().getElementType().getTypes(), "org.kaa.config.testRecordItemT")); itemRecord1.put("testField2", 1); testField1.getSchema().getElementType().getTypes(), "org.kaa.config.testRecordItemT")); itemRecord2.put("testField2", 2); testField1.getSchema().getElementType().getTypes(), "org.kaa.config.testRecordItemT")); itemRecord3.put("testField2", 3);
public ArrayWriteContext(AvroWriteContext parent, AvroGenerator generator, GenericArray<Object> array) { super(TYPE_ARRAY, parent, generator, array.getSchema()); _array = array; }
public static Schema getElementSchema(GenericArray<?> array) { Schema schema = array.getSchema(); return (schema.getType() == Type.ARRAY) ? schema.getElementType() : schema; }
@Override public int compareTo(final Object o) { if (this == o) return 0; if (o instanceof AvroBagWrapper) { @SuppressWarnings("rawtypes") AvroBagWrapper bOther = (AvroBagWrapper) o; return GenericData.get().compare(theArray, bOther.theArray, theArray.getSchema()); } else { return DataType.compare(this, o); } }
GenericArray<Object> newValues = new GenericData.Array<>(array.getSchema(), valuesHash); obj.put(f.name(), newValues);
/** 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(); } }
assert fieldName != null; final GenericArray<?> array = (GenericArray<?>) value; Schema elementSchema = array.getSchema().getElementType(); Type elementType = elementSchema.getType(); if (elementType == Schema.Type.RECORD || elementType == Schema.Type.MAP){
/** 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(); } }
Iterator e1 = a1.iterator(); Iterator e2 = a2.iterator(); Schema elementType = a1.getSchema().getElementType(); while(e1.hasNext() && e2.hasNext()) { int compare = compare(e1.next(), e2.next(), elementType);
assert fieldName != null; final GenericArray<?> array = (GenericArray<?>) value; Schema elementSchema = array.getSchema().getElementType(); Type elementType = elementSchema.getType(); if (elementType == Schema.Type.RECORD || elementType == Schema.Type.MAP){
Iterator e1 = a1.iterator(); Iterator e2 = a2.iterator(); Schema elementType = a1.getSchema().getElementType(); while(e1.hasNext() && e2.hasNext()) { int compare = compare(e1.next(), e2.next(), elementType);
serializer = SpecificFixedSerializer.get(value.getClass()); } else if (value instanceof GenericArray) { Schema schema = ((GenericArray)value).getSchema(); if (schema.getType() == Type.ARRAY) { schema = schema.getElementType();