org.icefaces.ace.meta.annotation

## Annotation Type Component

-     @Target(value=TYPE)
       @Retention(value=RUNTIME)
      public @interface Component

  The component annotation takes information, which is used by the tld, faces-config, faces-taglib as well as the component itself. It has some mandatory fields and some that are optional. Which allows to specify following information:
  - the name and location of the class to be generated
  - component type
  - renderer type
  - renderer class
  - tag name
  - Javadoc
  - TLD doc

- - ### Field Summary

    Fields
    Modifier and Type | Fields and Description
    --- | ---
    `static java.lang.String` | `EMPTY`

  - ### Required Element Summary

    Required Elements
    Modifier and Type | Required Element and Description
    --- | ---
    `java.lang.String` | `componentClass` fully qualified name for the component class.
    `java.lang.String` | `componentType` type of the component.
    `java.lang.String` | `extendsClass` Class that is to be extended by the generated component.
    `java.lang.String` | `tagName` Name of tag.

  - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `java.lang.String` | `baseTagClass` defines a base tag class that can be extended by the generated tag class.
    `java.lang.String` | `componentFamily` name of the component family.
    `java.lang.String[]` | `disinheritProperties` Name of the properties that are not to be inherited from the superclass
    `java.lang.String` | `generatedClass` By default, generated classes are leaf classes, so you can't override any behaviour.
    `java.lang.String` | `handlerClass` Facelets handler class.
    `java.lang.String[]` | `includeProperties` Name of the properties, that needs to be included from the parent class.
    `java.lang.String` | `javadoc` javadoc for the component class.
    `java.lang.String` | `rendererClass` fully qualified name of the class of the Renderer, use by the target component.
    `java.lang.String` | `rendererType` renderer type
    `java.lang.String` | `tagClass` JSP tag class.
    `java.lang.String` | `tlddoc` tld doc for the component class.

- - ### Field Detail

    - #### EMPTY

          public static final java.lang.String EMPTY

  - ### Element Detail

    - #### tagName

          public abstract java.lang.String tagName

      Name of tag. It's a mandatory field.
      Returns:
        defined tag name.

  - - #### extendsClass

          public abstract java.lang.String extendsClass

      Class that is to be extended by the generated component. It's a mandatory field.
      Returns:
        fully qualified name of the class has to be extended.

  - - #### componentClass

          public abstract java.lang.String componentClass

      fully qualified name for the component class. It's a mandatory field.
      Returns:
        fully qualified name of the component class.

  - - #### componentType

          public abstract java.lang.String componentType

      type of the component.
      Returns:
        component type.

  - - #### rendererClass

          public abstract java.lang.String rendererClass

      fully qualified name of the class of the Renderer, use by the target component. (This class has to be created by developer) If not specified, will default to the componentClass+"Renderer"
      Returns:
        fully qualified name of the Renderer class.
      Default:
        ""

  - - #### generatedClass

          public abstract java.lang.String generatedClass

      By default, generated classes are leaf classes, so you can't override any behaviour. If you want to hand code the component class, and have it extend the generated one then you can use this attribute in conjunction with componentClass attribute. So, if generatedClass is specified: (manual) componentClass extends generatedClass extends extendsClass. Otherwise: (generated) componentClass extends extendsClass.
      Returns:
        fully qualified name of the generated class.
      Default:
        ""

  - - #### rendererType

          public abstract java.lang.String rendererType

      renderer type
      Returns:
        type of the renderer
      Default:
        ""

  - - #### componentFamily

          public abstract java.lang.String componentFamily

      name of the component family.
      Returns:
        component family.
      Default:
        ""

  - - #### tagClass

          public abstract java.lang.String tagClass

      JSP tag class. Default is to automatically generate it, naming it componentClass+"Tag". Alternatively, this can be set if developer wants to use its own tag class, instead of generating one.
      Returns:
        JSP tag class, when not generating one.
      Default:
        ""

  - - #### baseTagClass

          public abstract java.lang.String baseTagClass

      defines a base tag class that can be extended by the generated tag class. default is "javax.faces.webapp.UIComponentELTag".
      Returns:
        fully qualified name of base tag class.
      Default:
        "javax.faces.webapp.UIComponentELTag"

  - - #### handlerClass

          public abstract java.lang.String handlerClass

      Facelets handler class. Default is to automatically determine if one is needed, and if so generate it, naming it componentClass+"Handler". Alternatively, this can be set if developer wants to use its own handler class, instead of generating one.
      Returns:
        facelets handler class, when not generating one.
      Default:
        ""

  - - #### javadoc

          public abstract java.lang.String javadoc

      javadoc for the component class. Goes into the generated component class. If not specified, defaults to being the same as tlddoc.
      Returns:
        javadoc for the generated component class.
      Default:
        ""

  - - #### tlddoc

          public abstract java.lang.String tlddoc

      tld doc for the component class. Goes into the Tld documentation.
      Returns:
        component documentation for tld.
      Default:
        ""

  - - #### includeProperties

          public abstract java.lang.String[] includeProperties

      Name of the properties, that needs to be included from the parent class.
      Returns:
        property names.
      Default:
        {}

  - - #### disinheritProperties

          public abstract java.lang.String[] disinheritProperties

      Name of the properties that are not to be inherited from the superclass
      Default:
        {}

Copyright 2025 ICEsoft Technologies Canada, Corp. All Rights Reserved.