r1513 - in xwiki/trunk/core/src/main/java/com/xpn/xwiki: api doc

Ludovic Dubost ludovic at users.forge.objectweb.org
Tue Nov 7 02:09:12 CET 2006


Author: ludovic
Date: 2006-11-07 02:09:02 +0100 (Tue, 07 Nov 2006)
New Revision: 1513

Modified:
   xwiki/trunk/core/src/main/java/com/xpn/xwiki/api/Document.java
   xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java
Log:
Added functions updateObjectsFromRequest and display(String field, String mode, String prefix)

Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/api/Document.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/api/Document.java	2006-11-06 16:06:35 UTC (rev 1512)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/api/Document.java	2006-11-07 01:09:02 UTC (rev 1513)
@@ -749,6 +749,13 @@
             return doc.display(fieldname, mode, currentObj.getBaseObject(), context);
     }
 
+    public String display(String fieldname, String mode, String prefix) {
+        if (currentObj == null)
+            return doc.display(fieldname, mode, prefix, context);
+        else
+            return doc.display(fieldname, mode, prefix, currentObj.getBaseObject(), context);
+    }
+
     public String display(String fieldname, Object obj) {
         if (obj == null)
             return "";
@@ -761,6 +768,12 @@
         return doc.display(fieldname, mode, obj.getBaseObject(), context);
     }
 
+    public String display(String fieldname, String mode, String prefix, Object obj) {
+        if (obj == null)
+            return "";
+        return doc.display(fieldname, mode, prefix, obj.getBaseObject(), context);
+    }
+
     public String displayForm(String className, String header, String format) {
         return doc.displayForm(className, header, format, context);
     }
