Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License.  You can
  * obtain a copy of the License at
  * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
  * or packager/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  *
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at packager/legal/LICENSE.txt.
  *
  * GPL Classpath Exception:
  * Oracle designates this particular file as subject to the "Classpath"
  * exception as provided by Oracle in the GPL Version 2 section of the License
  * file that accompanied this code.
  *
  * Modifications:
  * If applicable, add the following below the License Header, with the fields
  * enclosed by brackets [] replaced by your own identifying information:
  * "Portions Copyright [year] [name of copyright owner]"
  *
  * Contributor(s):
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  */
 
 package javax.faces.application;
 

Instances of javax.faces.component.UIComponent or javax.faces.render.Renderer that have this annotation (or ResourceDependencies attached at the class level will automatically have a resource dependency added so that the named resource will be present in user agent's view of the UIViewRoot in which this component or renderer is used.

The default implementation must support attaching this annotation to javax.faces.component.UIComponent or javax.faces.render.Renderer classes. In both cases, the event that precipitates the processing of this annotation is the insertion of a UIComponent instance into the view hierarchy on an initial request for a view. When that event happens, the following action must be taken.

  1. If this annotation is not present on the class in question, no action must be taken.

  2. Create a javax.faces.component.UIOutput instance by passing javax.faces.Output. to Application.createComponent(java.lang.String).

  3. Get the annotation instance from the class and obtain the values of the name, library, and target attributes.

  4. If library is the empty string, let library be null.

  5. If target is the empty string, let target be null.

  6. Obtain the renderer-type for the resource name by passing name to ResourceHandler.getRendererTypeForResourceName(java.lang.String).

  7. Call setRendererType on the UIOutput instance, passing the renderer-type.

  8. Obtain the Map of attributes from the UIOutput component by calling javax.faces.component.UIComponent.getAttributes().

  9. Store the name into the attributes Map under the key "name".

  10. If library is non-null, store it under the key "library".

  11. If target is non-null, store it under the key "target".

  12. Otherwise, if target is null, call javax.faces.component.UIViewRoot.addComponentResource(javax.faces.context.FacesContext,javax.faces.component.UIComponent), passing the UIOutput instance as the second argument.

Example:


@ResourceDependency(library="corporate", name="colorAndMedia.css"),

Since:
2.0
public @interface ResourceDependency {

    

The resourceName of the resource pointed to by this ResourceDependency. It is valid to have EL Expressions in the value of this attribute, as long as the expression resolves to an instance of the expected type.

    public String name();

    

The libraryName in which the resource pointed to by this ResourceDependency resides. If not specified, defaults to the empty string. It is valid to have EL Expressions in the value of this attribute, as long as the expression resolves to an instance of the expected type.

    public String library() default "";

    

The value given for this attribute will be passed as the "target" argument to javax.faces.component.UIViewRoot.addComponentResource(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String). If this attribute is specified, javax.faces.component.UIViewRoot.addComponentResource(javax.faces.context.FacesContext,javax.faces.component.UIComponent) must be called instead, as described above. It is valid to have EL Expressions in the value of this attribute, as long as the expression resolves to an instance of the expected type.

    public String target() default "";
New to GrepCode? Check out our FAQ X