You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2012/07/10 16:56:20 UTC

svn commit: r1359714 - in /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype: NodeTypeManagerDelegate.java NodeTypeManagerImpl.java PropertyDefinitionDelegate.java PropertyDefinitionImpl.java

Author: reschke
Date: Tue Jul 10 14:56:20 2012
New Revision: 1359714

URL: http://svn.apache.org/viewvc?rev=1359714&view=rev
Log:
OAK-66: untangle CoreValueFactory from NodeTypeManagerDelegate

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerDelegate.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionDelegate.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionImpl.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerDelegate.java?rev=1359714&r1=1359713&r2=1359714&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerDelegate.java Tue Jul 10 14:56:20 2012
@@ -34,12 +34,9 @@ import org.apache.jackrabbit.commons.cnd
 import org.apache.jackrabbit.commons.cnd.DefinitionBuilderFactory.AbstractNodeTypeDefinitionBuilder;
 import org.apache.jackrabbit.commons.cnd.DefinitionBuilderFactory.AbstractPropertyDefinitionBuilder;
 import org.apache.jackrabbit.commons.cnd.ParseException;
-import org.apache.jackrabbit.oak.api.CoreValue;
-import org.apache.jackrabbit.oak.api.CoreValueFactory;
 
 public class NodeTypeManagerDelegate {
 
-    private final CoreValueFactory cvf;
     private final List<NodeTypeDelegate> typeDelegates;
 
     private static final Map<String, String> nsdefaults;
@@ -53,9 +50,7 @@ public class NodeTypeManagerDelegate {
         nsdefaults = Collections.unmodifiableMap(tmp);
     }
 
-    public NodeTypeManagerDelegate(CoreValueFactory cvf) throws RepositoryException {
-        this.cvf = cvf;
-
+    public NodeTypeManagerDelegate() throws RepositoryException {
         try {
             InputStream stream = NodeTypeManagerImpl.class.getResourceAsStream("builtin_nodetypes.cnd");
             Reader reader = new InputStreamReader(stream, "UTF-8");
@@ -245,17 +240,10 @@ public class NodeTypeManagerDelegate {
 
         public PropertyDefinitionDelegate getPropertyDefinitionDelegate() throws RepositoryException {
 
-            CoreValue[] defaultCoreValues = new CoreValue[defaultValues.size()];
-
-            for (int i = 0; i < defaultCoreValues.length; i++) {
-                // TODO: need name mapping?
-                defaultCoreValues[i] = cvf.createValue(defaultValues.get(i), requiredType);
-            }
-
             name = ndtb.convertNameToOak(name);
 
             return new PropertyDefinitionDelegate(name, autocreate, isMandatory, onParent, isProtected, requiredType, isMultiple,
-                    defaultCoreValues);
+                    defaultValues);
         }
 
         @Override

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java?rev=1359714&r1=1359713&r2=1359714&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/NodeTypeManagerImpl.java Tue Jul 10 14:56:20 2012
@@ -49,7 +49,7 @@ public class NodeTypeManagerImpl impleme
     public NodeTypeManagerImpl(SessionDelegate sd) throws RepositoryException {
         this.vf = sd.getValueFactory();
         this.mapper = sd.getNamePathMapper();
-        this.ntmd = new NodeTypeManagerDelegate(sd.getValueFactory().getCoreValueFactory());
+        this.ntmd = new NodeTypeManagerDelegate();
     }
 
     private void init() {

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionDelegate.java?rev=1359714&r1=1359713&r2=1359714&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionDelegate.java Tue Jul 10 14:56:20 2012
@@ -16,24 +16,24 @@
  */
 package org.apache.jackrabbit.oak.jcr.nodetype;
 
-import org.apache.jackrabbit.oak.api.CoreValue;
+import java.util.List;
 
 public class PropertyDefinitionDelegate extends ItemDefinitionDelegate {
 
     private final int requiredType;
     private final boolean multiple;
-    private final CoreValue[] defaultCoreValues;
+    private final List<String> defaultValues;
 
     protected PropertyDefinitionDelegate(String name, boolean autoCreated, boolean mandatory, int onParentVersion,
-            boolean isProtected, int requiredType, boolean multiple, CoreValue[] defaultCoreValues) {
+            boolean isProtected, int requiredType, boolean multiple, List<String> defaultValues) {
         super(name, autoCreated, mandatory, onParentVersion, isProtected);
         this.requiredType = requiredType;
         this.multiple = multiple;
-        this.defaultCoreValues = defaultCoreValues;
+        this.defaultValues = defaultValues;
     }
 
-    public CoreValue[] getDefaultCoreValues() {
-        return defaultCoreValues;
+    public List<String> getDefaultValues() {
+        return defaultValues;
     }
 
     public int getRequiredType() {

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionImpl.java?rev=1359714&r1=1359713&r2=1359714&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/nodetype/PropertyDefinitionImpl.java Tue Jul 10 14:56:20 2012
@@ -16,13 +16,17 @@
  */
 package org.apache.jackrabbit.oak.jcr.nodetype;
 
+import java.util.List;
+
 import javax.jcr.Value;
+import javax.jcr.ValueFormatException;
 import javax.jcr.nodetype.NodeType;
 import javax.jcr.nodetype.PropertyDefinition;
 
-import org.apache.jackrabbit.oak.api.CoreValue;
 import org.apache.jackrabbit.oak.jcr.value.ValueFactoryImpl;
 import org.apache.jackrabbit.oak.namepath.NameMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 class PropertyDefinitionImpl extends ItemDefinitionImpl implements PropertyDefinition {
 
@@ -30,6 +34,8 @@ class PropertyDefinitionImpl extends Ite
 
     private final ValueFactoryImpl vfac;
 
+    private static final Logger log = LoggerFactory.getLogger(PropertyDefinitionImpl.class);
+
     public PropertyDefinitionImpl(NodeType type, NameMapper mapper, ValueFactoryImpl vfac, PropertyDefinitionDelegate delegate) {
         super(type, mapper, delegate);
         this.vfac = vfac;
@@ -48,10 +54,15 @@ class PropertyDefinitionImpl extends Ite
 
     @Override
     public Value[] getDefaultValues() {
-        CoreValue[] defaults = dlg.getDefaultCoreValues();
-        Value[] result = new Value[defaults.length];
-        for (int i = 0; i < defaults.length; i++) {
-            result[i] = vfac.createValue(defaults[i]);
+        List<String> defaults = dlg.getDefaultValues();
+        Value[] result = new Value[defaults.size()];
+        for (int i = 0; i < defaults.size(); i++) {
+            try {
+                result[i] = vfac.createValue(defaults.get(i), dlg.getRequiredType());
+            } catch (ValueFormatException e) {
+                log.error("Converting value " + defaults.get(i), e);
+                return null;
+            }
         }
         return result;
     }