Putting it all together

Here's the complete code for this scenario solution:

Figure 1. Complete listing for a façade "cancel" method
// ...
  public void cancelSomeEntityDetails(
    final SomeEntityKeyVersion key)
      throws AppException, InformationalException {

    // retrieve the instance of the entity
    final SomeEntity someEntity =
      someEntityDAO.get(key.someEntityID);

    // do the cancel, passing the version number from the client
    someEntity.cancel(key.versionNo);

  }

  // ...