Hi,
thanks Gaben for the quite detailed and not as quick&dirty analysis as I first expected!
- Fortunately, the decoupling of RuleSpecification from MatcherFactory was already done earlier, so only the change from Activation<IPatternMatch> and RuleSpecification<IPatternMatch> to ITuple versions is required. After that it is possible to define specific RuleSpecifications, which attach to an event source when instantiating.
- Also, EVM uses isCompatibleWith and isMutable at the moment for checking filter, so that's also covered.
- The EVM Job accepts Activations, not Matches, the _specific_ versions, e.g. StatelessJob uses IMatchProcessor, and renaming it to StatelessPatternMatchJob can prevent any misunderstandings.
- Finally, RuleInstance uses IMatchProcessor and IMatchUpdateListener for attaching to the event source, but that can be refactored into the IncQueryMatcher-specific RuleInstance class.
Concerning the source of the discussion, my other suggestion was to build the EventPattern concept by extending the patternlanguage of EMF-IncQuery, but I understand that on the one hand it may be cumbersome, on the other hand, it is better to avoid the confusion when someone tries to create a matcher for an EventPattern in an IncQueryEngine and the engine drops dead.
Cheers,