code: @Override
      public void writeExternal(ObjectOutput out)
          throws IOException {
  
          out.writeByte(this.type);
  
          switch (this.type) {
              case HIJRI:
                  this.writeHijri(out);
                  break;
              case PERSIAN:
                  this.writePersian(out);
                  break;
              case COPTIC:
                  this.writeCoptic(out);
                  break;
              case ETHIOPIAN_DATE:
                  this.writeEthiopianDate(out);
                  break;
              case ETHIOPIAN_TIME:
                  this.writeEthiopianTime(out);
                  break;
              case MINGUO:
                  this.writeMinguo(out);
                  break;
              case JULIAN:
                  this.writeJulian(out);
                  break;
              case THAI_SOLAR:
                  this.writeThaiSolar(out);
                  break;
              case JAPANESE:
                  this.writeJapanese(out);
                  break;
              case INDIAN:
                  this.writeIndian(out);
                  break;
              case HISTORIC:
                  this.writeHistoric(out);
                  break;
              case HEBREW_DATE:
                  this.writeHebrewDate(out);
                  break;
              case HEBREW_TIME:
                  this.writeHebrewTime(out);
                  break;
              case CHINESE:
              case KOREAN:
              case VIETNAMESE:
                  this.writeEAC(out);
                  break;
              case JUCHE:
                  this.writeJuche(out);
                  break;
              default:
                  throw new InvalidClassException("Unsupported calendar type.");
          }
  
      }
docs: /*[deutsch]
  <p>Implementierungsmethode des Interface {@link Externalizable}. </p>
  
  <p>Das erste Byte enth&auml;lt den Typ des zu serialisierenden Objekts.
  Danach folgen die Daten-Bits in einer vielleicht bit-komprimierten Darstellung. </p>
  
  @serialData  data layout see {@code writeReplace()}-method of object
  to be serialized
  @param       out     output stream
  @throws      IOException in any case of IO-failures