src/java/de/uapcore/lightpit/Functions.java

changeset 11
737ab27e37b3
parent 10
89e3e6e28b69
child 13
f4608ad6c947
--- a/src/java/de/uapcore/lightpit/Functions.java	Sat Dec 16 20:19:28 2017 +0100
+++ b/src/java/de/uapcore/lightpit/Functions.java	Sun Dec 17 01:45:28 2017 +0100
@@ -28,6 +28,8 @@
  */
 package de.uapcore.lightpit;
 
+import java.util.Optional;
+import javax.servlet.http.HttpServletRequest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -42,12 +44,27 @@
         return Constants.JSP_PATH_PREFIX + filename;
     }
     
-    public static String fullyQualifiedName(String base, String name) {
+    public static String fqn(String base, String name) {
         return base+"."+name;
     }
     
-    public static String fullyQualifiedName(Class clazz, String name) {
-        return fullyQualifiedName(clazz.getName(), name);
+    public static String fqn(Class clazz, String name) {
+        return fqn(clazz.getName(), name);
+    }
+    
+    public static String fullPath(LightPITModule module, RequestMapping mapping) {
+        StringBuilder sb = new StringBuilder();
+        sb.append(module.modulePath());
+        sb.append('/');
+        if (!mapping.requestPath().isEmpty()) {
+            sb.append(mapping.requestPath().isEmpty());
+            sb.append('/');
+        }
+        return sb.toString();
+    }
+    
+    public static String fullPath(HttpServletRequest req) {
+        return req.getServletPath() + Optional.ofNullable(req.getPathInfo()).orElse("");
     }
     
     /**
@@ -60,15 +77,15 @@
      * @return the module path
      */
     public static String modulePathOf(Class<? extends AbstractLightPITServlet> clazz) {
-        LightPITModule moduleInfo = clazz.getAnnotation(LightPITModule.class);
-        if (moduleInfo == null) {
+        Optional<LightPITModule> moduleInfo = Optional.ofNullable(clazz.getAnnotation(LightPITModule.class));
+        if (moduleInfo.isPresent()) {
+            return moduleInfo.get().modulePath();
+        } else {
             LOG.warn(
                     "{} is a LightPIT Servlet but is missing the module annotation.",
                     clazz.getName()
             );
             return "/error/404.html";
-        } else {
-            return moduleInfo.modulePath();
         }
     }
     

mercurial