-
New Feature
-
Resolution: Obsolete
-
Major
-
None
-
None
-
None
SuggestionCompletionEngine currently has arrays of operators that are applicable for different data-types.
Edson advises this can be obtained dynamically from an operator registry held within Expert.
Here's some history (adding new operators for CEP), some narrative and some recommendations:-
<_manstis> etirelli: BTW can you do "Fact( myDate before XYZ && after ABC)", like you can "Fact( myLong == 1 && ==2 )"
<etirelli> yes
<_manstis> damn
<etirelli>
<etirelli> all drools operators are handled the same way
<_manstis> maybe in DRL
<etirelli> lol
<etirelli> _manstis: question: are you hardcoding available operators?
<_manstis> hell yeah, lots and lots and lots (and now even more) of them
<_manstis> we split into which are applicable for different datatypes
<_manstis> so matches is not suitable for longs
<_manstis> etc
<etirelli> _manstis: ouch...
<etirelli> _manstis: well, for the future, we should change that and use the operator introspection
<_manstis> but.... if there's a DroolsOperatorsForDataTypesKnowledgeBuilder somewhere you can tell me.....
<etirelli> as the KnowledgeBuilderConfiguration tells you all the available operators
<etirelli> yes
<_manstis> hmmm. might take a look..... I need to swap them out a bit for your CEP operators (that take additional parameters)
<etirelli> public boolean supportsType(ValueType type)
<etirelli> EvaluatorDefinition.supportsType(ValueType type) will tell you if the evaluator supports a given type
<etirelli> so you can introspect everything, without having to hard code them...
<_manstis> hmm.....
<_manstis> KnowledgeBuilderConfiguration is an empty interface, care to mention the implementation so I can have a quick nose?
- lazarotti (~lazarott@173-166-37-146-newengland.hfc.comcastbusiness.net) has joined #droolsdev
<_manstis> OK, got it PackageBuilderConfiguration - salaboy has quit (salaboy)
<etirelli> _manstis: KnowledgeBuilderOptionsConfiguration
<etirelli> the actual method is:
<etirelli> public <T extends MultiValueKnowledgeBuilderOption> Set<String> getOptionKeys( Class<T> option );
<etirelli> so you call:
<etirelli> Set<String> keys = conf.getOptionKeys( EvaluatorOption.class );
<etirelli> that will give you the keys of all definitions...
<etirelli> then you do:
<etirelli> for( String key : keys )
<etirelli> a bit verbose but should give you all the info you need
- relates to
-
AF-662 Guided decision table: Allow for adding custom operator and add "starts with", "ends with", "contains" and "matches" operators which can act on String values.
- Closed