[rules-dev] use of declared facts

Edson Tirelli tirelli at post.com
Tue Jan 27 11:01:33 EST 2009


    There should be no difference between MVEL and Java on this. If you can
try with M5 and open a JIRA in case it is not working, I appreciate.

    []s
    Edson


2009/1/27 Michal Bali <michalbali at gmail.com>

> Thanks Edson,
> BTW, I've tried to instantiate an internal fact in a rule with MVEL dialect
> but it didn't worked. I've tried this in M4. I' haven't tried it yet in M5.
>
> Is this a known issue or should I create a new JIRA with test case?
>
> Best Regards,
> Michal
>
>
> On Tue, Jan 27, 2009 at 2:31 PM, Edson Tirelli <tirelli at post.com> wrote:
>
>>
>>    Michal is correct from the point of view of the application. That is
>> required because the actual classes are generated at compile time and not
>> visible to the application classpath.
>>
>>    Although, that is not the only way. Inside your rules, they are visible
>> and you instantiate them the same way as you instantiate any other java
>> Pojo:
>>
>> rule xyz
>> when
>>      // sometihng
>> then
>>      Person p = new Person();
>>      p.setName( "Bob" );
>>      insert( p );
>> end
>>
>>     Also, if you use Guvnor to define your model, Guvnor is capable of
>> generating a jar file for you with the generated classes. This way you can
>> download the jar and add it to the classpath of your application and use it
>> as any POJOs too.
>>
>>     []s
>>     Edson
>>
>>
>> 2009/1/27 Michal Bali <michalbali at gmail.com>
>>
>> Look at this unit test for some examples:
>>>
>>> http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
>>>
>>>         // Retrieve the generated fact type
>>>         FactType cheeseFact = ruleBase.getFactType(
>>> "org.drools.generatedbeans.Cheese" );
>>>
>>>         // Create a new Fact instance
>>>         Object cheese = cheeseFact.newInstance();
>>>
>>>         // Set a field value using the more verbose method chain...
>>>         // should we add short cuts?
>>>         //        cheeseFact.getField( "type"
>>> ).getFieldAccessor().setValue( cheese,
>>>         //
>>> "stilton" );
>>>
>>>         cheeseFact.set( cheese,
>>>                         "type",
>>>                         "stilton" );
>>>         assertEquals( "stilton",
>>>                       cheeseFact.get( cheese,
>>>                                       "type" ) );
>>>
>>>
>>> On Tue, Jan 27, 2009 at 2:02 AM, Oleg Zenzin <zenzin at intalio.com> wrote:
>>>
>>>> There's now possibility to declare facts in the drl, like:
>>>>
>>>> declare Person
>>>>  name: String
>>>>  age: int
>>>> end
>>>>
>>>> My question is how do I instantiate this fact object during runtime? Do
>>>> I still need to have class Person compiled and existing somewhere in
>>>> classpath, or there's a helper class which I can use "fake the fact",
>>>> something like:
>>>>
>>>>   FakeFact person = FakeFact("Person");
>>>>   person.setField("name", "Oleg");
>>>>   person.setField("age", "42");
>>>>   session.insert(person);
>>>>
>>>> Or there's another nicer way?
>>>>
>>>> Thank you,
>>>> -Oleg Zenzin
>>>>
>>>> _______________________________________________
>>>> rules-dev mailing list
>>>> rules-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/rules-dev
>>>>
>>>>
>>>
>>> _______________________________________________
>>> rules-dev mailing list
>>> rules-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/rules-dev
>>>
>>>
>>
>>
>> --
>>  Edson Tirelli
>>  JBoss Drools Core Development
>>  JBoss, a division of Red Hat @ www.jboss.com
>>
>> _______________________________________________
>> rules-dev mailing list
>> rules-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-dev
>>
>>
>
> _______________________________________________
> rules-dev mailing list
> rules-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-dev
>
>


-- 
 Edson Tirelli
 JBoss Drools Core Development
 JBoss, a division of Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-dev/attachments/20090127/adc22a83/attachment.html 


More information about the rules-dev mailing list