001    //
002    // Licensed under the Apache License, Version 2.0 (the "License");
003    // you may not use this file except in compliance with the License.
004    // You may obtain a copy of the License at
005    //
006    //     http://www.apache.org/licenses/LICENSE-2.0
007    //
008    // Unless required by applicable law or agreed to in writing, software
009    // distributed under the License is distributed on an "AS IS" BASIS,
010    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
011    // See the License for the specific language governing permissions and
012    // limitations under the License.
013    
014    package net.sf.tacos.annotations;
015    
016    import java.lang.annotation.ElementType;
017    import java.lang.annotation.Retention;
018    import java.lang.annotation.RetentionPolicy;
019    import java.lang.annotation.Target;
020    
021    /**
022     * Annotation for injecting an ILink to a specific page,
023     * using the page service.<p/>
024     * Use it on an abstract, parameterless
025     * page or component method that returns ILink. 
026     *
027     * @author Ming Jiang
028     * @author Andreas Andreou
029     */
030    @Target( { ElementType.METHOD })
031    @Retention(RetentionPolicy.RUNTIME)
032    public @interface InjectPageLink {
033        /**
034         * The name of the page for which to inject the ILink.
035         * @return
036         */
037        String value();
038    
039        /**
040         * Set to true if the page is to be found on the current namespace. Otherwise (the
041         * default), it is assumed to exist in the application (global) namespace.
042         * @return
043         */
044        boolean currentNamespace() default false;
045    }