public long[] getIDsForClass(Transaction trans, ClassMetadata clazz) { final IntArrayList ids = new IntArrayList(); clazz .index() .traverseIds( trans, new Visitor4() { public void visit(Object obj) { ids.add(((Integer) obj).intValue()); } }); return ids.asLong(); }
protected void readIndex( ObjectContainerBase stream, ClassMetadata clazz, ByteArrayBuffer reader) { int indexID = reader.readInt(); if (!stream.maintainsIndices() || !(stream instanceof LocalObjectContainer)) { return; } if (btree(clazz) != null) { return; } clazz.index().read(stream, validIndexId(indexID)); if (isOldClassIndex(indexID)) { new ClassIndexesToBTrees_5_5().convert((LocalObjectContainer) stream, indexID, btree(clazz)); stream.setDirtyInSystemTransaction(clazz); } }
public int marshalledLength(final ObjectContainerBase stream, final ClassMetadata clazz) { final IntByRef len = new IntByRef( stream.stringIO().shortLength(clazz.nameToWrite()) + Const4.OBJECT_LENGTH + (Const4.INT_LENGTH * 2) + (Const4.ID_LENGTH)); len.value += clazz.index().ownLength(); clazz.forEachDeclaredAspect( new Procedure4() { public void apply(Object arg) { len.value += _family._field.marshalledLength(stream, (ClassAspect) arg); } }); return len.value; }
protected void writeIndex(Transaction trans, ClassMetadata clazz, ByteArrayBuffer writer) { int indexID = clazz.index().write(trans); writer.writeInt(indexIDForWriting(indexID)); }