r1414 - in xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src: main/java/org/gelc/xwiki/plugins/licence test/resources

Jeremi Joslin jeremi at users.forge.objectweb.org
Fri Oct 20 03:37:07 CEST 2006


Author: jeremi
Date: 2006-10-20 03:36:58 +0200 (Fri, 20 Oct 2006)
New Revision: 1414

Added:
   xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/LicenceManagerConstant.java
   xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/LicenceManagerPlugin.java
   xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/LicenceManagerPluginAPI.java
   xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/test/resources/metadata.csv
Log:
[GELC]
* Add the Licence manager
* refactor the mimetype
* add functions to the asset Manager

Added: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/LicenceManagerConstant.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/LicenceManagerConstant.java	2006-10-20 01:36:21 UTC (rev 1413)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/LicenceManagerConstant.java	2006-10-20 01:36:58 UTC (rev 1414)
@@ -0,0 +1,15 @@
+package org.gelc.xwiki.plugins.licence;
+
+public interface LicenceManagerConstant {
+    public final static String PLUGIN_NAME = "licence_manager";
+
+    public final static String LICENCE_SPACE = "Licences";
+
+    public final static String LICENCE_CLASS_FULLNAME = "XWiki.LicenceClass";
+    public final static String LICENCE_CLASS_NAME = "LicenceClass";
+
+    public final static String LICENCE_ITEM_NAME = "name";
+    public final static String LICENCE_ITEM_CURIKI_COMPATIBLE = "compatible";
+
+
+}


Property changes on: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/LicenceManagerConstant.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/LicenceManagerPlugin.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/LicenceManagerPlugin.java	2006-10-20 01:36:21 UTC (rev 1413)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/LicenceManagerPlugin.java	2006-10-20 01:36:58 UTC (rev 1414)
@@ -0,0 +1,127 @@
+package org.gelc.xwiki.plugins.licence;
+
+import com.xpn.xwiki.XWiki;
+import com.xpn.xwiki.XWikiContext;
+import com.xpn.xwiki.XWikiException;
+import com.xpn.xwiki.api.Api;
+import com.xpn.xwiki.doc.XWikiDocument;
+import com.xpn.xwiki.objects.classes.BaseClass;
+import com.xpn.xwiki.plugin.XWikiDefaultPlugin;
+import com.xpn.xwiki.plugin.XWikiPluginInterface;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.gelc.xwiki.plugins.mdfw.MetaDataFrameworkPlugin;
+
+import java.util.List;
+
+
+public class LicenceManagerPlugin extends XWikiDefaultPlugin implements XWikiPluginInterface, LicenceManagerConstant {
+    private static Log log = LogFactory.getFactory().getInstance(MetaDataFrameworkPlugin.class);
+
+
+    public LicenceManagerPlugin(String name, String className, XWikiContext context) {
+        super(name, className, context);
+    }
+
+    public String getName() {
+        return PLUGIN_NAME;
+    }
+
+    public Api getPluginApi(XWikiPluginInterface plugin, XWikiContext context) {
+        return new LicenceManagerPluginAPI((LicenceManagerPlugin) plugin, context);
+    }
+
+    public void virtualInit(XWikiContext context){
+        try {
+            initClasses(context);
+        } catch (XWikiException e) {
+
+        }
+    }
+
+    public void init(XWikiContext context){
+        try {
+            initClasses(context);
+        } catch (XWikiException e) {
+
+        }
+    }
+
+    private void initClasses(XWikiContext context) throws XWikiException {
+        initLicenceClass(context);
+    }
+
+    public String addLicence(String name, boolean compatible, XWikiContext context) throws XWikiException {
+        String pageName = context.getWiki().getUniquePageName(LICENCE_SPACE, name, context);
+        XWikiDocument xwDoc = context.getWiki().getDocument(LICENCE_SPACE, pageName, context);
+        com.xpn.xwiki.api.Object obj;
+        Licence doc;
+
+        if (xwDoc.isNew()){
+            doc = (Licence) xwDoc.newDocument(Licence.class.getName(), context);
+            doc.setCustomClass(Licence.class.getName());
+            doc.setTitle(name);
+        }
+        else
+            doc = (Licence) xwDoc.newDocument(context);
+
+        obj = doc.newObject(LICENCE_CLASS_FULLNAME);
+        doc.use(obj);
+        doc.set(LICENCE_ITEM_NAME, name);
+        doc.set(LICENCE_ITEM_CURIKI_COMPATIBLE, (compatible?1:0));
+        doc.save();
+        return doc.getFullName();
+    }
+
+    public List getCompatibleLicences(XWikiContext context) throws XWikiException {
+        return getLicences(true, context);
+    }
+
+    public List getNotCompatibleLicences(XWikiContext context) throws XWikiException {
+        return getLicences(false, context);
+    }
+
+    public List getLicences(boolean compatible, XWikiContext context) throws XWikiException {
+        String hql = ", BaseObject as obj, IntegerProperty as prop where obj.name=doc.fullName"
+                + " and obj.className='" + LICENCE_CLASS_FULLNAME + "' and prop.id.id = obj.id "
+                + "and prop.id.name = '" + LICENCE_ITEM_CURIKI_COMPATIBLE + "' and prop.value=" + (compatible?1:0);
+        return context.getWiki().getStore().searchDocumentsNames(hql, context);
+    }
+
+    public String getLicenceName(String name, XWikiContext context) throws XWikiException {
+        Licence lic = (Licence) context.getWiki().getDocument(LICENCE_SPACE, name, context).newDocument(context);
+        lic.use(LICENCE_CLASS_FULLNAME);
+        return (String) lic.get(LICENCE_ITEM_NAME);
+    }
+
+    private void initLicenceClass(XWikiContext context) throws XWikiException {
+        XWikiDocument doc;
+        XWiki xwiki = context.getWiki();
+        boolean needsUpdate = false;
+
+        try {
+            doc = xwiki.getDocument(LICENCE_CLASS_FULLNAME, context);
+        } catch (Exception e) {
+            doc = new XWikiDocument();
+            doc.setSpace("XWiki");
+            doc.setName(LICENCE_CLASS_NAME);
+            needsUpdate = true;
+        }
+
+        BaseClass bclass = doc.getxWikiClass();
+        bclass.setName(LICENCE_CLASS_FULLNAME);
+        needsUpdate |= bclass.addBooleanField(LICENCE_ITEM_CURIKI_COMPATIBLE, "compatible", "radio");
+        needsUpdate |= bclass.addTextField(LICENCE_ITEM_NAME, "name", 50);
+
+        String content = doc.getContent();
+        if ((content==null)||(content.equals(""))) {
+            needsUpdate = true;
+            doc.setContent("1 " + LICENCE_CLASS_FULLNAME);
+        }
+
+        if (needsUpdate)
+            xwiki.saveDocument(doc, context);
+    }
+
+
+}


