示例#1
0
 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();
 }
示例#2
0
 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));
 }