r1046 - xwiki/trunk/src/main/java/com/xpn/xwiki/api
Ludovic Dubost
ludovic at users.forge.objectweb.org
Thu Apr 13 19:23:14 CEST 2006
Author: ludovic
Date: 2006-04-13 19:23:12 +0200 (Thu, 13 Apr 2006)
New Revision: 1046
Modified:
xwiki/trunk/src/main/java/com/xpn/xwiki/api/Document.java
Log:
Fixed Saving API by modified the way to clone the Document
Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/api/Document.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/api/Document.java 2006-04-12 09:23:26 UTC (rev 1045)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/api/Document.java 2006-04-13 17:23:12 UTC (rev 1046)
@@ -60,7 +60,7 @@
public Document(XWikiDocument doc, XWikiContext context) {
super(context);
this.olddoc = doc;
- this.doc = (XWikiDocument) doc.clone();
+ this.doc = doc;
}
public XWikiDocument getDocument() {
@@ -71,6 +71,8 @@
}
protected XWikiDocument getDoc() {
+ if (doc==olddoc)
+ doc = (XWikiDocument) doc.clone();
return doc;
}
@@ -255,7 +257,7 @@
}
public Class getxWikiClass() {
- BaseClass bclass = doc.getxWikiClass();
+ BaseClass bclass = getDoc().getxWikiClass();
if (bclass==null)
return null;
else
@@ -264,7 +266,7 @@
public Class[] getxWikiClasses() {
- List list = doc.getxWikiClasses(context);
+ List list = getDoc().getxWikiClasses(context);
if (list==null)
return null;
Class[] result = new Class[list.size()];
@@ -274,7 +276,7 @@
}
public int createNewObject(String classname) throws XWikiException {
- return doc.createNewObject(classname, context);
+ return getDoc().createNewObject(classname, context);
}
public Object newObject(String classname) throws XWikiException {
@@ -287,12 +289,12 @@
}
public int getObjectNumbers(String classname) {
- return doc.getObjectNumbers(classname);
+ return getDoc().getObjectNumbers(classname);
}
public Map getxWikiObjects() {
- Map map = doc.getxWikiObjects();
+ Map map = getDoc().getxWikiObjects();
Map resultmap = new HashMap();
for (Iterator it = map.keySet().iterator();it.hasNext();) {
String name = (String) it.next();
@@ -317,13 +319,13 @@
}
public Vector getObjects(String classname) {
- Vector objects = doc.getObjects(classname);
+ Vector objects = getDoc().getObjects(classname);
return getObjects(objects);
}
public Object getFirstObject(String fieldname) {
try {
- BaseObject obj = doc.getFirstObject(fieldname, context);
+ BaseObject obj = getDoc().getFirstObject(fieldname, context);
if (obj==null)
return null;
else
@@ -335,7 +337,7 @@
public Object getObject(String classname, String key, String value, boolean failover) {
try {
- BaseObject obj = doc.getObject(classname, key, value, failover);
+ BaseObject obj = getDoc().getObject(classname, key, value, failover);
if (obj==null)
return null;
else
@@ -347,7 +349,7 @@
public Object getObject(String classname, String key, String value) {
try {
- BaseObject obj = doc.getObject(classname, key, value);
+ BaseObject obj = getDoc().getObject(classname, key, value);
if (obj==null)
return null;
else
@@ -363,7 +365,7 @@
public Object getObject(String classname, boolean create) {
try {
- BaseObject obj = doc.getObject(classname);
+ BaseObject obj = getDoc().getObject(classname);
if ((obj==null)&&create) {
return newObject(classname);
@@ -380,7 +382,7 @@
public Object getObject(String classname, int nb) {
try {
- BaseObject obj = doc.getObject(classname, nb);
+ BaseObject obj = getDoc().getObject(classname, nb);
if (obj==null)
return null;
else
@@ -425,7 +427,7 @@
}
public List getAttachmentList() {
- List list = doc.getAttachmentList();
+ List list = getDoc().getAttachmentList();
List list2 = new ArrayList();
for (int i=0;i<list.size();i++) {
list2.add(new Attachment(this, (XWikiAttachment)list.get(i), context));
@@ -545,7 +547,7 @@
}
public Attachment getAttachment(String filename) {
- XWikiAttachment attach = doc.getAttachment(filename);
+ XWikiAttachment attach = getDoc().getAttachment(filename);
if (attach==null)
return null;
else
@@ -641,11 +643,11 @@
if ((origdoc==null)&&(newdoc==null))
return new ArrayList();
if (origdoc==null)
- return doc.getObjectDiff(new XWikiDocument(newdoc.getWeb(), newdoc.getName()), newdoc.getDoc(), context);
+ return getDoc().getObjectDiff(new XWikiDocument(newdoc.getWeb(), newdoc.getName()), newdoc.getDoc(), context);
if (newdoc==null)
- return doc.getObjectDiff(origdoc.getDoc(), new XWikiDocument(origdoc.getWeb(), origdoc.getName()), context);
+ return getDoc().getObjectDiff(origdoc.getDoc(), new XWikiDocument(origdoc.getWeb(), origdoc.getName()), context);
- return doc.getObjectDiff(origdoc.getDoc(), newdoc.getDoc(), context);
+ return getDoc().getObjectDiff(origdoc.getDoc(), newdoc.getDoc(), context);
} catch (Exception e) {
java.lang.Object[] args = { origdoc.getFullName(), origdoc.getVersion(), newdoc.getVersion() };
List list = new ArrayList();
@@ -696,7 +698,7 @@
public boolean checkAccess(String right) {
try {
- return context.getWiki().checkAccess(right, doc, context);
+ return context.getWiki().checkAccess(right, getDoc(), context);
} catch (XWikiException e) {
return false;
}
@@ -704,7 +706,7 @@
public boolean hasAccessLevel(String level) {
try {
- return context.getWiki().getRightService().hasAccessLevel(level, context.getUser(), doc.getFullName(), context);
+ return context.getWiki().getRightService().hasAccessLevel(level, context.getUser(), getDoc().getFullName(), context);
} catch (Exception e) {
return false;
}
@@ -756,12 +758,12 @@
public java.lang.Object get(String classOrFieldName) {
if (currentObj!=null)
- return doc.display(classOrFieldName, currentObj.getBaseObject(), context);
- BaseObject object = doc.getFirstObject(classOrFieldName, context);
+ return getDoc().display(classOrFieldName, currentObj.getBaseObject(), context);
+ BaseObject object = getDoc().getFirstObject(classOrFieldName, context);
if (object!=null) {
- return doc.display(classOrFieldName, object, context);
+ return getDoc().display(classOrFieldName, object, context);
}
- return doc.getObject(classOrFieldName);
+ return getDoc().getObject(classOrFieldName);
}
@@ -782,21 +784,16 @@
return TOCGenerator.generateTOC(getContent(), init, max, numbered, context);
}
- public void saveDocument() throws XWikiException {
- if (hasAccessLevel("edit"))
- context.getWiki().saveDocument(doc, context);
- }
-
public com.xpn.xwiki.api.Object addObjectFromRequest() throws XWikiException {
if (hasAccessLevel("edit"))
- return new com.xpn.xwiki.api.Object(doc.addObjectFromRequest(context), context);
+ return new com.xpn.xwiki.api.Object(getDoc().addObjectFromRequest(context), context);
else
return null;
}
public void insertText(String text, String marker) throws XWikiException {
if (hasAccessLevel("edit"))
- doc.insertText(text, marker, context);
+ getDoc().insertText(text, marker, context);
}
public boolean equals(java.lang.Object arg0) {
@@ -854,26 +851,26 @@
}
public void setTitle(String title) {
- doc.setTitle(title);
+ getDoc().setTitle(title);
}
public void setParent(String parent) {
- doc.setParent(parent);
+ getDoc().setParent(parent);
}
public void setContent(String content) {
- doc.setContent(content);
+ getDoc().setContent(content);
}
public void setDefaultTemplate(String dtemplate) {
- doc.setDefaultTemplate(dtemplate);
+ getDoc().setDefaultTemplate(dtemplate);
}
public void save() throws XWikiException {
if (hasAccessLevel("edit"))
- context.getWiki().saveDocument(doc, olddoc, context);
+ context.getWiki().saveDocument(getDoc(), olddoc, context);
else {
- java.lang.Object[] args = { doc.getFullName() };
+ java.lang.Object[] args = { getDoc().getFullName() };
throw new XWikiException(XWikiException.MODULE_XWIKI_ACCESS, XWikiException.ERROR_XWIKI_ACCESS_DENIED,
"Access denied in edit mode on document {0}", null, args);
}
@@ -881,9 +878,9 @@
public void saveWithProgrammingRights() throws XWikiException {
if (checkProgrammingRights())
- context.getWiki().saveDocument(doc, olddoc, context);
+ context.getWiki().saveDocument(getDoc(), olddoc, context);
else {
- java.lang.Object[] args = { doc.getFullName() };
+ java.lang.Object[] args = { getDoc().getFullName() };
throw new XWikiException(XWikiException.MODULE_XWIKI_ACCESS, XWikiException.ERROR_XWIKI_ACCESS_DENIED,
"Access denied with no programming rights document {0}", null, args);
}
More information about the Xwiki-notifications
mailing list