public static void readRightTuple(MarshallerReaderContext context, InternalFactHandle factHandle)
      throws IOException {
    ObjectInputStream stream = context.stream;

    int sinkId = stream.readInt();
    RightTupleSink sink = (sinkId >= 0) ? (RightTupleSink) context.sinks.get(sinkId) : null;

    RightTuple rightTuple = new RightTuple(factHandle, sink);
    context.rightTuples.put(new RightTupleKey(factHandle.getId(), sink), rightTuple);

    if (sink != null) {
      BetaMemory memory = null;
      switch (sink.getType()) {
        case NodeTypeEnums.AccumulateNode:
          {
            memory = ((AccumulateMemory) context.wm.getNodeMemory((BetaNode) sink)).betaMemory;
            break;
          }
        default:
          {
            memory = (BetaMemory) context.wm.getNodeMemory((BetaNode) sink);
            break;
          }
      }
      memory.getRightTupleMemory().add(rightTuple);
      memory.linkLeft();
    }
  }