You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by jw...@apache.org on 2005/05/10 16:18:57 UTC

svn commit: r169476 - in /lenya/trunk/src/java/org/apache/lenya/cms: metadata/MetaDataImpl.java metadata/MetaDataManager.java publication/DefaultResourcesManager.java site/usecases/Create.java

Author: jwkaltz
Date: Tue May 10 07:18:56 2005
New Revision: 169476

URL: http://svn.apache.org/viewcvs?rev=169476&view=rev
Log:
refactoring of meta-data creation into MetaDataManager

Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataImpl.java
    lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataManager.java
    lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Create.java

Modified: lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataImpl.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataImpl.java?rev=169476&r1=169475&r2=169476&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataImpl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataImpl.java Tue May 10 07:18:56 2005
@@ -68,7 +68,9 @@
     private static final String META_ROOT = "meta";
 
     /**
-     * Creates a new instance of metadata
+     * Creates a new instance of metadata, reading any existing
+     * values from the source URI.
+     *
      * @param sourceUri The source URI.
      * @param manager The service manager.
      * @param _logger A logger

Modified: lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataManager.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataManager.java?rev=169476&r1=169475&r2=169476&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataManager.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/metadata/MetaDataManager.java Tue May 10 07:18:56 2005
@@ -16,6 +16,8 @@
  */
 package org.apache.lenya.cms.metadata;
 
+import java.util.Iterator;
+import java.util.Map;
 import org.apache.avalon.framework.container.ContainerUtil;
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
 import org.apache.avalon.framework.logger.Logger;
@@ -80,6 +82,28 @@
             customMetaData = new CustomMetaData(this.sourceUri, this.serviceManager, getLogger());
         }
         return customMetaData;
+    }
+
+    /**
+     * Set values of meta-data managed by this instance.
+     * @throws DocumentException if meta-data could not be written
+     */
+    public void setMetaData(Map dcMetaData, Map lenyaMetaData, Map customMetaData) throws DocumentException {
+        if (dcMetaData != null)
+            setMetaData(getDublinCoreMetaData(), dcMetaData);
+        if (lenyaMetaData != null)
+            setMetaData(getLenyaMetaData(), lenyaMetaData);
+        if (customMetaData != null)
+            setMetaData(getCustomMetaData(), customMetaData);
+    }
+
+    private void setMetaData(MetaData _metaData, Map _metaDataMap) throws DocumentException {
+        Iterator iter = _metaDataMap.entrySet().iterator();
+        while (iter.hasNext()) {
+            Map.Entry entry = (Map.Entry) iter.next();
+            _metaData.setValue((String) entry.getKey(), (String) entry.getValue());
+        }
+        _metaData.save();
     }
 
     /**

Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java?rev=169476&r1=169475&r2=169476&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/DefaultResourcesManager.java Tue May 10 07:18:56 2005
@@ -23,6 +23,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Locale;
 import java.util.Map;
@@ -130,19 +131,16 @@
             String mimeType = part.getMimeType();
             int fileSize = part.getSize();
 
-            metadata.put("format", mimeType);
-            metadata.put("extent", Integer.toString(fileSize));
-
-            /* if (type.equals("resource")) { */
-
-            // create the meta description for the resource.
-            createMetaData(resource, metadata);
 
             /*
-             * } // must be a content upload then else { resourceFile = new
-             * File(document.getFile().getParent(), fileName); getLogger().debug("resourceFile: " +
-             * resourceFile); }
+             * complement and create the meta description for the resource.
              */
+            metadata.put("format", mimeType);
+            metadata.put("extent", Integer.toString(fileSize));
+            Map lenyaMetaData = new HashMap(1);
+            lenyaMetaData.put(LenyaMetaData.ELEMENT_CONTENT_TYPE, "asset");
+            resource.getMetaDataManager().setMetaData(metadata, lenyaMetaData, null);
+
             saveResource(resource, part);
         } catch (final DocumentException e) {
             getLogger().error("Document exception " + e.toString());
@@ -209,34 +207,6 @@
         }
     }
 
