@Override
  protected CacheOperationMessage createMessage() {
    DestroyRegionMessage mssg;
    if (event instanceof ClientRegionEventImpl) {
      mssg = new DestroyRegionWithContextMessage();
      ((DestroyRegionWithContextMessage) mssg).context =
          event.getContext();
    } else {
      mssg = new DestroyRegionMessage();
    }

    mssg.notifyOfRegionDeparture = notifyOfRegionDeparture;
    DistributedRegion rgn = getRegion();
    mssg.serialNum = rgn.getSerialNumber();
    Assert.assertTrue(mssg.serialNum != DistributionAdvisor.ILLEGAL_SERIAL);

    mssg.subregionSerialNumbers = rgn.getDestroyedSubregionSerialNumbers();

    RegionEventImpl rei = (RegionEventImpl) event;
    mssg.eventID = rei.getEventId();
    return mssg;
  }
Creates new instance of DestroyRegionOperation

@param notifyOfRegionDeparture was added to fix bug 41111. If false then don't deliver
       afterRemoteRegionDeparture events.
geode-core/src/main/java/org/apache/geode/internal/cache/DestroyRegionOperation.java