Ugh.  Have a look at ERXEntityClassDescription$Factory.  It does not deal well 
with this.  A sub-class of Factory is one way to approach this.  Make 
registerDescriptionForEntity public and call it.  Though you might need to get 
rid of the old class description.

Another way is to listen for the EntityLoadedNotification and change the class 
there.  That should be before ERXEntityClassDescription$Factory gets involved.

Chuck

From: Mark Gowdy <[email protected]>
Date: Friday, June 3, 2016 at 4:50 AM
To: Chuck Hill <[email protected]>
Cc: WebObjects-Dev <[email protected]>
Subject: Re: Tweaking the model on start-up


On 3 Jun 2016, at 11:49, Mark Gowdy <[email protected]<mailto:[email protected]>> 
wrote:


On 2 Jun 2016, at 21:18, Chuck Hill 
<[email protected]<mailto:[email protected]>> wrote:

finishInitialization() in your application.

I have attempted to tweak my ‘User’ entity at 
‘Application.finishInitialization()’,
But when the app tries to get a User object, it blows up:

ERROR er.extensions.eof.ERXEntityClassDescription  - Unable to register 
descriptions for class: class com.es.eo.User
RuntimeException: Dummy
  at 
er.extensions.eof.ERXEntityClassDescription$Factory.registerDescriptionForClass(ERXEntityClassDescription.java:615)
  at 
er.extensions.eof.ERXEntityClassDescription$Factory.classDescriptionNeededForClass(ERXEntityClassDescription.java:392)

The smallest change that causes the error above is:
---
EOEditingContext tmpEc = ERXEC.newEditingContext();
EOEntity entity = EOUtilities.entityNamed(tmpEc, "User");
entity.setClassName("com.es.eo.User"); // changed from 'com.mg.users.eo.User'
---

I guess I need to re-initialise or register something, but I am not sure what 
exactly.

I discovered that the other tweaks to the model (adding the ‘User' —>> ‘Hubs’) 
actually worked.

My problem appears to primarily be the class name change.
It looks like I need to register it somehow.  Any ideas?

Mark




Thanks,

Mark



Chuck


From: 
<[email protected]<mailto:[email protected]>>
 on behalf of Mark Gowdy <[email protected]<mailto:[email protected]>>
Date: Thursday, June 2, 2016 at 1:14 PM
To: WebObjects-Dev 
<[email protected]<mailto:[email protected]>>
Subject: Tweaking the model on start-up

Hi,

Is there a convenient way to update an Entity details when the app starts up?

e.g.
'Model Framework’ (A) has an Entity called ‘User’
‘Model Framework’ (B) has an Entity called ‘Hub’ that is joined (to-one) with 
to ‘User’
i.e.
com.B.Hub   —> com.A.User
(where ‘User’ knows nothing about ‘Hub’, it is out of scope)

I can create a class in (B) called
com.B.User extends com.A.User

so that I can add the additional set/get code,

and then apply something like this (at start-up):
{
className = "com.B.User";
relationships = (
{
destination = Hub;
isToMany = Y;
joinSemantic = EOInnerJoin;
joins = ({destinationAttribute = userID; sourceAttribute = id; });
name = hubs;
}
);
}

Any suggestions?

Mark

_________________
Mark Gowdy
Gowdy Associates Ltd
Skype: markgowdy





_________________
Mark Gowdy
Gowdy Associates Ltd
M: +44 7808 400 941
Skype: markgowdy

_________________
Mark Gowdy
Gowdy Associates Ltd
M: +44 7808 400 941
Skype: markgowdy



 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to