On Wed, Mar 6, 2013 at 12:36 PM, Vincent Massol <[email protected]> wrote: > Resending since I've made mistakes (it's only about ObjectReference, not > Properties), sorry about that. Here's the new version: > > ------------ > > Hi devs, > > ATM in the model module there's no ability to reference an xobject other than > by using a free form name. The problem is that this is not really usable. > This is why we introduced the BaseObjectReference in oldcore. > > However this is major PITA since we can't have clean code that create an > object reference and that doesn't depend on oldcore. > > I'd like to propose the following: > * Modify ObjectReference to add 2 named parameters: Class reference and > position > * Make the name optional in EntityReference > > This means that when we use an EntityReferenceResolver to resolve > "wiki:space.page^wiki2:space2.page2" we get an ObjetReference with: > * name = null > * param1: name = "classReference", value = EntityReference > * param2: name = "objectPosition", value = 0 > > Rationale: > * This is exactly what we already do for Locale (and what we'll do for > Version too probably) so it's logical to do it for Object References too > > Consequences: > * We need to modify the Seralizers/Resolvers accordingly
> * We need to modify EntityReference to support a null name This doesn't sound right to me. Why not store the object position in the entity name? Supposing we add support for free-text in object names, I'm sure there will be users (including me) that will name their object using a number, and that number will be the object index. Thanks, Marius > * We deprecate BaseObjectReference > * Probably some other stuff to modify like modifying event listeners > listening on objects since it's now going to be much easier, etc > > WDYT? > > Thanks > -Vincent > > > On Mar 5, 2013, at 9:35 PM, Vincent Massol <[email protected]> wrote: > >> Hi devs, >> >> ATM in the model module there's no ability to reference an xobject other >> than by using a free form name. The problem is that this is not really >> usable. This is why we introduced the BaseObjectProperty in oldcore. >> >> However this is major PITA since we can't have clean code that create an >> object reference and that doesn't depend on oldcore. >> >> I'd like to propose the following: >> * Modify ObjectProperty to add 2 named parameters: Class reference and >> position >> * Make the name optional in EntityReference >> >> This means that when we use an EntityReferenceResolver to resolve >> "wiki:space.page^wiki2:space2.page2" we get an ObjetReference with: >> * name = null >> * param1: name = "classReference", value = EntityReference >> * param2: name = "objectPosition", value = 0 >> >> Rationale: >> * This is exactly what we already do for Locale (and what we'll do for >> Version too probably) so it's logical to do it for Object References too >> >> Consequences: >> * We need to modify the Seralizers/Resolvers accordingly >> * We need to modify EntityReference to support a null name >> * We deprecate BaseObjectProperty >> * Probably some other stuff to modify like modifying event listeners >> listening on objects since it's now going to be much easier, etc >> >> WDYT? >> >> Thanks >> -Vincent >> > > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

