code: @Override
      public void readExternal(ObjectInput in)
          throws IOException, ClassNotFoundException {
  
          byte header = in.readByte();
  
          switch ((header & 0xFF) >> 4) {
              case DATE_TYPE:
                  this.obj = this.readDate(in, header);
                  break;
              case TIME_TYPE:
                  this.obj = this.readTime(in);
                  break;
              case WEEKMODEL_TYPE:
                  this.obj = this.readWeekmodel(in, header);
                  break;
              case MOMENT_TYPE:
                  this.obj = this.readMoment(in, header);
                  break;
              case MACHINE_TIME_TYPE:
                  this.obj = this.readMachineTime(in, header);
                  break;
              case DURATION_TYPE:
                  this.obj = this.readDuration(in, header);
                  break;
              case DAY_PERIOD_TYPE:
                  this.obj = this.readDayPeriod(in, header);
                  break;
              case TIMESTAMP_TYPE:
                  this.obj = this.readTimestamp(in, header);
                  break;
              default:
                  throw new StreamCorruptedException("Unknown serialized type.");
          }
  
      }
docs: /*[deutsch]
  <p>Implementierungsmethode des Interface {@link Externalizable}. </p>
  
  @param   in      input stream
  @throws  IOException in any case of IO-failures
  @throws  ClassNotFoundException if class-loading fails