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 2008/02/08 07:52:01 UTC

svn commit: r619782 - /incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/loader/Loader.java

Author: fmeschbe
Date: Thu Feb  7 22:51:59 2008
New Revision: 619782

URL: http://svn.apache.org/viewvc?rev=619782&view=rev
Log:
SLING-238 Add method to cut off any (optional) and well-known extension from a name

Modified:
    incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/loader/Loader.java

Modified: incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/loader/Loader.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/loader/Loader.java?rev=619782&r1=619781&r2=619782&view=diff
==============================================================================
--- incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/loader/Loader.java (original)
+++ incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/loader/Loader.java Thu Feb  7 22:51:59 2008
@@ -307,7 +307,7 @@
 
             if (clNode.getName() == null) {
                 // set the name without the [last] extension (xml or json)
-                clNode.setName(name.substring(0, name.lastIndexOf('.')));
+                clNode.setName(toPlainName(name));
             }
 
             return this.createNode(parent, clNode);
@@ -588,9 +588,7 @@
             session.importXML(parent.getPath(), ins, IMPORT_UUID_CREATE_NEW);
 
             // additionally check whether the expected child node exists
-            if (name.toLowerCase().endsWith(EXT_JCR_XML)) {
-                name = name.substring(0, name.length()-EXT_JCR_XML.length());
-            }
+            name = toPlainName(name);
             return (parent.hasNode(name)) ? parent.getNode(name) : null;
 
         } catch (InvalidSerializedDataException isde) {
@@ -620,5 +618,22 @@
             }
         }
 
+    }
+    
+    private String toPlainName(String name) {
+        int diff;
+        if (name.endsWith(EXT_JCR_XML)) {
+            diff = EXT_JCR_XML.length();
+        } else if (name.endsWith(EXT_XML)) {
+            diff = EXT_XML.length();
+        } else if (name.endsWith(EXT_JSON)) {
+            diff = EXT_JSON.length();
+        } else if (name.endsWith(EXT_XJSON)) {
+            diff = EXT_XJSON.length();
+        } else {
+            return name;
+        }
+        
+        return name.substring(0, name.length() - diff);
     }
 }