Author: tmortagne
Date: 2007-10-03 17:45:32 +0200 (Wed, 03 Oct 2007)
New Revision: 5253
Modified:
xwiki-platform/xwiki-plugins/trunk/application-manager/src/main/java/com/xpn/xwiki/plugin/applicationmanager/doc/XWikiApplication.java
xwiki-platform/xwiki-plugins/trunk/application-manager/src/main/java/com/xpn/xwiki/plugin/applicationmanager/doc/XWikiApplicationClass.java
Log:
* XAAM-10 : Add support for matching string in application descriptor to be
able, for example, to add in one string all document ending with "Class" in
specific Space.
* XAAM-8 : Set new application descriptor document default parent to
XAppManager.WebHome
* Improve javadoc
Modified:
xwiki-platform/xwiki-plugins/trunk/application-manager/src/main/java/com/xpn/xwiki/plugin/applicationmanager/doc/XWikiApplication.java
===================================================================
---
xwiki-platform/xwiki-plugins/trunk/application-manager/src/main/java/com/xpn/xwiki/plugin/applicationmanager/doc/XWikiApplication.java
2007-10-03 15:03:53 UTC (rev 5252)
+++
xwiki-platform/xwiki-plugins/trunk/application-manager/src/main/java/com/xpn/xwiki/plugin/applicationmanager/doc/XWikiApplication.java
2007-10-03 15:45:32 UTC (rev 5253)
@@ -20,98 +20,210 @@
package com.xpn.xwiki.plugin.applicationmanager.doc;
+import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.XWikiException;
import
com.xpn.xwiki.plugin.applicationmanager.core.doc.objects.classes.DefaultSuperDocument;
+import
com.xpn.xwiki.plugin.applicationmanager.core.doc.objects.classes.SuperClass;
import com.xpn.xwiki.doc.XWikiDocument;
+/**
+ * This class manage an XWiki document containing XWiki.XWikiApplicationClass
object. It add some
+ * specifics methods, getters and setters for this type of object and fields.
+ *
+ * @see
com.xpn.xwiki.plugin.applicationmanager.core.doc.objects.classes.DefaultSuperDocument
+ */
public class XWikiApplication extends DefaultSuperDocument
{
+ /**
+ * Pattern to match that indicate if a document name contains SQL "like"
matching string.
+ */
+ static private final Pattern extDocNamePattern =
Pattern.compile("^\\[(.*)\\]$");
+
+ /**
+ * Create new XWikiApplication managing provided XWikiDocument.
+ *
+ * @param xdoc the encapsulated XWikiDocument
+ * @param context the XWiki context
+ * @throws XWikiException
+ * @see
com.xpn.xwiki.plugin.applicationmanager.core.doc.objects.classes.DefaultSuperDocument#DefaultSuperDocument(SuperClass,
+ * XWikiDocument, XWikiContext)
+ */
public XWikiApplication(XWikiDocument xdoc, XWikiContext context) throws
XWikiException
{
super(XWikiApplicationClass.getInstance(context), xdoc, context);
}
+ /**
+ * [EMAIL PROTECTED]
+ * <p>
+ * Add some specifics action for Application Manager descriptors document.
+ * <ul>
+ * <li> Initialize application version to "1.0".
+ * <li> Set descriptor document default parent to Application Manager home
page :
+ * XAppManager.WebHome.
+ * </ul>
+ *
+ * @see
com.xpn.xwiki.plugin.applicationmanager.core.doc.objects.classes.DefaultSuperDocument#reload(com.xpn.xwiki.XWikiContext)
+ */
public void reload(XWikiContext context) throws XWikiException
{
super.reload(context);
if (getAppVersion().length() == 0)
setAppVersion("1.0");
+
+ if (super.isNew())
+ // set Application Manager home as default parent for all
applications descriptors
+ setParent(sclass.getClassSpacePrefix() + "Manager.WebHome");
}
// ///
+ /**
+ * @return the name of the application
+ * @see #setAppName(String)
+ */
public String getAppName()
{
return getStringValue(XWikiApplicationClass.FIELD_appname);
}
+ /**
+ * Modify the name of the application.
+ *
+ * @param appname the new name of the application.
+ * @see #getAppName()
+ */
public void setAppName(String appname)
{
setStringValue(XWikiApplicationClass.FIELD_appname, appname);
}
+ /**
+ * @return the description of the application.
+ * @see #setDescription(String)
+ */
public String getDescription()
{
return getStringValue(XWikiApplicationClass.FIELD_description);
}
+ /**
+ * Modify the description of the application.
+ *
+ * @param description the new description of the application.
+ * @see #getDescription()
+ */
public void setDescription(String description)
{
setStringValue(XWikiApplicationClass.FIELD_description, description);
}
+ /**
+ * @return the version of the application.
+ * @see #setAppVersion(String)
+ */
public String getAppVersion()
{
return getStringValue(XWikiApplicationClass.FIELD_appversion);
}
+ /**
+ * Modify the version of the application.
+ *
+ * @param appversion
+ * @see #getAppVersion()
+ */
public void setAppVersion(String appversion)
{
setStringValue(XWikiApplicationClass.FIELD_appversion, appversion);
}
+ /**
+ * @return the list of plugins on which application depends.
+ * @see #setDependencies(List)
+ */
public List getDependencies()
{
return getListValue(XWikiApplicationClass.FIELD_dependencies);
}
+ /**
+ * Modify the list of plugins on which application depends.
+ *
+ * @param dependencies the new list of plugins on which application
depends.
+ * @see #getDependencies()
+ */
public void setDependencies(List dependencies)
{
setListValue(XWikiApplicationClass.FIELD_dependencies, dependencies);
}
+ /**
+ * @return the list of other applications on which current application
depends.
+ */
public List getApplications()
{
return getListValue(XWikiApplicationClass.FIELD_applications);
}
+ /**
+ * Modify the list of other applications on which current application
depends.
+ *
+ * @param applications the new list of other applications on which current
application depends.
+ * @see #getApplications()
+ */
public void setApplications(List applications)
{
setListValue(XWikiApplicationClass.FIELD_applications, applications);
}
+ /**
+ * @return the list of documents application contains.
+ * @see #setDocuments(List)
+ */
public List getDocuments()
{
return getListValue(XWikiApplicationClass.FIELD_documents);
}
+ /**
+ * Modify the list of documents application contains.
+ *
+ * @param documents the new list of documents application contains.
+ * @see #getDocuments()
+ */
public void setDocuments(List documents)
{
setListValue(XWikiApplicationClass.FIELD_documents, documents);
}
+ /**
+ * @return the list of document application contains that will be included
in place of copy from
+ * wiki template.
+ * @see #setDocsToInclude(List)
+ */
public List getDocsToInclude()
{
return getListValue(XWikiApplicationClass.FIELD_docstoinclude);
}
+ /**
+ * Modify the list of document application contains that will be included
in place of copy from
+ * wiki template.
+ *
+ * @param docstoinclude the new list of document application contains that
will be included in
+ * place of copy from wiki template.
+ * @see #getDocsToInclude()
+ */
public void setDocsToInclude(List docstoinclude)
{
setListValue(XWikiApplicationClass.FIELD_docstoinclude, docstoinclude);
@@ -126,12 +238,28 @@
{
setListValue(XWikiApplicationClass.FIELD_docstolink, docstolink);
}
-
+
+ /**
+ * @return the list of documents containing translations strings.
+ * <p>
+ * Theses documents are added to XWiki.XWikiPreferences
"documentBundles" field at
+ * application installation.
+ */
public List getTranslationDocs()
{
return getListValue(XWikiApplicationClass.FIELD_translationdocs);
}
+ /**
+ * Modify the list of documents containing translations strings.
+ * <p>
+ * Theses documents are added to XWiki.XWikiPreferences "documentBundles"
field at application
+ * installation.
+ *
+ * @param translationdocs the new list of documents containing
translations strings. Theses
+ * documents are added to XWiki.XWikiPreferences
"documentBundles" field at
+ * application installation.
+ */
public void setTranslationDocs(List translationdocs)
{
setListValue(XWikiApplicationClass.FIELD_translationdocs,
translationdocs);
@@ -139,8 +267,8 @@
// ///
- /*
- * (non-Javadoc)
+ /**
+ * [EMAIL PROTECTED]
*
* @see java.lang.Object#toString()
*/
@@ -151,87 +279,252 @@
// ///
+ /**
+ * Get set of XWikiApplication containing all applications on which
current application depend.
+ *
+ * @param recurse if true it add recursively all applications
dependencies, if false return only
+ * direct dependencies.
+ * @param context the XWiki context.
+ * @return the set list of XWikiApplication.
+ * @throws XWikiException
+ * @see #getApplications()
+ */
public Set getXWikiApplicationSet(boolean recurse, XWikiContext context)
throws XWikiException
{
Set applicationSet = new HashSet();
-
+
List applications = getApplications();
for (Iterator it = applications.iterator(); it.hasNext();) {
- XWikiApplication app =
((XWikiApplicationClass)sclass).getApplication((String)it.next(), context,
true);
+ XWikiApplication app =
+ ((XWikiApplicationClass) sclass)
+ .getApplication((String) it.next(), context, true);
applicationSet.add(app);
-
+
if (recurse)
applicationSet.addAll(app.getXWikiApplicationSet(recurse,
context));
-
+
}
-
+
return applicationSet;
}
- private Set getDocsNameSet(String type, boolean recurse, XWikiContext
context)
- throws XWikiException
+ /**
+ * Insert in <code>docsNames</code> all documents names
<code>docsNamesToResolve</code>
+ * contains.
+ * <p>
+ * For each of these documents names, if are between "[" and "]", are
considered as SQL matching
+ * string to use with "like".
+ *
+ * @param docsNames the collection to complete with resolved documents
names.
+ * @param docsNamesToResolve the documents names to resolve.
+ * @param context the XWiki context.
+ * @throws XWikiException
+ * @see #extDocNamePattern
+ * @see
com.xpn.xwiki.store.XWikiStoreInterface#searchDocumentsNames(String,
XWikiContext)
+ */
+ private static void resolveDocumentsNames(Collection docsNames,
+ Collection docsNamesToResolve, XWikiContext context) throws
XWikiException
{
- return getDocsNameSet(type, recurse, false, context);
+ Matcher matcher;
+
+ StringBuffer where = new StringBuffer();
+ for (Iterator it = docsNamesToResolve.iterator(); it.hasNext();) {
+ String docName = (String) it.next();
+
+ matcher = extDocNamePattern.matcher(docName);
+ if (matcher.matches()) {
+ if (where.length() > 0)
+ where.append(" or ");
+ where.append("doc.fullName like
'").append(matcher.group(1)).append("'");
+ } else
+ docsNames.add(docName);
+ }
+
+ if (where.length() > 0)
+
docsNames.addAll(context.getWiki().getStore().searchDocumentsNames("where " +
where,
+ context));
}
- private Set getDocsNameSet(String type, boolean recurse, boolean
includeAppDoc,
+ /**
+ * Insert in <code>docsNames</code> all documents names of type
<code>type</code>
+ * application contains.
+ * <p>
+ * For each of these documents names, if are between "[" and "]", are
considered as SQL matching
+ * string to use with "like".
+ *
+ * @param docsNames the collection to complete with resolved documents
names.
+ * @param type the XWikiApplicationClass field where to find documents
names list :
+ * [EMAIL PROTECTED] XWikiApplicationClass#FIELD_documents},
+ * [EMAIL PROTECTED] XWikiApplicationClass#FIELD_docstoinclude},
+ * [EMAIL PROTECTED] XWikiApplicationClass#FIELD_docstolink}.
+ * @param includeAppDesc if true application descriptor document names is
add to
+ * <code>docsNames</code>.
+ * @param context the XWiki context.
+ * @throws XWikiException
+ * @see XWikiApplicationClass#FIELD_documents
+ * @see XWikiApplicationClass#FIELD_docstoinclude
+ * @see XWikiApplicationClass#FIELD_docstolink
+ * @see #resolveDocumentsNames(Collection, Collection, XWikiContext)
+ */
+ private void resolveDocumentsNames(Collection docsNames, String type,
boolean includeAppDesc,
XWikiContext context) throws XWikiException
{
- Set set = new HashSet();
+ if (includeAppDesc)
+ docsNames.add(getFullName());
- if (includeAppDoc)
- set.add(getFullName());
+ resolveDocumentsNames(docsNames, getListValue(type), context);
+ }
- List list = getListValue(type);
+ /**
+ * Insert in <code>docsNames</code> all documents names of type
+ * <code>type</code> <code>applications</code> XWikiApplication list
contains.
+ * <p>
+ * For each of these documents names, if are between "[" and "]", are
considered as SQL matching
+ * string to use with "like".
+ *
+ * @param docsNames the collection to complete with resolved documents
names.
+ * @param applications the applications containing documents names to
resolve and add to
+ * <code>docsNames</code>.
+ * @param type the XWikiApplicationClass field where to find documents
names list :
+ * [EMAIL PROTECTED] XWikiApplicationClass#FIELD_documents},
+ * [EMAIL PROTECTED] XWikiApplicationClass#FIELD_docstoinclude},
+ * [EMAIL PROTECTED] XWikiApplicationClass#FIELD_docstolink}.
+ * @param includeAppDesc if true application descriptor document names is
add to
+ * <code>docsNames</code>.
+ * @param context the XWiki context.
+ * @throws XWikiException
+ */
+ private static void resolveApplicationsDocsNames(Collection docsNames,
+ Collection applications, String type, boolean includeAppDesc,
XWikiContext context)
+ throws XWikiException
+ {
+ for (Iterator it = applications.iterator(); it.hasNext();) {
+ XWikiApplication app = (XWikiApplication) it.next();
- if (list.contains("*"))
- set.add("*");
- else {
- set.addAll(list);
+ app.resolveDocumentsNames(docsNames, type, includeAppDesc,
context);
+ }
+ }
- if (recurse) {
- for (Iterator it = getXWikiApplicationSet(true,
context).iterator(); it.hasNext();) {
- XWikiApplication app = (XWikiApplication) it.next();
+ /**
+ * Get and resolve all documents names of type <code>type</code>
application contains.
+ * <p>
+ * For each of these documents names, if are between "[" and "]", are
considered as SQL matching
+ * string to use with "like".
+ *
+ * @param type the XWikiApplicationClass field where to find documents
names list :
+ * [EMAIL PROTECTED] XWikiApplicationClass#FIELD_documents},
+ * [EMAIL PROTECTED] XWikiApplicationClass#FIELD_docstoinclude},
+ * [EMAIL PROTECTED] XWikiApplicationClass#FIELD_docstolink}.
+ * @param recurse if true it follow recursively all applications
dependencies, if false parse
+ * only direct dependencies.
+ * @param includeAppDesc if true application descriptor document names is
add to
+ * <code>docsNames</code>.
+ * @param context the XWiki context.
+ * @return all documents names of type <code>type</code> application
contains.
+ * @throws XWikiException
+ */
+ private Set getDocsNameSet(String type, boolean recurse, boolean
includeAppDesc,
+ XWikiContext context) throws XWikiException
+ {
+ Set documents = new HashSet();
- if (includeAppDoc)
- set.add(app.getDocument().getFullName());
-
- set.addAll(app.getListValue(type));
- }
- }
+ resolveDocumentsNames(documents, type, includeAppDesc, context);
+
+ if (recurse) {
+ resolveApplicationsDocsNames(documents,
getXWikiApplicationSet(true, context), type,
+ includeAppDesc, context);
}
- return set;
+ return documents;
}
- public Set getDocumentsNames(boolean recurse, boolean includeAppDoc,
XWikiContext context)
+ /**
+ * Get and resolve all documents names application contains.
+ * <p>
+ * For each of these documents names, if are between "[" and "]", are
considered as SQL matching
+ * string to use with "like".
+ *
+ * @param recurse if true it follow recursively all applications
dependencies, if false parse
+ * only direct dependencies.
+ * @param includeAppDesc if true application descriptor document names is
add to
+ * <code>docsNames</code>.
+ * @param context the XWiki context.
+ * @return all documents names application contains.
+ * @throws XWikiException
+ * @see #getDocuments()
+ * @see XWikiApplicationClass#FIELD_documents
+ */
+ public Set getDocumentsNames(boolean recurse, boolean includeAppDesc,
XWikiContext context)
throws XWikiException
{
- return getDocsNameSet(XWikiApplicationClass.FIELD_documents, recurse,
includeAppDoc,
+ return getDocsNameSet(XWikiApplicationClass.FIELD_documents, recurse,
includeAppDesc,
context);
}
+ /**
+ * Get and resolve all documents names to include application contains.
+ * <p>
+ * For each of these documents names, if are between "[" and "]", are
considered as SQL matching
+ * string to use with "like".
+ *
+ * @param recurse if true it follow recursively all applications
dependencies, if false parse
+ * only direct dependencies.
+ * @param context the XWiki context.
+ * @return all documents names to include application contains.
+ * @throws XWikiException
+ * @see #getDocsToInclude()
+ * @see XWikiApplicationClass#FIELD_docstoinclude
+ */
public Set getDocsNameToInclude(boolean recurse, XWikiContext context)
throws XWikiException
{
- return getDocsNameSet(XWikiApplicationClass.FIELD_docstoinclude,
recurse, context);
+ return getDocsNameSet(XWikiApplicationClass.FIELD_docstoinclude,
recurse, false, context);
}
- public static Set getDocsNameToInclude(List applications, boolean recurse,
+ /**
+ * Get and resolve all documents names to include
<code>applications</code> XWikiApplication
+ * list contains.
+ * <p>
+ * For each of these documents names, if are between "[" and "]", are
considered as SQL matching
+ * string to use with "like".
+ *
+ * @param applications the applications containing documents names to
resolve and add to
+ * <code>docsNames</code>.
+ * @param recurse if true it follow recursively all applications
dependencies, if false parse
+ * only direct dependencies.
+ * @param context the XWiki context.
+ * @return all documents names to include <code>applications</code>
contains.
+ * @throws XWikiException
+ * @see #getDocsToInclude()
+ * @see XWikiApplicationClass#FIELD_docstoinclude
+ */
+ public static Set getDocsNameToInclude(Collection applications, boolean
recurse,
XWikiContext context) throws XWikiException
{
Set docsToInclude = new HashSet();
- for (Iterator it = applications.iterator(); it.hasNext();) {
- docsToInclude.addAll(((XWikiApplication)
it.next()).getDocsNameToInclude(recurse,
- context));
- }
+ resolveApplicationsDocsNames(docsToInclude, applications,
+ XWikiApplicationClass.FIELD_docstoinclude, false, context);
return docsToInclude;
}
+ /**
+ * Get and resolve all documents names to link application contains.
+ * <p>
+ * For each of these documents names, if are between "[" and "]", are
considered as SQL matching
+ * string to use with "like".
+ *
+ * @param recurse if true it follow recursively all applications
dependencies, if false parse
+ * only direct dependencies.
+ * @param context the XWiki context.
+ * @return all documents names to link application contains.
+ * @throws XWikiException
+ * @see #getDocsToLink()
+ * @see XWikiApplicationClass#FIELD_docstolink
+ */
public Set getDocsNameToLink(boolean recurse, XWikiContext context) throws
XWikiException
{
- return getDocsNameSet(XWikiApplicationClass.FIELD_docstolink, recurse,
context);
+ return getDocsNameSet(XWikiApplicationClass.FIELD_docstolink, recurse,
false, context);
}
}
Modified:
xwiki-platform/xwiki-plugins/trunk/application-manager/src/main/java/com/xpn/xwiki/plugin/applicationmanager/doc/XWikiApplicationClass.java
===================================================================
---
xwiki-platform/xwiki-plugins/trunk/application-manager/src/main/java/com/xpn/xwiki/plugin/applicationmanager/doc/XWikiApplicationClass.java
2007-10-03 15:03:53 UTC (rev 5252)
+++
xwiki-platform/xwiki-plugins/trunk/application-manager/src/main/java/com/xpn/xwiki/plugin/applicationmanager/doc/XWikiApplicationClass.java
2007-10-03 15:45:32 UTC (rev 5253)
@@ -33,6 +33,12 @@
import com.xpn.xwiki.objects.classes.BaseClass;
import com.xpn.xwiki.plugin.applicationmanager.ApplicationManagerException;
+/**
+ * [EMAIL PROTECTED] SuperClass} implementation for
XAppClasses.XWikiApplicationClass class.
+ *
+ * @see SuperClass
+ * @see AbstractSuperClass
+ */
public class XWikiApplicationClass extends AbstractSuperClass
{
/**
@@ -48,92 +54,113 @@
// ///
/**
- * Name of field <code>appname</code>.
+ * Name of field <code>appname</code> for the XWiki class
XAppClasses.XWikiApplicationClass.
+ * The name of the application.
*/
public static final String FIELD_appname = "appname";
/**
- * Pretty name of field <code>appname</code>.
+ * Pretty name of field <code>appname</code> for the XWiki class
+ * XAppClasses.XWikiApplicationClass.
*/
public static final String FIELDPN_appname = "Application Name";
/**
- * Name of field <code>description</code>.
+ * Name of field <code>description</code> for the XWiki class
+ * XAppClasses.XWikiApplicationClass. The description of the application.
*/
public static final String FIELD_description = "description";
/**
- * Pretty name of field <code>description</code>.
+ * Pretty name of field <code>description</code> for the XWiki class
+ * XAppClasses.XWikiApplicationClass.
*/
public static final String FIELDPN_description = "Description";
/**
- * Name of field <code>version</code>.
+ * Name of field <code>version</code> for the XWiki class
XAppClasses.XWikiApplicationClass.
+ * The version of the application.
*/
public static final String FIELD_appversion = "appversion";
/**
- * Pretty name of field <code>version</code>.
+ * Pretty name of field <code>version</code> for the XWiki class
+ * XAppClasses.XWikiApplicationClass.
*/
public static final String FIELDPN_appversion = "Application Version";
/**
- * Name of field <code>dependencies</code>.
+ * Name of field <code>dependencies</code> for the XWiki class
+ * XAppClasses.XWikiApplicationClass. The list of plugins on which
application depends.
*/
public static final String FIELD_dependencies = "dependencies";
/**
- * Pretty name of field <code>dependencies</code>.
+ * Pretty name of field <code>dependencies</code> for the XWiki class
+ * XAppClasses.XWikiApplicationClass.
*/
public static final String FIELDPN_dependencies = "Dependencies";
/**
- * Name of field <code>applications</code>.
+ * Name of field <code>applications</code> for the XWiki class
+ * XAppClasses.XWikiApplicationClass. The list of other applications on
which current
+ * application depends.
*/
public static final String FIELD_applications = "applications";
/**
- * Pretty name of field <code>applications</code>.
+ * Pretty name of field <code>applications</code> for the XWiki class
+ * XAppClasses.XWikiApplicationClass.
*/
public static final String FIELDPN_applications = "Applications";
/**
- * Name of field <code>documents</code>.
+ * Name of field <code>documents</code> for the XWiki class
XAppClasses.XWikiApplicationClass.
+ * The list of documents application contains.
*/
public static final String FIELD_documents = "documents";
/**
- * Pretty name of field <code>documents</code>.
+ * Pretty name of field <code>documents</code> for the XWiki class
+ * XAppClasses.XWikiApplicationClass.
*/
public static final String FIELDPN_documents = "Documents";
/**
- * Name of field <code>docstoinclude</code>.
+ * Name of field <code>docstoinclude</code> for the XWiki class
+ * XAppClasses.XWikiApplicationClass. The list of document application
contains that will be
+ * included in place of copy from wiki template.
*/
public static final String FIELD_docstoinclude = "docstoinclude";
/**
- * Pretty name of field <code>docstoinclude</code>.
+ * Pretty name of field <code>docstoinclude</code> for the XWiki class
+ * XAppClasses.XWikiApplicationClass.
*/
public static final String FIELDPN_docstoinclude = "Documents to include";
/**
- * Name of field <code>docstolink</code>.
+ * Name of field <code>docstolink</code> for the XWiki class
+ * XAppClasses.XWikiApplicationClass. The list of document application
contains that will be
+ * linked in place of copy from wiki template.
*/
public static final String FIELD_docstolink = "docstolink";
/**
- * Pretty name of field <code>docstolink</code>.
+ * Pretty name of field <code>docstolink</code> for the XWiki class
+ * XAppClasses.XWikiApplicationClass.
*/
public static final String FIELDPN_docstolink = "Documents to link";
/**
- * Name of field <code>translationdocs</code>.
+ * Name of field <code>translationdocs</code> for the XWiki class
+ * XAppClasses.XWikiApplicationClass.
*/
public static final String FIELD_translationdocs = "translationdocs";
/**
- * Pretty name of field <code>translationdocs</code>.
+ * Pretty name of field <code>translationdocs</code> for the XWiki class
+ * XAppClasses.XWikiApplicationClass.
*/
public static final String FIELDPN_translationdocs = "Translations
documents";
@@ -145,10 +172,12 @@
private static XWikiApplicationClass instance = null;
/**
- * Return unique instance of XWikiApplicationClass and update documents
for this context.
+ * Return unique instance of XWikiApplicationClass and update documents
for this context. It
+ * also check if the corresponding Xwiki class/template/sheet exist in
context's database and
+ * create it if not.
*
- * @param context Context.
- * @return XWikiApplicationClass Instance of XWikiApplicationClass.
+ * @param context the XWiki context.
+ * @return a unique instance of XWikiApplicationClass.
* @throws XWikiException
*/
public static XWikiApplicationClass getInstance(XWikiContext context)
throws XWikiException
@@ -163,16 +192,14 @@
return instance;
}
- /**
- * Default constructor for XWikiApplicationClass.
- */
private XWikiApplicationClass()
{
super(CLASS_SPACE_PREFIX, CLASS_PREFIX);
}
-
+
/**
* [EMAIL PROTECTED]
+ *
* @see
com.xpn.xwiki.plugin.applicationmanager.core.doc.objects.classes.AbstractSuperClass#updateBaseClass(com.xpn.xwiki.objects.classes.BaseClass)
*/
protected boolean updateBaseClass(BaseClass baseClass)
@@ -184,7 +211,7 @@
needsUpdate |= baseClass.addTextField(FIELD_appversion,
FIELDPN_appversion, 30);
StaticListClass slc;
-
+
if (baseClass.addStaticListField(FIELD_dependencies,
FIELDPN_dependencies, 80, true, "",
"input")) {
// TODO : move into BaseClass.addStaticListField with "separators'
parameter when/if
@@ -264,6 +291,18 @@
return needsUpdate;
}
+ /**
+ * Get the XWiki document descriptor of containing
XAppClasses.XWikiApplication XWiki object
+ * with "appname" field equals to <code>appName</code>.
+ *
+ * @param appName the name of the application.
+ * @param context the XWiki context.
+ * @param validate indicate if it return new XWikiDocument or throw
exception if application
+ * descriptor does not exist.
+ * @return the XWikiDocument representing application descriptor.
+ * @throws XWikiException
+ * @see #getApplication(String, XWikiContext, boolean)
+ */
private XWikiDocument getApplicationDocument(String appName, XWikiContext
context,
boolean validate) throws XWikiException
{
@@ -285,6 +324,18 @@
return (XWikiDocument) listApp.get(0);
}
+ /**
+ * Get the XWiki document descriptor of containing
XAppClasses.XWikiApplication XWiki object
+ * with "appname" field equals to <code>appName</code>.
+ *
+ * @param appName the name of the application.
+ * @param context the XWiki context.
+ * @param validate indicate if it return new XWikiDocument or throw
exception if application
+ * descriptor does not exist.
+ * @return the XWikiDocument representing application descriptor.
+ * @throws XWikiException
+ * @see #getApplicationDocument(String, XWikiContext, boolean)
+ */
public XWikiApplication getApplication(String appName, XWikiContext
context, boolean validate)
throws XWikiException
{
@@ -292,6 +343,14 @@
validate), context);
}
+ /**
+ * [EMAIL PROTECTED]
+ * <p>
+ * Override abstract method using [EMAIL PROTECTED] XWikiApplication} as
[EMAIL PROTECTED] XWikiApplication}
+ *
+ * @see
com.xpn.xwiki.plugin.applicationmanager.core.doc.objects.classes.AbstractSuperClass#newSuperDocument(com.xpn.xwiki.doc.XWikiDocument,
+ * com.xpn.xwiki.XWikiContext)
+ */
public SuperDocument newSuperDocument(XWikiDocument doc, XWikiContext
context)
{
return (SuperDocument)
doc.newDocument(XWikiApplication.class.getName(), context);
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications