1.1 --- a/src/java/de/uapcore/lightpit/Functions.java Sun Apr 08 16:51:15 2018 +0200 1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 1.3 @@ -1,113 +0,0 @@ 1.4 -/* 1.5 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. 1.6 - * 1.7 - * Copyright 2018 Mike Becker. All rights reserved. 1.8 - * 1.9 - * Redistribution and use in source and binary forms, with or without 1.10 - * modification, are permitted provided that the following conditions are met: 1.11 - * 1.12 - * 1. Redistributions of source code must retain the above copyright 1.13 - * notice, this list of conditions and the following disclaimer. 1.14 - * 1.15 - * 2. Redistributions in binary form must reproduce the above copyright 1.16 - * notice, this list of conditions and the following disclaimer in the 1.17 - * documentation and/or other materials provided with the distribution. 1.18 - * 1.19 - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 1.20 - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1.21 - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1.22 - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 1.23 - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 1.24 - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 1.25 - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 1.26 - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 1.27 - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 1.28 - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1.29 - * POSSIBILITY OF SUCH DAMAGE. 1.30 - * 1.31 - */ 1.32 -package de.uapcore.lightpit; 1.33 - 1.34 -import java.util.Optional; 1.35 -import javax.servlet.ServletContext; 1.36 -import javax.servlet.http.HttpServletRequest; 1.37 -import org.slf4j.Logger; 1.38 -import org.slf4j.LoggerFactory; 1.39 - 1.40 -/** 1.41 - * Contains common static functions. 1.42 - */ 1.43 -public final class Functions { 1.44 - 1.45 - private static final Logger LOG = LoggerFactory.getLogger(Functions.class); 1.46 - 1.47 - public static Optional<String[]> availableLanguages(ServletContext ctx) { 1.48 - return Optional.ofNullable(ctx.getInitParameter(Constants.CTX_ATTR_LANGUAGES)).map((x) -> x.split("\\s*,\\s*")); 1.49 - } 1.50 - 1.51 - public static String enforceExt(String filename, String ext) { 1.52 - return filename.endsWith(ext) ? filename : filename + ext; 1.53 - } 1.54 - 1.55 - public static String jspPath(String filename) { 1.56 - return enforceExt(Constants.JSP_PATH_PREFIX + filename, ".jsp"); 1.57 - } 1.58 - 1.59 - public static String jspfPath(String filename) { 1.60 - return enforceExt(Constants.JSPF_PATH_PREFIX + filename, ".jspf"); 1.61 - } 1.62 - 1.63 - public static String dynFragmentPath(String filename) { 1.64 - return enforceExt(Constants.DYN_FRAGMENT_PATH_PREFIX + filename, ".jsp"); 1.65 - } 1.66 - 1.67 - public static String fqn(String base, String name) { 1.68 - return base+"."+name; 1.69 - } 1.70 - 1.71 - public static String fqn(Class clazz, String name) { 1.72 - return fqn(clazz.getName(), name); 1.73 - } 1.74 - 1.75 - public static String fullPath(LightPITModule module, RequestMapping mapping) { 1.76 - StringBuilder sb = new StringBuilder(); 1.77 - sb.append(module.modulePath()); 1.78 - sb.append('/'); 1.79 - if (!mapping.requestPath().isEmpty()) { 1.80 - sb.append(mapping.requestPath().isEmpty()); 1.81 - sb.append('/'); 1.82 - } 1.83 - return sb.toString(); 1.84 - } 1.85 - 1.86 - public static String fullPath(HttpServletRequest req) { 1.87 - return req.getServletPath() + Optional.ofNullable(req.getPathInfo()).orElse(""); 1.88 - } 1.89 - 1.90 - /** 1.91 - * Returns the module path of the given LightPIT Servlet module. 1.92 - * 1.93 - * If you specify a malformed LightPIT servlet, which does not have a module 1.94 - * annotation, the path to the <code>/error/404.html</code> page is returned. 1.95 - * 1.96 - * @param clazz the servlet class 1.97 - * @return the module path 1.98 - */ 1.99 - public static String modulePathOf(Class<? extends AbstractLightPITServlet> clazz) { 1.100 - Optional<LightPITModule> moduleInfo = Optional.ofNullable(clazz.getAnnotation(LightPITModule.class)); 1.101 - if (moduleInfo.isPresent()) { 1.102 - return moduleInfo.get().modulePath(); 1.103 - } else { 1.104 - LOG.warn( 1.105 - "{} is a LightPIT Servlet but is missing the module annotation.", 1.106 - clazz.getName() 1.107 - ); 1.108 - return "/error/404.html"; 1.109 - } 1.110 - } 1.111 - 1.112 - /** 1.113 - * This class is not instantiatable. 1.114 - */ 1.115 - private Functions() {} 1.116 -}