Uploaded image for project: 'Isis'
  1. Isis
  2. ISIS-2043

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

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.16.2
    • Fix Version/s: 1.17.0
    • Component/s: None
    • Labels:
      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

            • Assignee:
              danhaywood Dan Haywood
              Reporter:
              danhaywood Dan Haywood
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: