On Tue, Nov 15, 2011 at 17:11, Vincent Massol <[email protected]> wrote:

>
> On Nov 15, 2011, at 5:03 PM, Denis Gervalle wrote:
>
> > Hi Devs,
> >
> > The implementation of the immutable version of reference is almost ready
> > now. It introduce the parameters on reference as suggested, but we now
> have
> > a discussion on how the constructors of "typed" entity reference should
> be.
> >
> > My initial dev was to provide constructor like:
>
> you're missing something here :)
>
> > But Vincent have different vision of this, here its comment extracted
> from
>
> I don't have a different vision. It's just that you limited your proposal
> to just Locale which clearly isn't good enough.
>
> > GitHub (
> >
> https://github.com/xwiki/xwiki-platform/commit/cea424914f40ce924afbc49b3159bc8934251aac#commitcomment-721603
> )
> > :
> >
> > My proposal was:
> >> - generic params in EntityReference
> >> - helpers methods for get/setLocale and get/setVersion in
> DocumentReference
> >>
> >> Now the fact that we're making the refs immutable changed this since
> it's
> >> no longer possible.
> >>
> >> I don't think multiplying the constructor signatures is a good idea.
> >>
> >> We could either have:
> >>
> >> public DocumentReference(String wikiName, List spaceNames, String
> >> pageName, Map<String, Object> parameters)
> >>
> >> or
> >>
> >> public DocumentReference(String wikiName, List spaceNames, String
> >> pageName, Pair<String, Object>... parameters)
> >>
> >> where Pair is
> >>
> http://commons.apache.org/lang/api-3.0-beta/org/apache/commons/lang3/Pair.html
> >>
> >> Maybe this needs some discussion on the devs list rather than here to
> make
> >> sure everyone sees it?
> >>
> >
> > I am myself not really happy with that since I dislike the idea that
> > parameter are generic on "typed" references.
> > Do not like either the idea to provide keys for creating a Map or Pairs,
> > since the implementation details that use Map should not be so exposed
> IMO.
> >
> > There should not be so much parameter on a single "typed" reference,
>
> I don't understand this sentence.
>
> The Map is <String, Object>.
>

I would means that this should not cause so many additional constructors,
if we list them individually.
So your have not the same vision then I have :)


>
> > and
> > these should be easy to provide. Creating Maps in java is not fun in
> syntax
> > for that IMO, and is far too open.
>
> Sure but the goal here is not to redo java…
>

Not my goals, just want to be explicit and easy to use.


>
> > I had propose using overloaded constructor like
> >
> > public DocumentReference(String wikiName, List<String> spaceNames, String
> > pageName, Locale locale)
>
> Again, this doesn't work. It only works for a **single** parameter. It
> doesn't work for multiple parameters. How do you specify the Locale or some
> unknown String param?
>

I simply provide the need constructor, no more.


>
> > or if something more flexible should be used
> >
> > public DocumentReference(String wikiName, List<String> spaceNames, String
> > pageName, Object... parameters)
> >
> > where parameters is later interpreted based on object type and limited to
> > those used for a given typed reference.
>
> This doesn't work. If I have 2 parameters of type String, how do you map
> them automatically?
>

I suggest not to have loosely typed parameters, but strong one, like Locale
and Version.


>
> Also the goal is to have unknown parameters so how can you do a mapping
> for something unknown? :)
>

That is clearly not my goal, why do you want unknown parameters on Document
Reference ?


>
> Thanks
> -Vincent
>
> > Here Vincent comments on this:
> >
> >> The automatic mapping idea seems a bad idea to me (too magic and doesn't
> >> work in a lot of cases).
> >
> >
> > Maybe some of you have an even better idea ?
> >
> > Denis
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>



-- 
Denis Gervalle
SOFTEC sa - CEO
eGuilde sarl - CTO
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to