code: @Override
      public void writeExternal(ObjectOutput out)
          throws IOException {
  
          out.writeByte(this.type);
  
          switch (this.type) {
              case BAHAI:
                  this.writeBahai(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