private void serializeTXORecord(ContinuableRecordOutput out) {

    out.writeShort(field_1_options);
    out.writeShort(field_2_textOrientation);
    out.writeShort(field_3_reserved4);
    out.writeShort(field_4_reserved5);
    out.writeShort(field_5_reserved6);
    out.writeShort(_text.length());
    out.writeShort(getFormattingDataLength());
    out.writeInt(field_8_reserved7);

    if (_linkRefPtg != null) {
      int formulaSize = _linkRefPtg.getSize();
      out.writeShort(formulaSize);
      out.writeInt(_unknownPreFormulaInt);
      _linkRefPtg.write(out);
      if (_unknownPostFormulaByte != null) {
        out.writeByte(_unknownPostFormulaByte.byteValue());
      }
    }
  }
  public Object clone() {

    TextObjectRecord rec = new TextObjectRecord();
    rec._text = _text;

    rec.field_1_options = field_1_options;
    rec.field_2_textOrientation = field_2_textOrientation;
    rec.field_3_reserved4 = field_3_reserved4;
    rec.field_4_reserved5 = field_4_reserved5;
    rec.field_5_reserved6 = field_5_reserved6;
    rec.field_8_reserved7 = field_8_reserved7;

    rec._text = _text; // clone needed?

    if (_linkRefPtg != null) {
      rec._unknownPreFormulaInt = _unknownPreFormulaInt;
      rec._linkRefPtg = _linkRefPtg.copy();
      rec._unknownPostFormulaByte = _unknownPostFormulaByte;
    }
    return rec;
  }