On Wed, May 30, 2012 at 5:46 PM, Jeremie BOUSQUET <[email protected]> wrote:
Hello,
I'm wondering if I'm on the good path ... I'm trying to move out some "old core" api usage, and replace them using the DocumentAccessBridge (3.5.1), in a java component.
Considering a very simple use-case : setting property value of an object. Here the document containing object is not in same space as the class.
1- With old core:
XWikiDocument doc = context.getWiki().getDocument("Prefs.Document", context); BaseObject obj = serverDoc.getObject("Code.Class"); obj.set("property", value, context);
2- With DAB, using deprecated method:
dab.setProperty("Prefs.Document", "Code.Class", "property", value);
3- With DAB, using non-deprecated methods:
SpaceReference prefsSpaceRef = new SpaceReference(new EntityReference("Prefs", EntityType.SPACE)); DocumentReference prefsDocRef = new DocumentReference("Document", prefsSpaceRef); SpaceReference codeSpaceRef = new SpaceReference(new EntityReference("Code", EntityType.SPACE)); DocumentReference classDocRef = new DocumentReference("Class", codeSpaceRef); dab.setProperty(prefsDocRef, classDocRef, "property", value);
Questions:
a- the code with 3- is, IMO, quite verbose compared to the others. Is it really the best way to do this ? Of course I could store the SpaceReference objects to factorize their use and simplify the code. I'd better be sure before recoding all this ...
I believe you can also write new DocumentReference("wiki", "space", "page") and you can pass null for wiki part if you don't care about it.
b- what's the best practice, for a component, to properly manage the targeted wiki, in order to be single/multi-wiki/workspaces proof ? Here I didn't bother specifying the targeted wiki, if I do it will add more "*Reference" creations.
c- is there any facility method to convert an oldish xwiki document reference (as "wiki:Space.Page" or "Space.Page") to a DocumentReference ?
Yes, DocumentReferenceResolver. Thanks, Marius
By the way, is the bridge API representative of the future new xwiki data model that will replace old core, or is it only representative of the current bridge api ?
Thanks, Jeremie _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users