@Override
    public void writeExternal(ObjectOutput out)
        throws IOException {

        switch (this.type) {
            case FALLBACK_TIMEZONE_TYPE:
                this.writeFallback(out);
                break;
            case TRANSITION_RESOLVER_TYPE:
                this.writeStrategy(out);
                break;
            case HISTORIZED_TIMEZONE_TYPE:
                this.writeZone(out);
                break;
            case ZONAL_OFFSET_TYPE:
                this.writeOffset(out);
                break;
            default:
                throw new InvalidClassException("Unknown serialized type.");
        }

    }
@ Override public void writeExternal ( ObjectOutput out ) throws IOException { switch ( this . type ) { case FALLBACK_TIMEZONE_TYPE : this . writeFallback ( out ) ; break ; case TRANSITION_RESOLVER_TYPE : this . writeStrategy ( out ) ; break ; case HISTORIZED_TIMEZONE_TYPE : this . writeZone ( out ) ; break ; case ZONAL_OFFSET_TYPE : this . writeOffset ( out ) ; break ; default : throw new InvalidClassException ( "Unknown serialized type." ) ; } }
/*[deutsch]
<p>Implementierungsmethode des Interface {@link Externalizable}. </p>

<p>Das erste Byte enth&auml;lt um 4 Bits nach links verschoben den
Typ des zu serialisierenden Objekts. Danach folgen die Daten-Bits
in einer bit-komprimierten Darstellung. </p>

@serialData  data layout see {@code writeReplace()}-method of object
to be serialized
@param       out     output stream
@throws      IOException in case of I/O-problems