+1 for 2.a)

On Tue, May 19, 2009 at 2:04 PM, Thomas Mortagne
<[email protected]>wrote:

> On Tue, May 19, 2009 at 14:03, Thomas Mortagne
> <[email protected]> wrote:
> > On Tue, May 19, 2009 at 13:57, Anca Paula Luca <[email protected]>
> wrote:
> >> Thomas Mortagne wrote:
> >>> Hi devs,
> >>>
> >>> For 2.0 syntax we make XWikiDocument.display() enclose the result in
> >>> {{html}}{{/html}} since it's supposed to generate html and that we
> >>> should not have to use {{html}}{{/html}} in the syntax when we call
> >>> $doc.display("somefield").
> >>>
> >>> Now the issue is that public api Object and Document get() methods
> >>> does not return the value but call display. But users (and us) used to
> >>> access string value using $object.somefield instead of
> >>> $object.getProperty("somefield").getValue() which is the correct form
> >>> to access an object field value.
> >>
> >> I feel that
> >> $object.fieldName is way more natural as
> >> $object.getProperty("somefield").getValue()
> >> than as
> >> $object.display().
> >>
> >> Otherwise put, why can't we change getters to return
> >> $object.getProperty("somefield").getValue()?
> >
> > Because if we do that we break all code using $object.fieldName to
> > display the field like most of the code to edit a form in inline mode
> > (like the default content we generate in the class manager in XE). As
> > i said in a previous mail when Thomas raised the issue, i would prefer
> > that $object.fieldName does not call display but whatever the change
> > you make to the API it will break it for users.
>
> The only thing we can do is keep the old model working as it always
> worked and take care of all theses problems found for the new model.
>
> >
> >>
> >>
> >>
> >>>
> >>> Because of this wrong use of display() we have a big change in the api
> >>> form user point so the question is what do we do ?
> >>>
> >>> I can see the following solution:
> >>> 1) it's not a real change in the API, user should use the right way.
> >>> It's ok like that.
> >>> 2) we "optimize" XWikiDocument.display() by generating
> >>> {{html}}{{/html}} only when it's necessary (if the result really is
> >>> html)
> >>>   2.a) if it contains "<" or ">"
> >>>   2.b) when it's not a BaseStringProperty/NumberProperty/DateProperty
> >>> since theses properties does not really need to produce HTML
> >>> 3) we clean the display result in Object/Document.get by removing the
> >>> {{html}}{{/html}} when the result does not really contains html (more
> >>> or less the same way to find it than 2))
> >>>
> >>> WDYT ?
> >>>
> >>> I'm +1 for 2.a) (I don't like b, i think the generic way is better)
> >>> since i don't think we can "change" the API even if it's not a real
> >>> change and this solution is not that much a hack, it makes display()
> >>> return cleaner anyway.
> >>> 3) as the advantage of fixing only the problematic API but it's really
> >>> too crappy IMO
> >>> _______________________________________________
> >>> devs mailing list
> >>> [email protected]
> >>> http://lists.xwiki.org/mailman/listinfo/devs
> >> _______________________________________________
> >> devs mailing list
> >> [email protected]
> >> http://lists.xwiki.org/mailman/listinfo/devs
> >>
> >
> >
> >
> > --
> > Thomas Mortagne
> >
>
>
>
> --
> Thomas Mortagne
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>



-- 
Guillaume Lerouge
Product Manager - XWiki
Skype ID : wikibc
http://guillaumelerouge.com/
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to