In Drools 3 this is much clearer.

You would do a statement like: IF GenericComparable(primary == true)

Much neater, and you don't even have to declar the parameter of that type
(it is implicit in that case), and yes, it will understand "is" is actually
a getter (lots of people forget).

I think classifelds at the moment only work, with Strings, but I can't be
sure having not used them myself.


Michael.

On 2/9/06, Jason Vinson <[EMAIL PROTECTED]> wrote:
>
> Hi all,
>
> I'm trying to use the class-field property in a java semantics module
> and I'm having an issue with boolean properties.  I am trying to
> access a property named isPrimary which returns a boolean like so:
>
>          <parameter identifier="primary">
>              <class-field field="primary"
> value="true">GenericComparable</class-field>
>          </parameter>
>
> I get an exception from this stating that
>
> org.drools.smf.FactoryException: Field 'primary' does not exist for
> Class 'GenericComparable'.
>
> I know this does exist, and after looking at the drools code, I see
> the following:
>
>              // make sure field getter exists
>              clazz.getMethod( "get" + fieldName.toUpperCase( ).charAt
> ( 0 ) + fieldName.substring( 1 ),
>                               (Class[]) null );
>
> which obviously doesn't work because my accessor starts with "is".
> Is there any plan to support something like this in the future (it's
> been in the JavaBean spec for a while, in section 8.3.2)?
>
> By the way, I tried to change my getter just to see if it works, but
> it still fails on the following in ClassFieldObjectType.matches(),
> because it returns a Boolean (true) and compares that to a String
> ("true").
>
>   result = this.getterMethod.invoke( object, ( Object[] )null ).equals
> ( this.getFieldValue( ) )
>
> Can we use boolean types in class-field?
>
> Thanks for a great api,
> Jason
>

Reply via email to