src/java/de/uapcore/lightpit/LightPITModule.java

changeset 29
27a0fdd7bca7
parent 28
cfc3d11884ad
child 30
fb30f7b78f9b
--- a/src/java/de/uapcore/lightpit/LightPITModule.java	Sun Apr 08 16:51:15 2018 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- * 
- * Copyright 2018 Mike Becker. All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *   1. Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *
- *   2. Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- * 
- */
-package de.uapcore.lightpit;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import javax.servlet.annotation.WebServlet;
-
-
-/**
- * Contains information about a LightPIT module.
- * 
- * This annotation is typically used to annotate the {@link WebServlet} which
- * implements the module's functionality.
- */
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-public @interface LightPITModule {
-    /**
-     * Base name of the module specific resource bundle.
-     * @return a base name suitable for the JSTL tag 'setBundle'.
-     */
-    String bundleBaseName();
-    
-    /**
-     * An array of required modules, identified by the string representation of
-     * their class names.
-     * @return an array of class names of required modules
-     */
-    String[] requires() default {};
-    
-    /**
-     * The path for this module, which will also be used for the menu entry.
-     * 
-     * This path must adhere to the URL pattern of the Servlet but must not
-     * contain any starting or trailing slashes.
-     * 
-     * @return the relative module path
-     */
-    String modulePath();
-    
-    /**
-     * Returns the properties key for the module name.
-     * 
-     * @return the properties key
-     */
-    String nameKey() default "name";
-    
-    /**
-     * Returns the properties key for the module description.
-     * 
-     * @return the properties key
-     */
-    String descKey() default "description";
-    
-    
-    /**
-     * Returns the properties key for the menu label.
-     * 
-     * Set this string to empty string, if the module should be hidden from
-     * the menu.
-     * 
-     * @return the properties key
-     */
-    String menuKey() default "menuLabel";
-    
-    /**
-     * Returns the properties key for the page title.
-     * 
-     * By default this is the same as the menu label.
-     * 
-     * @return the properties key
-     */
-    String titleKey() default "menuLabel";
-    
-    /**
-     * If set to <code>true</code>, this module is always loaded, but never
-     * visible in the menu or the Web UI module manager.
-     * 
-     * @return true, if this is a system module
-     */
-    boolean systemModule() default false;
-    
-    /**
-     * Class representing the annotation.
-     * This is necessary, because the EL resolver cannot deal with
-     * annotation objects.
-     * 
-     * Note, that only the properties which are interesting for the JSP pages
-     * are proxied by this object.
-     */
-    public static class ELProxy {
-        private final String bundleBaseName, modulePath, menuKey, titleKey, nameKey, descKey;
-        
-        public static ELProxy convert(LightPITModule annotation) {
-            return new ELProxy(
-                    annotation.bundleBaseName(),
-                    annotation.modulePath(),
-                    annotation.menuKey(),
-                    annotation.titleKey(),
-                    annotation.nameKey(),
-                    annotation.descKey()
-            );
-        }
-
-        private ELProxy(String bundleBaseName, String modulePath, String menuKey, String titleKey, String nameKey, String descKey) {
-            this.bundleBaseName = bundleBaseName;
-            this.modulePath = modulePath;
-            this.menuKey = menuKey;
-            this.titleKey = titleKey;
-            this.nameKey = nameKey;
-            this.descKey = descKey;
-        }
-
-        public String getBundleBaseName() {
-            return bundleBaseName;
-        }
-
-        public String getMenuKey() {
-            return menuKey;
-        }
-
-        public String getModulePath() {
-            return modulePath;
-        }
-
-        public String getTitleKey() {
-            return titleKey;
-        }
-
-        public String getNameKey() {
-            return nameKey;
-        }
-
-        public String getDescKey() {
-            return descKey;
-        }
-        
-    }
-}

mercurial