Carsten Ziegeler wrote:
>Stefano Mazzocchi wrote:
>
>
>>Ok, I stand corrected and I change my -1 to a +1 for a context-based reference to
the cocoon object model of general avalon components when loaded by cocoon.
>>
>>
>Yuppi! So, I will try to implement it then today :)
>
Hey, wait a bit ! We have to define first how the object model is to be
accessed from the context.
I see two ways :
1 - the object model as a whole is accessible as a context entry :
Map objectModel = (Map)context.get(CTX_OBJECT_MODEL);
2 - each of the element of the object model can be accessed separately :
Request req = (Request)context.get(CTX_REQUEST);
I don't like solution 1, as it exposes the fact that object model
elements are stored in a Map, which really is an implementation detail
(remember discussions long ago about defining an ObjectModel class ?).
So my preference goes to solution 2, which exposes directly the elements
of the object model, without caring if they are all gathered in a Map,
or independently set in the context though ThreadLocals, or whatever
implementation choice is made. Furtheremore, the Context being already
analoguous to a Map, there's no need, from the user point of view, for
an additional indirection (the map may however be kept under the hood
for the implementation).
Of course, if the object model is extended, e.g. with flow values, this
will mean an additional entry in the context.
And we will have a ContextHelper class, counter part of ObjectModelHelper.
Thoughts ?
Sylvain
--
Sylvain Wallez Anyware Technologies
http://www.apache.org/~sylvain http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }
|