private boolean populateIntList(IntList list, HollowOrdinalIterator iter, OrdinalIdentityTranslator identityTranslator) { list.clear(); int nextOrdinal = iter.next(); while(nextOrdinal != HollowOrdinalIterator.NO_MORE_ORDINALS) { int identityOrdinal = identityTranslator.getIdentityOrdinal(nextOrdinal); if(identityOrdinal == -1 && nextOrdinal != -1) return false; list.add(identityOrdinal); nextOrdinal = iter.next(); } if(!orderingIsImportant) list.sort(); return true; } };
private HollowListWriteRecord copyToWriteRecord(List<?> l, FlatRecordWriter flatRecordWriter) { HollowListWriteRecord rec = (HollowListWriteRecord) writeRecord(); if (ignoreListOrdering) { IntList ordinalList = getIntList(); for (Object o : l) { if (o == null) { throw new NullPointerException(String.format(NULL_ELEMENT_MESSAGE, schema)); } int ordinal = flatRecordWriter == null ? elementMapper.write(o) : elementMapper.writeFlat(o, flatRecordWriter); ordinalList.add(ordinal); } ordinalList.sort(); for (int i = 0; i < ordinalList.size(); i++) rec.addElement(ordinalList.get(i)); } else { for (Object o : l) { if (o == null) { throw new NullPointerException(String.format(NULL_ELEMENT_MESSAGE, schema)); } int ordinal = flatRecordWriter == null ? elementMapper.write(o) : elementMapper.writeFlat(o, flatRecordWriter); rec.addElement(ordinal); } } return rec; }
private void assertResults(HollowHistoryKeyIndex keyIdx, String type, String query, int... expectedResults) { IntList actualResults = keyIdx.getTypeKeyIndexes().get(type).queryIndexedFields(query); Assert.assertEquals(expectedResults.length, actualResults.size()); actualResults.sort(); for(int i=0;i<expectedResults.length;i++) { Assert.assertEquals(expectedResults[i], actualResults.get(i)); } }
public boolean recordsAreEqual(int ordinal) { int size = fromSetState.size(ordinal); if(toSetState.size(ordinal) != size) return false; fromScratch.clear(); toScratch.clear(); HollowOrdinalIterator iter = fromSetState.ordinalIterator(ordinal); int next = iter.next(); while(next != HollowOrdinalIterator.NO_MORE_ORDINALS) { fromScratch.add(next); next = iter.next(); } iter = toSetState.ordinalIterator(ordinal); next = iter.next(); while(next != HollowOrdinalIterator.NO_MORE_ORDINALS) { toScratch.add(next); next = iter.next(); } fromScratch.sort(); toScratch.sort(); return fromScratch.equals(toScratch); } };
private boolean populateIntLists(IntList keysList, IntList valuesList, HollowMapEntryOrdinalIterator iter, OrdinalIdentityTranslator keyTranslator, OrdinalIdentityTranslator valueTranslator) { keysList.clear(); valuesList.clear(); while(iter.next()) { int keyIdentity = keyTranslator.getIdentityOrdinal(iter.getKey()); int valueIdentity = valueTranslator.getIdentityOrdinal(iter.getValue()); if(keyIdentity == -1 && iter.getKey() != -1) return false; if(valueIdentity == -1 && iter.getValue() != -1) return false; keysList.add(keyTranslator.getIdentityOrdinal(iter.getKey())); valuesList.add(valueTranslator.getIdentityOrdinal(iter.getValue())); } keysList.sort(); valuesList.sort(); return true; } };