On 20 aug. 2011, at 01:26, Chuck Hill wrote:
On 2011-08-19, at 2:46 PM, Johan Henselmans wrote:
My idea:
I have an entity contact, that gets vertically inherited into actor, employee, visitor, nicepersontoalwayinviteforfreetoanyshow, whatever, based on the role somebody/thing plays.
A contact can have different roles, which makes this contact playing actor, employee, visitor, nicepersontoalwayinviteforfreetoanyshow or whatever. So there is a m-n relation roles in a contact.
Where is Kieran? This is his favourite question. It sounds like you should be using the Role pattern and not inheritance.
http://objectdiscovery.com/solutions/publications/roles/index.html
I thought I used a Role pattern. situation:
base class is contact, others are inheritances all in the same table
contact - visitor
-actor
-director
-nice person
role class - (defined via eo)
contact<->role m:n
I would assume that figure 13 in the article would be the most desirable solution, as the role definition is dynamic (roles can be added)
but I do not get how in that situation the specific methods and data of a specific role would then be defined. Or perhaps I miss the point?
For instance, and actor can have a relationship to a specific show, a theatergroup, a paycheck, a visitor can have visited a specific performance, etc. Where would you define that kind of behavior?
I assumed that I should be able to create and get a visitor if I could describe in the EOModel qualifier something like roles.ROLE.name = 'visitor'
Something like this:
<PastedGraphic-3.png>
And I would create the relation to the role in the awakeFromInsertion phase of the Visitor.
Of course this is not working, (nothing ever works where I live) as I am getting
takeValueForKey(): attempt to assign value to unknown key: 'roles.ROLE.name'. This class does not have an instance variable of the name roles.ROLE.name
What is the proper incantation to do this?
I think that is not possible. The restricting qualifier has to be evaluated on that single entity only.
Chuck
--
Chuck Hill Senior Consultant / VP Development
Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects