public boolean delete(ObjectReference ref, int id, int cascade) {
   if (!super.delete(ref, id, cascade)) {
     return false;
   }
   MsgD msg = Msg.TA_DELETE.getWriterForInts(this, new int[] {id, cascade});
   _client.writeBatchedMessage(msg);
   return true;
 }
 public void processDeletes() {
   Visitor4 deleteVisitor =
       new Visitor4() {
         public void visit(Object a_object) {
           DeleteInfo info = (DeleteInfo) a_object;
           if (info._reference != null) {
             _objectRefrencesToGC =
                 Tree.add(_objectRefrencesToGC, new TreeIntObject(info._key, info._reference));
           }
         }
       };
   traverseDelete(deleteVisitor);
   _client.writeBatchedMessage(Msg.PROCESS_DELETES);
 }