@@ -1171,7 +1184,15 @@
     }
 
     public List addObjectsFromRequest(String className) throws XWikiException {
-        List objs = getDoc().addObjectsFromRequest(className, context);
+        return addObjectsFromRequest(className, "");
+    }
+
+    public com.xpn.xwiki.api.Object addObjectFromRequest(String className, String prefix) throws XWikiException {
+        return new com.xpn.xwiki.api.Object(getDoc().addObjectFromRequest(className, prefix, context), context);
+    }
+
+    public List addObjectsFromRequest(String className, String prefix) throws XWikiException {
+        List objs = getDoc().addObjectsFromRequest(className, prefix, context);
         List wrapped = new ArrayList();
         Iterator it = objs.iterator();
         while(it.hasNext()){
@@ -1184,6 +1205,24 @@
         return new com.xpn.xwiki.api.Object(getDoc().updateObjectFromRequest(className, context), context);
     }
 
+    public List updateObjectsFromRequest(String className) throws XWikiException {
+        return updateObjectsFromRequest(className, "");
+    }
+
+    public com.xpn.xwiki.api.Object updateObjectFromRequest(String className, String prefix) throws XWikiException {
+        return new com.xpn.xwiki.api.Object(getDoc().updateObjectFromRequest(className, prefix, context), context);
+    }
+
+    public List updateObjectsFromRequest(String className, String prefix) throws XWikiException {
+        List objs = getDoc().updateObjectsFromRequest(className, prefix, context);
+        List wrapped = new ArrayList();
+        Iterator it = objs.iterator();
+        while(it.hasNext()){
+            wrapped.add(new com.xpn.xwiki.api.Object((BaseObject) it.next(), context));
+        }
+        return wrapped;
+    }
+
     public boolean isAdvancedContent() {
         return doc.isAdvancedContent();
     }

Modified: xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java
===================================================================
--- xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java	2006-11-06 16:06:35 UTC (rev 1512)
+++ xwiki/trunk/core/src/main/java/com/xpn/xwiki/doc/XWikiDocument.java	2006-11-07 01:09:02 UTC (rev 1513)
@@ -995,11 +995,15 @@
     }
 
     public String display(String fieldname, String type, BaseObject obj, XWikiContext context) {
+        return display(fieldname, type, "", obj, context);
+    }
+
+    public String display(String fieldname, String type, String pref, BaseObject obj, XWikiContext context) {
         try {
             type = type.toLowerCase();
             StringBuffer result = new StringBuffer();
             PropertyClass pclass = (PropertyClass) obj.getxWikiClass(context).get(fieldname);
-            String prefix = obj.getxWikiClass(context).getName() + "_" + obj.getNumber() + "_";
+            String prefix = pref + obj.getxWikiClass(context).getName() + "_" + obj.getNumber() + "_";
 
             if (pclass.isCustomDisplayed(context)){
                 pclass.displayCustom(result, fieldname, prefix, type, obj, context);  
@@ -1059,6 +1063,10 @@
     }
 
     public String display(String fieldname, String mode, XWikiContext context) {
+        return display(fieldname, mode, "", context);
+    }
+
+    public String display(String fieldname, String mode, String prefix, XWikiContext context) {
         try {
             BaseObject object = getxWikiObject();
             if (object == null)
@@ -2739,16 +2747,26 @@
 
     // This functions adds an object from an new object creation form
     public BaseObject addObjectFromRequest(String className, XWikiContext context) throws XWikiException {
-        return addObjectFromRequest(className, 0, context);
+        return addObjectFromRequest(className, "", 0, context);
     }
 
-        // This functions adds multiple objects from an new objects creation form
+    // This functions adds an object from an new object creation form
+    public BaseObject addObjectFromRequest(String className, String prefix, XWikiContext context) throws XWikiException {
+        return addObjectFromRequest(className, prefix, 0, context);
+    }
+
+    // This functions adds multiple objects from an new objects creation form
     public List addObjectsFromRequest(String className, XWikiContext context) throws XWikiException {
+        return addObjectsFromRequest(className, "", context);
+    }
+
+    // This functions adds multiple objects from an new objects creation form
+    public List addObjectsFromRequest(String className, String pref, XWikiContext context) throws XWikiException {
         Map map = context.getRequest().getParameterMap();
         List objectsNumberDone = new ArrayList();
         List objects  = new ArrayList();
         Iterator it = map.keySet().iterator();
-        String start = className + "_";
+        String start = pref + className + "_";
 
         while (it.hasNext()) {
             String name = (String) it.next();
@@ -2758,7 +2776,7 @@
                 int num = Integer.decode(prefix.substring(prefix.lastIndexOf("_") + 1)).intValue();
                 if (!objectsNumberDone.contains(new Integer(num))){
                     objectsNumberDone.add(new Integer(num));
-                    objects.add(addObjectFromRequest(className, num, context));
+                    objects.add(addObjectFromRequest(className, pref, num, context));
                 }
             }
         }
@@ -2767,10 +2785,14 @@
 
     // This functions adds object from an new object creation form
     public BaseObject addObjectFromRequest(String className, int num, XWikiContext context) throws XWikiException {
+        return addObjectFromRequest(className, "", num, context);
+    }
+    // This functions adds object from an new object creation form
+    public BaseObject addObjectFromRequest(String className, String prefix, int num, XWikiContext context) throws XWikiException {
         int nb = createNewObject(className, context);
         BaseObject oldobject = getObject(className, nb);
         BaseClass baseclass = oldobject.getxWikiClass(context);
-        BaseObject newobject = (BaseObject) baseclass.fromMap(Util.getObject(context.getRequest(), className + "_" + num), oldobject);
+        BaseObject newobject = (BaseObject) baseclass.fromMap(Util.getObject(context.getRequest(), prefix + className + "_" + num), oldobject);
         newobject.setNumber(oldobject.getNumber());
         newobject.setName(getFullName());
         setObject(className, nb, newobject);
@@ -2779,21 +2801,59 @@
 
     // This functions adds an object from an new object creation form
     public BaseObject updateObjectFromRequest(String className, XWikiContext context) throws XWikiException {
+        return updateObjectFromRequest(className, "", context);
+    }
+
+    // This functions adds an object from an new object creation form
+    public BaseObject updateObjectFromRequest(String className, String prefix, XWikiContext context) throws XWikiException {
+        return updateObjectFromRequest(className, prefix, 0, context);
+    }
+
+    // This functions adds an object from an new object creation form
+    public BaseObject updateObjectFromRequest(String className, String prefix, int num, XWikiContext context) throws XWikiException {
         int nb;
-        BaseObject oldobject = getObject(className);
+        BaseObject oldobject = getObject(className, num);
         if (oldobject==null) {
             nb = createNewObject(className, context);
             oldobject = getObject(className, nb);
         } else
            nb = oldobject.getNumber();
         BaseClass baseclass = oldobject.getxWikiClass(context);
-        BaseObject newobject = (BaseObject) baseclass.fromMap(Util.getObject(context.getRequest(), className + "_" + nb), oldobject);
+        BaseObject newobject = (BaseObject) baseclass.fromMap(Util.getObject(context.getRequest(), prefix + className + "_" + nb), oldobject);
         newobject.setNumber(oldobject.getNumber());
         newobject.setName(getFullName());
         setObject(className, nb, newobject);
         return newobject;
     }
 
+    // This functions adds an object from an new object creation form
+    public List  updateObjectsFromRequest(String className, XWikiContext context) throws XWikiException {
+        return updateObjectsFromRequest(className, "", context);
+    }
+
+    // This functions adds multiple objects from an new objects creation form
+    public List updateObjectsFromRequest(String className, String pref, XWikiContext context) throws XWikiException {
+        Map map = context.getRequest().getParameterMap();
+        List objectsNumberDone = new ArrayList();
+        List objects  = new ArrayList();
+        Iterator it = map.keySet().iterator();
+        String start = pref + className + "_";
+
+        while (it.hasNext()) {
+            String name = (String) it.next();
+            if (name.startsWith(start)) {
+                int pos = name.indexOf("_", start.length() + 1);
+                String prefix = name.substring(0, pos);
+                int num = Integer.decode(prefix.substring(prefix.lastIndexOf("_") + 1)).intValue();
+                if (!objectsNumberDone.contains(new Integer(num))){
+                    objectsNumberDone.add(new Integer(num));
+                    objects.add(updateObjectFromRequest(className, pref, num, context));
+                }
+            }
+        }
+        return objects;
+    }
+
     public boolean isAdvancedContent() {
         String[] matches = { "<%" , "#set", "#include", "#if",  "public class",  "/* Advanced content */", "## Advanced content", "/* Programmatic content */", "## Programmatic content" };
         String content2 = content.toLowerCase();





More information about the Xwiki-notifications mailing list