On Tue, Jun 29, 2010 at 11:42, Caleb James DeLisle
<[email protected]> wrote:
> I believe that in order for a new api to be accepted by the community, it 
> must be more useful and/or easier to use
> than the api which it replaces.
>
> The old way of getting a document was this:
> $xwiki.getDocument("xwiki:Main.WebHome")
>
> The current way to get a document is this:
> $xwiki.getDocument($services.model.createDocumentReference($context.wiki, 
> $space, "WebHome"))
>
> I am quite sure that the user community will choose the former even if it has 
> escaping issues.
>
> Lest one think we can bully the community into choosing the latter by 
> deprecation or removal of methods, recall
> the dismal sales of Windows Vista even with the control afforded by the 
> proprietary license and the awesome power
> Microsoft wields over the market. The user is the boss, their word is law.
>
> My first proposal is that we move to an easier way to handle document names.
>
>
>
> My second proposal is a possible way to do it.
> I would like velocity and groovy script authors to be able to give a command 
> like this:
> xwiki.getDocument(["Main", "WebHome"]);
> or in velocity
> $xwiki.getDocument(["Main", "WebHome"])
>
> To make that possible I am proposing we change the reference model as follows:
> EntityReference extends List<String>
> Each reference has a name which is expressed as a string, it also has a 
> reference to the next node and the last
> node. This is a classic example of a LinkedList. The point is that any 
> List<String> is a valid (although reletive)
> reference. When a relative reference is passed, it is replaced with a 
> complete reference which is completed using
> the document in the context.
>
> As you prepare your -1's please recognize that the community will never go 
> for the current model and almost
> anything is better than a rift between the community and the development 
> team. If there are any other ideas of
> how to make it that easy, I would be glad to hear them.

I don't see why making public script API to get a document easier
imply to change EntityReferences. You can always have this
xwiki.getDocument(["Main", "WebHome"]); without touching
EntityReferences design, you just create a reference from this list in
the getDocument implementation.

Problem with your proposal is that it will introduce several
limitations  since you have only strings: You have no idea what is
what in this String list you can only rely on the index of the string
in the list.
- the current EntityReferences is that way because we wanted to make
possible to have a reference with just the wiki and the page and give
it to a resolver to get a full reference
- how do you support multiple spaces since you can't know which of
theses strings are spaces ?

>
>
> Caleb
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to