protected void looseMarshalCachedObject(
     OpenWireFormat wireFormat, DataStructure o, DataOutput dataOut) throws IOException {
   if (wireFormat.isCacheEnabled()) {
     Short index = wireFormat.getMarshallCacheIndex(o);
     dataOut.writeBoolean(index == null);
     if (index == null) {
       index = wireFormat.addToMarshallCache(o);
       dataOut.writeShort(index.shortValue());
       wireFormat.looseMarshalNestedObject(o, dataOut);
     } else {
       dataOut.writeShort(index.shortValue());
     }
   } else {
     wireFormat.looseMarshalNestedObject(o, dataOut);
   }
 }
 protected void looseMarshalNestedObject(
     OpenWireFormat wireFormat, DataStructure o, DataOutput dataOut) throws IOException {
   wireFormat.looseMarshalNestedObject(o, dataOut);
 }