You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2007/11/06 09:13:42 UTC

svn commit: r592325 - in /incubator/sling/trunk/content/src/main/java/org/apache/sling/content: ContentManager.java jcr/internal/mapping/ContentManagerImpl.java

Author: fmeschbe
Date: Tue Nov  6 00:13:41 2007
New Revision: 592325

URL: http://svn.apache.org/viewvc?rev=592325&view=rev
Log:
Better API for Content creation

Modified:
    incubator/sling/trunk/content/src/main/java/org/apache/sling/content/ContentManager.java
    incubator/sling/trunk/content/src/main/java/org/apache/sling/content/jcr/internal/mapping/ContentManagerImpl.java

Modified: incubator/sling/trunk/content/src/main/java/org/apache/sling/content/ContentManager.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/content/src/main/java/org/apache/sling/content/ContentManager.java?rev=592325&r1=592324&r2=592325&view=diff
==============================================================================
--- incubator/sling/trunk/content/src/main/java/org/apache/sling/content/ContentManager.java (original)
+++ incubator/sling/trunk/content/src/main/java/org/apache/sling/content/ContentManager.java Tue Nov  6 00:13:41 2007
@@ -18,8 +18,6 @@
  */
 package org.apache.sling.content;
 
-import java.util.Map;
-
 import org.apache.sling.component.Content;
 
 /**
@@ -46,7 +44,8 @@
 
     // Content related operations
 
-    Content create(String path, Class objectClass, Map properties);
+    // store the content object at the location set in the path field
+    void create(Content content);
 
     /**
      * Returns a <code>Content</code> object loaded from the repository node

Modified: incubator/sling/trunk/content/src/main/java/org/apache/sling/content/jcr/internal/mapping/ContentManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/content/src/main/java/org/apache/sling/content/jcr/internal/mapping/ContentManagerImpl.java?rev=592325&r1=592324&r2=592325&view=diff
==============================================================================
--- incubator/sling/trunk/content/src/main/java/org/apache/sling/content/jcr/internal/mapping/ContentManagerImpl.java (original)
+++ incubator/sling/trunk/content/src/main/java/org/apache/sling/content/jcr/internal/mapping/ContentManagerImpl.java Tue Nov  6 00:13:41 2007
@@ -18,9 +18,7 @@
  */
 package org.apache.sling.content.jcr.internal.mapping;
 
-import java.security.AccessControlException;
 import java.util.Iterator;
-import java.util.Map;
 import java.util.NoSuchElementException;
 
 import javax.jcr.Node;
@@ -159,38 +157,16 @@
     }
 
     /**
-     * @see org.apache.sling.core.content.ContentManager#create(java.lang.String, java.lang.Class, java.util.Map)
+     * @see org.apache.sling.content.ContentManager#create(org.apache.sling.component.Content)
      */
-    public Content create(String path, Class objectClass, Map properties) {
-        this.checkPermission(path, ACTION_CREATE);
-
-        try {
-            // create content
-            Content content = (Content) objectClass.newInstance();
-
-            // set the path on the content object
-            this.setPath(content, path);
+    public void create(Content content) {
+        String path = content.getPath();
 
-            // set initial properties
-            if (properties != null) {
-                for (Iterator pi = properties.entrySet().iterator(); pi.hasNext();) {
-                    Map.Entry prop = (Map.Entry) pi.next();
-                    if (prop.getKey() instanceof String) {
-                        ReflectionUtils.setNestedProperty(content,
-                            (String) prop.getKey(), prop.getValue());
-                    }
-                }
-            }
+        this.checkPermission(path, ACTION_CREATE);
 
-            this.insert(content);
-            this.conditionalSave();
-            return content;
-        } catch (IllegalAccessException iae) {
-        } catch (InstantiationException ie) {
-        } catch (ExceptionInInitializerError eiie) {
-            // TODO: handle
-        }
-        return null;
+        // TODO handle exceptions correctly
+        this.insert(content);
+        this.conditionalSave();
     }
 
     /**