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

