[rules-users] programmatic manipulation of 4.0 salience?

Scott Reed sreed at spamcop.net
Fri Aug 17 18:07:19 EDT 2007


Mark,
   I think you misunderstood the issue. I know how to set the salience. The problem is that the way 
to *get* the salience of a SalienceInteger is to pass in a Tuple and WorkingMemory and there is no 
explanation of where the Tuple and WorkingMemory are supposed to come from. The only way I could 
figure out how to get the salience as I did in 3.0 is to parse the toString() result value which 
bites but works for now.
   As I asked before, will it work to call IntegerSalience.getSalience(null,null) to get a constant 
salience? If so, it would be helpful to say that in the javadocs. Also helpful, perhaps, would be a 
IntegerSalience.getValue() method with no args that would wrap Salience.getSalience( null, null ).
   I find it a little troubling that the API docs are so unreliable that users are expected to read 
the source code to understand how to use it. It would make some sense if I wanted to use the dynamic 
salience programmatically but since I am only concerned with the simple, constant case, like most 
users I expect, it seems like a lot of effort and time for something that should be easy and quick.
   I can see the benefits of dynamic salience, but I would appreciate the feature more if it hadn't 
made the simple, static case more complex.
   Thanks,
     Scott

Mark Proctor's message received 8/17/2007 5:13 PM:
> Integer.parseInt( salienceText ) is only needed if your source is a 
> string, otherwise  new SalienceInteger( 10 ) is fine. Take a look at the 
> SalienceInteger to understand how it works, tuple, workingMemory are 
> ignored for non dynamic environments:
> http://anonsvn.labs.jboss.com/labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/SalienceInteger.java 
> 
> 
> Mark
> Scott Reed wrote:
>> For lack of any better suggestion I am getting the int salience using
>> Integer.parse(rule.getPriority().toString()).
>> Of course this is a huge hack since it depends on the undocumented 
>> toString() function returning the string value of the integer salience.
>>
>> I am still very interested to hear how the designers thought we should 
>> use the API to get the salience value.
>>
>> Scott Reed's message received 8/17/2007 8:52 AM:
>>> I guess the question here is, where do you get that "salinceText" from?
>>> I am using DRL to define the rules.
>>>
>>> Manjax23's message received 8/17/2007 1:44 AM:
>>>> Salience salience = new SalienceInteger( Integer.parseInt( 
>>>> salienceText ) );
>>>> rule.setSalience( salience );
>>>>
>>>> Cheers,
>>>> manjax23
>>>>
>>>>
>>>> Scott Reed-4 wrote:
>>>>> My 3.1 app has a mechanism that allowed the user to change the 
>>>>> salience of
>>>>> some rules before running them, before loading up WorkingMemory. 
>>>>> This was quite simple,
>>>>> rule.getSalience() returned a rule's int salience value and 
>>>>> rule.setSalience(int) set it. Now in 4.0 I see
>>>>> salience is no longer just an int, but a Salience object with a 
>>>>> simple constructor and complicated
>>>>> getValue(Tuple,WorkingMemory) method to access the int value.
>>>>>
>>>>> It appears to be still easy to set the salience of a rule:
>>>>> rule.setSalience( new SalienceInteger(int)) but getting the int 
>>>>> salience from a Salience object
>>>>> seems to have been removed from joe-blow coder's reach.
>>>>>
>>>>> I would be very grateful if someone would provide me with an 
>>>>> example that
>>>>> gets the int salience associated with a rule. I have no idea where 
>>>>> or why I need to get the
>>>>> Tuple and WorkingMemory. Can I just pass nulls in for those two 
>>>>> arguments?
>>>>>
>>>>> Thanks,
>>>>>    Scott
>>>>> _______________________________________________
>>>>> rules-users mailing list
>>>>> rules-users at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>>>
>>>>>
>>>>
>>>
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 




More information about the rules-users mailing list