01: /**
02: * LibreSource
03: * Copyright (C) 2004-2008 Artenum SARL / INRIA
04: * http://www.libresource.org - contact@artenum.com
05: *
06: * This file is part of the LibreSource software,
07: * which can be used and distributed under license conditions.
08: * The license conditions are provided in the LICENSE.TXT file
09: * at the root path of the packaging that enclose this file.
10: * More information can be found at
11: * - http://dev.libresource.org/home/license
12: *
13: * Initial authors :
14: *
15: * Guillaume Bort / INRIA
16: * Francois Charoy / Universite Nancy 2
17: * Julien Forest / Artenum
18: * Claude Godart / Universite Henry Poincare
19: * Florent Jouille / INRIA
20: * Sebastien Jourdain / INRIA / Artenum
21: * Yves Lerumeur / Artenum
22: * Pascal Molli / Universite Henry Poincare
23: * Gerald Oster / INRIA
24: * Mariarosa Penzi / Artenum
25: * Gerard Sookahet / Artenum
26: * Raphael Tani / INRIA
27: *
28: * Contributors :
29: *
30: * Stephane Bagnier / Artenum
31: * Amadou Dia / Artenum-IUP Blois
32: * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33: */package org.libresource.kernel;
34:
35: import java.io.File;
36:
37: import java.net.URI;
38: import java.net.URISyntaxException;
39:
40: public class UriManager {
41: static public int getDepth(String uri) throws URISyntaxException {
42: return getDepth(new URI(uri));
43: }
44:
45: static public int getDepth(URI uri) {
46: int depth = 0;
47: String[] pathPart = uri.normalize().getPath().split("/");
48:
49: for (int i = 0; i < pathPart.length; i++) {
50: if (pathPart[i].trim().length() > 0) {
51: depth++;
52: }
53: }
54:
55: return depth;
56: }
57:
58: static public String getParentPath(String uri)
59: throws URISyntaxException {
60: return getParentPath(new URI(uri));
61: }
62:
63: static public String getParentPath(URI uri) {
64: return new File(uri.normalize().getPath()).getParent()
65: .replaceAll("\\\\", "/");
66: }
67:
68: static public String getPathName(String uri)
69: throws URISyntaxException {
70: return getPathName(new URI(uri));
71: }
72:
73: static public String getPathName(URI uri) {
74: return new File(uri.normalize().getPath()).getName();
75: }
76: }
|