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

Reply via email to