discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Renaissance and EOInterface


From: Nicola Pero
Subject: Re: Renaissance and EOInterface
Date: Thu, 10 Jul 2003 10:21:13 +0100 (BST)

> Hello all,
> 
> I have a vague idea of using Renaissance with GDL2 and MulleEOInterface.
> Has someone tried something similar already?

I didn't, but I would be very interested in your experiments! :-)
 

> I see two possible ways:
> 
> In the first, I create some auxiliary classes that are able to construct
> data sources, display groups and associations and initialize them using
> the <instance> tag. They should be controllable by setting some 
> attributes in the gsmarkup file (which entity name for the data source,
> which aspects, display groups and keys for the associations).
> I didn't get very far with this, one reason being
> that the key value setting of arbitrary attributes seems to not work
> with string values, only references (ids) to other objects may be
> set up this way, I think.

Yes.

 
> The second way would be to create new tags for data sources, display
> groups and associations. This seems more promising, especially for the
> associations, because they must be set up in a multi-step manner
> (connecting several aspects to some display groups and keys and then
> calling -establishConnection. Would this be something feasible?

This is how I would do it.


> How much effort would it be to add something like this to Renaissance?

My personal preference would be to make this a separate "tag library"  
rather than adding it to Renaissance itself.  Of course Renaissance might
need to be extended/improved enough to make writing it as a "tag library"
possible, I mean adding hooks to Renaissance etc.

Writing a "tag library" is not difficult.  You can register manually that
a certain class implements a certain tag.  I do this when using
Renaissance from Java, for example, to work around some cross-language
problems.  Otherwise, you can rely on Renaissance finding the class
automatically: during decoding, when a tag XXX is found, Renaissance will
search for a class with name GSMarkupXXXTag (if that is not found, it will
also try GSMarkupTagXXX, GSXXXTag, GSTagXXX, XXXTag, TagXXX), and use an
object of that class to decode the tag.

So, by just setting up a library containing GSMarkupXXXTag classes, you
can implement your own tag library.

Tag classes should inherit from GSMarkupTagObject (look at
Source/Markup/GSMarkupTagObject.[hm]).

Unfortunately, I have to advise you that the Renaissance internals are
still subject to change; in particular GSMarkupTagObject.  That might be
an occasion for you to suggest improvements :-) but there is also the risk
some internal parts might be changed in such a way that require updates in
any library using them.

The internals are still somewhat clumsy.  They work very well/reliably
though.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]