decode method Null safety

XdrSCVal decode(
  1. XdrDataInputStream stream
)

Implementation

static XdrSCVal decode(XdrDataInputStream stream) {
  XdrSCVal decoded = XdrSCVal(XdrSCValType.decode(stream));
  switch (decoded.discriminant) {
    case XdrSCValType.SCV_U63:
      decoded.u63 = XdrInt64.decode(stream);
      break;
    case XdrSCValType.SCV_U32:
      decoded.u32 = XdrUint32.decode(stream);
      break;
    case XdrSCValType.SCV_I32:
      decoded.i32 = XdrInt32.decode(stream);
      break;
    case XdrSCValType.SCV_STATIC:
      decoded.ic = XdrSCStatic.decode(stream);
      break;
    case XdrSCValType.SCV_OBJECT:
      int objPresent = stream.readInt();
      if (objPresent != 0) {
        decoded.obj = XdrSCObject.decode(stream);
      }
      break;
    case XdrSCValType.SCV_SYMBOL:
      decoded.sym = stream.readString();
      break;
    case XdrSCValType.SCV_BITSET:
      decoded.bits = XdrUint64.decode(stream);
      break;
    case XdrSCValType.SCV_STATUS:
      decoded.status = XdrSCStatus.decode(stream);
      break;
  }
  return decoded;
}