[rules-users] @key declarations for a type - What's under the hood?

Edson Tirelli ed.tirelli at gmail.com
Thu Feb 27 13:16:58 EST 2014


    There are no fancy hidden things in this bean generator, so your Door
would have an empty constructor and a constructor with two Room parameters:

Door door = new Door( fromRoom, toRoom );

   Edson


On Thu, Feb 27, 2014 at 11:24 AM, Matthew Versaggi
<profversaggi at gmail.com>wrote:

> But what if you now have 2 declare statements in which one defines itself
> in terms of the other ...
>
> // A room is also a thing
> declare Room extends Thing
>     name : String @key
> end
>
> One would instantiate an object like this:
> Room room = new Room("office");
>
>
> // A door is a pathway between two rooms
> declare Door extends Thing
>    fromRoom : Room @key
>    toRoom   : Room @key
> end
>
> How would one instantiate an object of 'Door' ?
>
>
>
> On Wed, Feb 26, 2014 at 5:11 PM, Edson Tirelli <ed.tirelli at gmail.com>wrote:
>
>>
>>    Drools bytecode generates these beans without generating java source
>> code (if you are using the declare, not the data modeller). Having said
>> that, it is very simple:
>>
>> declare Here
>>     location: String @key
>> end
>>
>>    Generates a java class roughly equivalent to:
>>
>> public class Here implements Serializable {
>>    private String location;
>>
>>    public Here() {}
>>
>>    public Here( String location ) {
>>       this.location = location;
>>    }
>>
>>    public String getLocation() { return location; }
>>    public void setLocation(String location) { this.location = location; }
>>
>>    // generates a toString()
>>
>>    // generates a hashCode()/equals() method that use the location's
>> hashcode()/equals()
>> }
>>
>>    I did this from memory, but it is pretty much all it does. Nothing
>> complex there, just a javabean really.
>>
>>    The difference to not using @key is that the hashCode()/equals()
>> methods would not take "location" in consideration, and in this case, since
>> there are no other attributes, would then rely on system identity.
>>
>>    Edson
>>
>>
>>
>>
>>
>> On Wed, Feb 26, 2014 at 2:23 PM, profversaggi <profversaggi at gmail.com>wrote:
>>
>>> I was looking for something along the lines of a method of inspecting the
>>> resulting code of any arbitrary @key declarations I might want to
>>> deploy. Is
>>> there such a way?
>>>
>>>
>>>
>>> --
>>> View this message in context:
>>> http://drools.46999.n3.nabble.com/key-declarations-for-a-type-What-s-under-the-hood-tp4028343p4028346.html
>>> Sent from the Drools: User forum mailing list archive at Nabble.com.
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>
>>
>>
>> --
>>   Edson Tirelli
>>   Principal Software Engineer
>>   Red Hat Business Systems and Intelligence Group
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>
>
>
> --
> #########################################################
> Matthew R. Versaggi, President & CEO
> Versaggi Information Systems, Inc.
> Adjunct Professor of eBusiness DePaul University
> Email: mailto:matt at versaggi.com, ProfVersaggi at gmail.com
> M: 630-292-8422
> LinkedIn:  http://www.linkedin.com/in/versaggi
> #########################################################
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>



-- 
  Edson Tirelli
  Principal Software Engineer
  Red Hat Business Systems and Intelligence Group
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140227/32bbf5df/attachment.html 


More information about the rules-users mailing list