Loading src/main/java/it/inaf/oats/vospace/datamodel/NodeUtils.java +11 −3 Original line number Diff line number Diff line Loading @@ -5,6 +5,8 @@ */ package it.inaf.oats.vospace.datamodel; import java.net.URI; import java.net.URISyntaxException; import net.ivoa.xml.vospace.v2.Node; import java.net.URLDecoder; import java.net.URLEncoder; Loading Loading @@ -245,10 +247,16 @@ public class NodeUtils { } public static String getVosPath(Node myNode) { return getVosPath(myNode.getUri()); } String nodeUri = myNode.getUri(); return nodeUri.replaceAll("vos://[^/]+", ""); public static String getVosPath(String nodeUri) { try { URI uri = new URI(nodeUri); return uri.getPath(); } catch (URISyntaxException ex) { throw new RuntimeException(ex); } } } src/test/java/it/inaf/oats/vospace/datamodel/NodeUtilsTest.java +9 −0 Original line number Diff line number Diff line Loading @@ -271,6 +271,15 @@ public class NodeUtilsTest { assertEquals("/mynode/child1/child2", NodeUtils.getVosPath(node)); } @Test public void testGetVosPathSpecialChars() { Node node = new DataNode(); node.setUri("vos://example.com!vospace/mynode/(%20+%20)/child2"); assertEquals("/mynode/( + )/child2", NodeUtils.getVosPath(node)); } @Test public void testGetParentPath() { assertEquals("/node1/node2", NodeUtils.getParentPath("/node1/node2/node2")); Loading Loading
src/main/java/it/inaf/oats/vospace/datamodel/NodeUtils.java +11 −3 Original line number Diff line number Diff line Loading @@ -5,6 +5,8 @@ */ package it.inaf.oats.vospace.datamodel; import java.net.URI; import java.net.URISyntaxException; import net.ivoa.xml.vospace.v2.Node; import java.net.URLDecoder; import java.net.URLEncoder; Loading Loading @@ -245,10 +247,16 @@ public class NodeUtils { } public static String getVosPath(Node myNode) { return getVosPath(myNode.getUri()); } String nodeUri = myNode.getUri(); return nodeUri.replaceAll("vos://[^/]+", ""); public static String getVosPath(String nodeUri) { try { URI uri = new URI(nodeUri); return uri.getPath(); } catch (URISyntaxException ex) { throw new RuntimeException(ex); } } }
src/test/java/it/inaf/oats/vospace/datamodel/NodeUtilsTest.java +9 −0 Original line number Diff line number Diff line Loading @@ -271,6 +271,15 @@ public class NodeUtilsTest { assertEquals("/mynode/child1/child2", NodeUtils.getVosPath(node)); } @Test public void testGetVosPathSpecialChars() { Node node = new DataNode(); node.setUri("vos://example.com!vospace/mynode/(%20+%20)/child2"); assertEquals("/mynode/( + )/child2", NodeUtils.getVosPath(node)); } @Test public void testGetParentPath() { assertEquals("/node1/node2", NodeUtils.getParentPath("/node1/node2/node2")); Loading