You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by ka...@apache.org on 2013/08/23 11:21:11 UTC
git commit: METAMODEL-4: Ensured that getParentPath(...) would return
properly in case of root file paths ("/foo" or "c:\\foo").
Updated Branches:
refs/heads/master 500610830 -> 8fe2df23b
METAMODEL-4: Ensured that getParentPath(...) would return properly in
case of root file paths ("/foo" or "c:\\foo").
Project: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/commit/8fe2df23
Tree: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/tree/8fe2df23
Diff: http://git-wip-us.apache.org/repos/asf/incubator-metamodel/diff/8fe2df23
Branch: refs/heads/master
Commit: 8fe2df23bb490330c9140a3008609681f1ba8383
Parents: 5006108
Author: Kasper Sørensen <i....@gmail.com>
Authored: Fri Aug 23 11:21:03 2013 +0200
Committer: Kasper Sørensen <i....@gmail.com>
Committed: Fri Aug 23 11:21:03 2013 +0200
----------------------------------------------------------------------
.../java/org/apache/metamodel/util/ResourceUtils.java | 14 ++++++++++----
.../org/apache/metamodel/util/ResourceUtilsTest.java | 13 ++++++++++++-
2 files changed, 22 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/8fe2df23/core/src/main/java/org/apache/metamodel/util/ResourceUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/metamodel/util/ResourceUtils.java b/core/src/main/java/org/apache/metamodel/util/ResourceUtils.java
index f39b2c8..eed9dd9 100644
--- a/core/src/main/java/org/apache/metamodel/util/ResourceUtils.java
+++ b/core/src/main/java/org/apache/metamodel/util/ResourceUtils.java
@@ -26,7 +26,7 @@ public class ResourceUtils {
/**
* Gets the parent name of a resource. For example, if the resource's
* qualified path is /foo/bar/baz, this method will return "bar".
- *
+ *
* @param resource
* @return
*/
@@ -36,7 +36,7 @@ public class ResourceUtils {
assert qualifiedPath.endsWith(name);
- int indexOfChild = qualifiedPath.length() - name.length() - 1;
+ int indexOfChild = qualifiedPath.length() - name.length();
if (indexOfChild <= 0) {
return name;
@@ -44,6 +44,12 @@ public class ResourceUtils {
String parentQualifiedPath = qualifiedPath.substring(0, indexOfChild);
+ if ("/".equals(parentQualifiedPath)) {
+ return parentQualifiedPath;
+ }
+
+ parentQualifiedPath = parentQualifiedPath.substring(0, parentQualifiedPath.length() - 1);
+
int lastIndexOfSlash = parentQualifiedPath.lastIndexOf('/');
int lastIndexOfBackSlash = parentQualifiedPath.lastIndexOf('\\');
int lastIndexToUse = Math.max(lastIndexOfSlash, lastIndexOfBackSlash);
@@ -53,9 +59,9 @@ public class ResourceUtils {
}
// add one because of the slash/backslash itself
- lastIndexToUse++;
+ // lastIndexToUse++;
- String parentName = parentQualifiedPath.substring(lastIndexToUse);
+ String parentName = parentQualifiedPath.substring(lastIndexToUse + 1);
return parentName;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-metamodel/blob/8fe2df23/core/src/test/java/org/apache/metamodel/util/ResourceUtilsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/metamodel/util/ResourceUtilsTest.java b/core/src/test/java/org/apache/metamodel/util/ResourceUtilsTest.java
index c3a24aa..9f7e094 100644
--- a/core/src/test/java/org/apache/metamodel/util/ResourceUtilsTest.java
+++ b/core/src/test/java/org/apache/metamodel/util/ResourceUtilsTest.java
@@ -33,8 +33,19 @@ public class ResourceUtilsTest extends TestCase {
assertEquals("resources", ResourceUtils.getParentName(res));
- assertEquals("", ResourceUtils.getParentName(new InMemoryResource("")));
assertEquals("foo", ResourceUtils.getParentName(new InMemoryResource("foo")));
assertEquals("bar", ResourceUtils.getParentName(new InMemoryResource("foo/bar\\baz")));
}
+
+ public void testGetParentNameRootFile() throws Exception {
+ assertEquals("c:", ResourceUtils.getParentName(new InMemoryResource("c:\\foo.txt")));
+ assertEquals("/", ResourceUtils.getParentName(new InMemoryResource("/foo.txt")));
+ }
+
+ public void testGetParentNameOddPaths() throws Exception {
+ assertEquals("", ResourceUtils.getParentName(new InMemoryResource("")));
+ assertEquals("", ResourceUtils.getParentName(new InMemoryResource("/")));
+ assertEquals("", ResourceUtils.getParentName(new InMemoryResource("//")));
+ assertEquals("", ResourceUtils.getParentName(new InMemoryResource("////")));
+ }
}