@Override
    public void fromData(DataInput in,
        DeserializationContext context) throws IOException, ClassNotFoundException {
      super.fromData(in, context);
      final byte extraFlags = in.readByte();
      final boolean hasEventId = (extraFlags & HAS_EVENTID) != 0;
      if (hasEventId) {
        eventId = new EventID();
        InternalDataSerializer.invokeFromData(eventId, in);

        boolean hasTailKey = in.readBoolean();
        if (hasTailKey) {
          tailKey = in.readLong();
        }
      } else {
        eventId = null;
      }
      key = DataSerializer.readObject(in);

      deserializationPolicy = (byte) (extraFlags & DESERIALIZATION_POLICY_MASK);
      if (hasDelta()) {
        deltaBytes = DataSerializer.readByteArray(in);
      } else {
        newValue = DataSerializer.readByteArray(in);
        if ((extraFlags & HAS_DELTA_WITH_FULL_VALUE) != 0) {
          deltaBytes = DataSerializer.readByteArray(in);
        }
      }
      if ((extraFlags & DO_NOT_GENERATE_CALLBACKS) != 0) {
        generateCallbacks = false;
      }
    }
Utility to set the new value in the EntryEventImpl based on the given deserialization value;
also called from QueuedOperation
geode-core/src/main/java/org/apache/geode/internal/cache/UpdateOperation.java