-    /**
-     * Create the meta data file given the dublin core parameters.
-     * @param resource the resource
-     * @param metadata a <code>Map</code> containing the dublin core values
-     * @throws DocumentException if an error occurs
-     */
-    protected void createMetaData(Resource resource, Map metadata) throws DocumentException {
-
-        if (getLogger().isDebugEnabled())
-            getLogger().debug("DefaultResourcesManager::createMetaData() called");
-
-        // Write Dublin Core meta-data
-        MetaData meta = resource.getMetaDataManager().getDublinCoreMetaData();
-        Iterator iter = metadata.entrySet().iterator();
-        while (iter.hasNext()) {
-            Map.Entry entry = (Map.Entry) iter.next();
-            meta.setValue((String) entry.getKey(), (String) entry.getValue());
-        }
-        meta.save();
-
-        // Now write Lenya internal metadata
-        MetaData lenyaMetaData = resource.getMetaDataManager().getLenyaMetaData();
-        lenyaMetaData.setValue(LenyaMetaData.ELEMENT_CONTENT_TYPE, "asset");
-        lenyaMetaData.save();
-
-        if (getLogger().isDebugEnabled())
-            getLogger().debug("DefaultResourcesManager::createMetaData() done.");
-    }
 
     /**
      * @see org.apache.lenya.cms.publication.ResourcesManager#getResources(org.apache.lenya.cms.publication.Document)

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Create.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Create.java?rev=169476&r1=169475&r2=169476&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Create.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/Create.java Tue May 10 07:18:56 2005
@@ -18,6 +18,7 @@
 
 import java.text.SimpleDateFormat;
 import java.util.GregorianCalendar;
+import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.avalon.framework.service.ServiceSelector;
@@ -158,26 +159,28 @@
      * @throws DocumentException if an error occurs.
      */
     protected void setMetaData(Document document) throws DocumentException {
-        MetaData metaData = document.getMetaDataManager().getDublinCoreMetaData();
-        metaData.setValue(DublinCore.ELEMENT_TITLE,
+
+        Map dcMetaData = new HashMap();
+        dcMetaData.put(DublinCore.ELEMENT_TITLE,
                 getParameterAsString(DublinCore.ELEMENT_TITLE));
-        metaData.setValue(DublinCore.ELEMENT_CREATOR,
+        dcMetaData.put(DublinCore.ELEMENT_CREATOR,
                 getParameterAsString(DublinCore.ELEMENT_CREATOR));
-        metaData.setValue(DublinCore.ELEMENT_PUBLISHER,
+        dcMetaData.put(DublinCore.ELEMENT_PUBLISHER,
                 getParameterAsString(DublinCore.ELEMENT_PUBLISHER));
-        metaData.setValue(DublinCore.ELEMENT_SUBJECT,
+        dcMetaData.put(DublinCore.ELEMENT_SUBJECT,
                 getParameterAsString(DublinCore.ELEMENT_SUBJECT));
-        metaData.setValue(DublinCore.ELEMENT_DATE, getParameterAsString(DublinCore.ELEMENT_DATE));
-        metaData.setValue(DublinCore.ELEMENT_RIGHTS,
+        dcMetaData.put(DublinCore.ELEMENT_DATE, 
+                getParameterAsString(DublinCore.ELEMENT_DATE));
+        dcMetaData.put(DublinCore.ELEMENT_RIGHTS,
                 getParameterAsString(DublinCore.ELEMENT_RIGHTS));
-        metaData.setValue(DublinCore.ELEMENT_LANGUAGE, getParameterAsString(LANGUAGE));
-        metaData.save();
+        dcMetaData.put(DublinCore.ELEMENT_LANGUAGE, 
+                getParameterAsString(LANGUAGE));
+
+        Map lenyaMetaData = new HashMap(2);
+        lenyaMetaData.put(LenyaMetaData.ELEMENT_RESOURCE_TYPE, getDocumentTypeName());
+        lenyaMetaData.put(LenyaMetaData.ELEMENT_CONTENT_TYPE, "xml");
 
-        // Now write Lenya internal metadata
-        MetaData lenyaMetaData = document.getMetaDataManager().getLenyaMetaData();
-        lenyaMetaData.setValue(LenyaMetaData.ELEMENT_RESOURCE_TYPE, getDocumentTypeName());
-        lenyaMetaData.setValue(LenyaMetaData.ELEMENT_CONTENT_TYPE, "xml");
-        lenyaMetaData.save();
+        document.getMetaDataManager().setMetaData(dcMetaData, lenyaMetaData, null);
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org