Property changes on: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/LicenceManagerPlugin.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/LicenceManagerPluginAPI.java
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/LicenceManagerPluginAPI.java	2006-10-20 01:36:21 UTC (rev 1413)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/LicenceManagerPluginAPI.java	2006-10-20 01:36:58 UTC (rev 1414)
@@ -0,0 +1,34 @@
+package org.gelc.xwiki.plugins.licence;
+
+import com.xpn.xwiki.XWikiContext;
+import com.xpn.xwiki.XWikiException;
+import com.xpn.xwiki.api.Api;
+
+import java.util.List;
+
+
+public class LicenceManagerPluginAPI  extends Api {
+        LicenceManagerPlugin plugin;
+
+    public LicenceManagerPluginAPI(LicenceManagerPlugin plugin, XWikiContext context) {
+        super(context);
+        this.plugin = plugin;
+    }
+
+    public String addLicence(String name, boolean compatible) throws XWikiException {
+        return plugin.addLicence(name, compatible, context);
+    }
+
+    public List getNotCompatibleLicences() throws XWikiException{
+        return plugin.getNotCompatibleLicences(context);
+    }
+
+    public List getCompatibleLicences() throws XWikiException{
+        return plugin.getCompatibleLicences(context);    
+    }
+
+    public String getLicenceName(String name) throws XWikiException {
+        return plugin.getLicenceName(name, context);
+    }
+
+}


Property changes on: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/main/java/org/gelc/xwiki/plugins/licence/LicenceManagerPluginAPI.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/test/resources/metadata.csv
===================================================================
--- xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/test/resources/metadata.csv	2006-10-20 01:36:21 UTC (rev 1413)
+++ xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/test/resources/metadata.csv	2006-10-20 01:36:58 UTC (rev 1414)
@@ -0,0 +1,38 @@
+No,Category,Extexsion,MIME Type,Notes: Technical Metadata,Icon,All Files get Size in Bytes
+1,picture(photo),ai,application/postscript,,Images
+2,picture(photo),gif,image/gif,Height x Width,GIF
+3,picture(photo),jpg,image/jpeg,Height x Width,JPG
+4,picture(photo),tif,image/tif,Height x Width,Image
+5,picture(photo),bmp,image/x-ms-bmp,Height x Width,BMP
+6,picture(photo),jpe,image/jpeg,Height x Width,JPG
+7,picture(photo),psd,image/x-photoshop,,Image
+8,document,ppt,application/vnd.ms-powerpoint
+9,document,doc,application/msword,,Word
+10,document,hwp,application/unknown,Korean word processor,App
+11,document,pdf,application/pdf,,PDF
+12,document,xls,application/vnd.ms-excel,,Excel
+13,document,txt,text/plain,,Text
+14,document,xml,text/xml,,XML
+15,document,css,text/css
+16,document,rtf,text/rtf,,Word
+17,video,wmv,video/x-msvideo,Duration,MS Media
+18,video,asf,video/x-msvideo,Duration,MS Media
+19,video,avi,video/x-msvideo,Duration,MS Media
+20,video,mpg,video/mpeg,Duration and Bitrate,MPG
+21,video,mov,video/quicktime,Duration and Bitrate,QT,Dialup|Medium|Broadband
+22,module,dcr,application/x-director,,Rich Media File
+23,module,dir,application/x-director,,Rich Media File
+24,module,exe,application/exe,,Application,Need virus checking solution and need some way to capture the OS and requirements for the exe
+25,module,bin,application/octet-stream,,BIN
+26,module,lha,application/octet-stream,,Archive
+27,module,lzh,application/octet-stream,,Archive
+28,module,class,application/x-java-vm,,Java CLass
+29,web-site,url,text/html,,URL
+30,web-site,htm,text/html,,HTML
+31,web-site,php,application/x-php,,,Remove?
+32,audio,wav,audio/x-wav,Duration and Bitrate,WAVE
+33,audio,mp3,audio/mpeg,Duration and Bitrate,MP3
+34,animation,swf,application/x-shockwave-flash,,Flash
+35,etc(compression) files,zip,application/zip,Number of files inside?,ZIP
+36,etc(compression) files,gz,application/x-gzip,,Archive
+37,etc(compression) files,gtar,application/x-gtar,,Archive


Property changes on: xwiki-apps/gelc/gelcv1/trunk/gelcplugins/src/test/resources/metadata.csv
___________________________________________________________________
Name: svn:eol-style
   + native





More information about the Xwiki-notifications mailing list