Add Site Map to studio/mvc.
[gpl/argeo-suite.git] / systems / org.argeo.suite.studio / src / org / argeo / suite / studio / parts / SiteElem.java
diff --git a/systems/org.argeo.suite.studio/src/org/argeo/suite/studio/parts/SiteElem.java b/systems/org.argeo.suite.studio/src/org/argeo/suite/studio/parts/SiteElem.java
new file mode 100644 (file)
index 0000000..4931eab
--- /dev/null
@@ -0,0 +1,37 @@
+package org.argeo.suite.studio.parts;
+
+import org.argeo.eclipse.ui.TreeParent;
+
+/** Base class for site map elements. */
+abstract class SiteElem extends TreeParent {
+
+       private final String path;
+
+       public SiteElem(String path) {
+               super(extractLastSegment(path));
+               this.path = path;
+       }
+
+       public String getPath() {
+               return path;
+       }
+
+       static String extractLastSegment(String path) {
+               if (path == null || path.equals(""))
+                       throw new IllegalArgumentException("Path should not be null or empty.");
+               if (path.equals("/"))
+                       return path;
+               String[] segments = path.split("/");
+               for (int i = segments.length - 1; i >= 0; i--) {
+                       if (!segments[i].equals("") && !segments[i].equals("*"))
+                               return segments[i];
+               }
+               return "/";
+       }
+
+       @Override
+       public String toString() {
+               return path;
+       }
+
+}