Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT

## javax.faces.application
Annotation Type ResourceDependency

    @Retention(value=RUNTIME)
    @Target(value=TYPE)
    @Inherited
    public @interface ResourceDependency

Instances of `UIComponent` or `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 `UIComponent` or `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 `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 `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 `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

Required Element Summary
`String` | `name` The resourceName of the resource pointed to by this `ResourceDependency`.

Optional Element Summary
`String` | `library` The libraryName in which the resource pointed to by this `ResourceDependency` resides.
`String` | `target` The value given for this attribute will be passed as the "target" argument to `UIViewRoot.addComponentResource(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String)`.

Element Detail

### name

    public abstract String name

  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.

### library

    public abstract String library

  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.

  Default:
    ""

### target

    public abstract String target

  The value given for this attribute will be passed as the "target" argument to `UIViewRoot.addComponentResource(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.String)`. If this attribute is specified, `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.

  Default:
    ""

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT

Copyright © 2002-2009 Sun Microsystems, Inc. All Rights Reserved.