weblib: urls -> class
[fanfix.git] / src / be / nikiroo / fanfix / library / WebLibraryUrls.java
diff --git a/src/be/nikiroo/fanfix/library/WebLibraryUrls.java b/src/be/nikiroo/fanfix/library/WebLibraryUrls.java
new file mode 100644 (file)
index 0000000..6a3b153
--- /dev/null
@@ -0,0 +1,67 @@
+package be.nikiroo.fanfix.library;
+
+public class WebLibraryUrls {
+       static public final String INDEX_URL = "/";
+
+       static public final String VERSION_URL = "/version";
+
+       static public final String LOGOUT_URL = "/logout";
+
+       static private final String VIEWER_URL_BASE = "/view/story/";
+       static private final String VIEWER_URL = VIEWER_URL_BASE
+                       + "{luid}/{chap}/{para}";
+
+       static private final String STORY_URL_BASE = "/story/";
+       static private final String STORY_URL = STORY_URL_BASE
+                       + "{luid}/{chap}/{para}";
+       static private final String STORY_URL_COVER = STORY_URL_BASE
+                       + "{luid}/cover";
+       static private final String STORY_URL_JSON = STORY_URL_BASE + "{luid}/json";
+
+       static private final String LIST_URL_BASE = "/list/";
+
+       static public final String LIST_URL_METADATA = LIST_URL_BASE + "luids";
+
+       static public String getViewUrl(String luid, Integer chap, Integer para) {
+               return VIEWER_URL //
+                               .replace("{luid}", luid) //
+                               .replace("/{chap}", chap == null ? "" : "/" + chap) //
+                               .replace("/{para}",
+                                               (chap == null || para == null) ? "" : "/" + para);
+       }
+
+       static public String getStoryUrl(String luid, int chap, Integer para) {
+               return STORY_URL //
+                               .replace("{luid}", luid) //
+                               .replace("{chap}", Integer.toString(chap)) //
+                               .replace("{para}", para == null ? "" : Integer.toString(para));
+       }
+
+       static public String getStoryUrlCover(String luid) {
+               return STORY_URL_COVER //
+                               .replace("{luid}", luid);
+       }
+
+       static public String getStoryUrlJson(String luid) {
+               return STORY_URL_JSON //
+                               .replace("{luid}", luid);
+       }
+
+       static public boolean isSupportedUrl(String url) {
+               return INDEX_URL.equals(url) || VERSION_URL.equals(url)
+                               || LOGOUT_URL.equals(url) || isViewUrl(url) || isStoryUrl(url)
+                               || isListUrl(url);
+       }
+
+       static public boolean isViewUrl(String url) {
+               return url != null && url.startsWith(VIEWER_URL_BASE);
+       }
+
+       static public boolean isStoryUrl(String url) {
+               return url != null && url.startsWith(STORY_URL_BASE);
+       }
+
+       static public boolean isListUrl(String url) {
+               return url != null && url.startsWith(LIST_URL_BASE);
+       }
+}