Wolfgang,
I am not sure how useful such a no-field control fact is, but
anyway, feel free to open a JIRA and propose a way to support that
from a syntax perspective. I.e., we will probably need to use a new
annotation to allow users to explicitly tell the engine to generate
the no-field bean, what could be more cumbersome than simply use a
dummy field in these specific cases.
Open for suggestions,
Edson
2010/11/10 Wolfgang Laun <wolfgang.laun(a)gmail.com>:
I can declare a useful event type which doesn't have any fields
except the implicit timestamp and duration. As you've described,
the compiler assumes that this is an extension of an imported
fact, and complains if this cannot be found.
Here is a complete, not too contrived use case.
declare Trigger
@role( event )
@expires( 1s )
void: Void ## required due to compiler's insistence of
Trigger being defined elsewhere
end
rule "1m ticker"
timer(int: 1m 1m)
when
then
insert( new Trigger() );
end
rule "count jobs 30 minutes before Trigger"
when
$t: Trigger()
Number( $i: intValue > 3 ) from accumulate(
Job( this before[0,30m] $t )
count( 1 ) )
then
retract( $t );
System.out.println( "Too many jobs (" + $i + ") at " +
clockAsString() );
end
Cheers
Wolfgang
On 10 November 2010 16:03, Edson Tirelli <tirelli(a)post.com> wrote:
> Hi Wolfgang,
>
> Not sure what is the intent with that?
>
> Just to explain the design, the compiler differentiates two use
> cases: (1) if a declare has no fields in it, it understands the user
> is annotating an existing class. (2) If a declare has at least one
> field, then the compiler tries to generate a new class and annotate
> it.
>
> In case (1) above, if the compiler does not find an existing class,
> it (correctly, IMO) raises an error.
>
> Can you please clarify?
>
> Thanks,
> Edson
>
> 2010/11/10 Wolfgang Laun <wolfgang.laun(a)gmail.com>:
>> This simple declare for a new (not imported) class isn't permitted by
>> the compiler, although it makes sense.
>>
>> Of course, it's possible to work around by adding a dummy field.
>>
>> But is this restriction intentional by design, to alert users when
>> they misspell a class name, or forget to import a class?
>>
>> If not, I'll make a request to permit this.
>>
>> -W
>> _______________________________________________
>> rules-dev mailing list
>> rules-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-dev
>>
>
>
>
> --
> Edson Tirelli
> JBoss Drools Core Development
> JBoss by Red Hat @
www.jboss.com
>
> _______________________________________________
> rules-dev mailing list
> rules-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-dev
>
_______________________________________________
rules-dev mailing list
rules-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev