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

changeset 79
f64255a88d66
parent 78
bb4c52bf3439
child 80
27a25f32048e
     1.1 --- a/src/main/java/de/uapcore/lightpit/LightPITModule.java	Sat May 23 13:52:04 2020 +0200
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,101 +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 javax.servlet.annotation.WebServlet;
    1.35 -import java.lang.annotation.*;
    1.36 -
    1.37 -
    1.38 -/**
    1.39 - * Contains information about a LightPIT module.
    1.40 - * <p>
    1.41 - * This annotation is typically used to annotate the {@link WebServlet} which
    1.42 - * implements the module's functionality.
    1.43 - */
    1.44 -@Documented
    1.45 -@Retention(RetentionPolicy.RUNTIME)
    1.46 -@Target(ElementType.TYPE)
    1.47 -public @interface LightPITModule {
    1.48 -    /**
    1.49 -     * Base name of the module specific resource bundle.
    1.50 -     *
    1.51 -     * @return a base name suitable for the JSTL tag 'setBundle'.
    1.52 -     */
    1.53 -    String bundleBaseName();
    1.54 -
    1.55 -    /**
    1.56 -     * The path for this module, which will also be used for the menu entry.
    1.57 -     * <p>
    1.58 -     * This path must adhere to the URL pattern of the Servlet but must not
    1.59 -     * contain any starting or trailing slashes.
    1.60 -     *
    1.61 -     * @return the relative module path
    1.62 -     */
    1.63 -    String modulePath();
    1.64 -
    1.65 -    /**
    1.66 -     * If set to <code>true</code>, this module is always loaded, but never
    1.67 -     * visible in the menu or the Web UI module manager.
    1.68 -     *
    1.69 -     * @return true, if this is a system module
    1.70 -     */
    1.71 -    boolean systemModule() default false;
    1.72 -
    1.73 -    /**
    1.74 -     * Optionally specifies a default priority for this module.
    1.75 -     * The priority is used to order the menu entries.
    1.76 -     *
    1.77 -     * @return an integer priority
    1.78 -     */
    1.79 -    int defaultPriority() default 1000;
    1.80 -
    1.81 -    /**
    1.82 -     * Class representing the annotation.
    1.83 -     * This is necessary, because the EL resolver cannot deal with
    1.84 -     * annotation objects.
    1.85 -     * <p>
    1.86 -     * Note, that only the properties which are interesting for the JSP pages
    1.87 -     * are proxied by this object.
    1.88 -     */
    1.89 -    class ELProxy {
    1.90 -        private final String bundleBaseName, modulePath;
    1.91 -
    1.92 -        public ELProxy(LightPITModule annotation) {
    1.93 -            bundleBaseName = annotation.bundleBaseName();
    1.94 -            modulePath = annotation.modulePath();
    1.95 -        }
    1.96 -
    1.97 -        public String getBundleBaseName() {
    1.98 -            return bundleBaseName;
    1.99 -        }
   1.100 -        public String getModulePath() {
   1.101 -            return modulePath;
   1.102 -        }
   1.103 -    }
   1.104 -}

mercurial