org.icefaces.ace.meta.annotation

## Annotation Type Property

-     @Target(value=FIELD)
       @Retention(value=RUNTIME)
      public @interface Property

  Property annotation allows to add JSF managed properties to the generated component. All fields are optional on this annotation.

- - ### Field Summary

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

  - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `java.lang.String` | `defaultValue` Default value of the property.
    `DefaultValueType` | `defaultValueType` By default the value being assigned to the property as string literal (e.g.)
    `Expression` | `expression` If generated property is a method expression, then this field should be set to Expresion.METHOD_EXPRESSION.
    `Implementation` | `implementation` If this property exists in a superclass, and one desires to use such implementation and/or to inherit the settings specified in the @Property annotation found in ancestor classes for this property, then one should set this field to Implementation.EXISTS_IN_SUPERCLASS.
    `java.lang.String` | `javadocGet` javadoc for the getter.
    `java.lang.String` | `javadocSet` javadoc for the setter.
    `java.lang.String` | `methodExpressionArgument` Allows to define method expression argument if any.
    `java.lang.String` | `name` Allow the user to specify a 'name' for the property that is different from the field name.
    `Required` | `required` Attribute that goes inside the TLD for each attribute.
    `java.lang.String` | `tlddoc` TLDDoc for this property

- - ### Field Detail

    - #### Null

          public static final java.lang.String Null

  - ### Element Detail

    - #### expression

          public abstract Expression expression

      If generated property is a method expression, then this field should be set to Expresion.METHOD_EXPRESSION. (e.g.)

           @Property(expression=Expression.METHOD_EXPRESSION, methodExpressionArgument="javax.faces.event.ValueChangeEvent")
           public MethodExpression valueChangeListener;

      Returns:
        boolean value.
      Default:
        org.icefaces.ace.meta.annotation.Expression.UNSET

  - - #### methodExpressionArgument

          public abstract java.lang.String methodExpressionArgument

      Allows to define method expression argument if any.
      Returns:
        fully qualified name of the argument class.
      Default:
        "null"

  - - #### defaultValue

          public abstract java.lang.String defaultValue

      Default value of the property.
      Returns:
        default value.
      Default:
        "null"

  - - #### defaultValueType

          public abstract DefaultValueType defaultValueType

      By default the value being assigned to the property as string literal (e.g.)

           @Property (value="Car")
           String type;

           The generated property would look something like this:

           String type = "Car";

           But what if you want to define some other type than string or a constant, expression etc. You don't want
           value to be quoted in that case. So you would set this attribute to DefaultValueType.EXPRESSION. (e.g)

           @Property (value="10", defaultValueType=DefaultValueType.EXPRESSION)
           Integer count;

      Returns:
        defaultValueType
      Default:
        org.icefaces.ace.meta.annotation.DefaultValueType.UNSET

  - - #### name

          public abstract java.lang.String name

      Allow the user to specify a 'name' for the property that is different from the field name. This allows a property 'for' or 'while' which are Java keywords.
      Returns:
        optional name of the field
      Default:
        "null"

  - - #### tlddoc

          public abstract java.lang.String tlddoc

      TLDDoc for this property
      Returns:
        property tlddoc
      Default:
        "null"

  - - #### javadocGet

          public abstract java.lang.String javadocGet

      javadoc for the getter.
      Returns:
        getter javadoc.
      Default:
        "null"

  - - #### javadocSet

          public abstract java.lang.String javadocSet

      javadoc for the setter.
      Returns:
        setter javadoc.
      Default:
        "null"

  - - #### required

          public abstract Required required

      Attribute that goes inside the TLD for each attribute. It also helps IDEs
      Default:
        org.icefaces.ace.meta.annotation.Required.UNSET

  - - #### implementation

          public abstract Implementation implementation

      If this property exists in a superclass, and one desires to use such implementation and/or to inherit the settings specified in the @Property annotation found in ancestor classes for this property, then one should set this field to Implementation.EXISTS_IN_SUPERCLASS. This property will still appear in the TLD and javadocs for this component and in the tag class. The default value is Implementation.GENERATE, which will ignore all settings in @Property annotations in ancestor classes for this property and will generate all necessary code for this property in this component class.
      Returns:
        implementation
      Default:
        org.icefaces.ace.meta.annotation.Implementation.UNSET

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