Uploaded image for project: 'Causeway'
  1. Causeway
  2. CAUSEWAY-2043

Allow domain events to be specified at @DomainObject, and make mixins aware of this.

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.16.2
    • 1.17.0
    • None
    • None

    Description

      Thus:

      @DomainObject(
          ...,
          actionDomainEvent=IncomingInvoice.ActionDomainEvent.class, 
          propertyDomainEvent=IncomingInvoice.PropertyDomainEvent.class,
          collectionDomainEVent=IncomingInvoice.CollectionDomainEvent.class
      )
      public class IncomingInvoice {
        public static class ActionDomainEvent 
            extends o.a.i.applib.services.eventbus.ActionDomainEvent {}
        // etc
      }

      then, for this domain event would be used as the default for any actions etc.

      Two refinements to this:

      a) for mixins, the event type emitted by a mixin action should be that of its mixee if possible.  This does mean that the domain event must use <Object> as its generic type, because the source could either be the regular domain object or a mixin.  This seems reasonable, the subscriber can just call ev.getMixee() to determine the original source.

      b) as a metamodel validation, if there are members that already define their own event types, then these event types should inherit from the types defined in @DomainObject.  However, not sure exactly how well this plays with requirement from (a) that the generic type is <Object>.

       

       

       

      Attachments

        Activity

          People

            danhaywood Daniel Keir Haywood
            danhaywood Daniel Keir Haywood
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: