001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
003     * agreements. See the NOTICE file distributed with this work for additional information regarding
004     * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the
005     * "License"); you may not use this file except in compliance with the License. You may obtain a
006     * copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
007     * law or agreed to in writing, software distributed under the License is distributed on an "AS IS"
008     * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
009     * for the specific language governing permissions and limitations under the License.
010     */
011    
012    package javax.portlet.faces.annotation;
013    
014    import java.lang.annotation.Documented;
015    import java.lang.annotation.ElementType;
016    import java.lang.annotation.Inherited;
017    import java.lang.annotation.Retention;
018    import java.lang.annotation.RetentionPolicy;
019    import java.lang.annotation.Target;
020    
021    /** The PortletNamingContainer annotation is used on a class as a signal
022     * that instances of this class implement the Portlet NamingContainer behavior. 
023     * I.e.  its a <code>UIViewRoot</code> which overrides and implements
024     * <code>getContainerClientId()</code> ensuring that the returned Id contains in
025     * part a portlet Id that is unique with respect to the consuming application
026     * (portal).  This id is acquired by calling <code>ExternalContext.encodeNamespace()</code>.
027     */
028    
029    @Documented
030    @Inherited
031    @Retention(RetentionPolicy.RUNTIME)
032    @Target({ElementType.TYPE})
033    public @interface PortletNamingContainer {
034    }