org.oasisopen.sca.annotation
Annotation Type Property


@Target(value={METHOD,FIELD,PARAMETER})
@Retention(value=RUNTIME)
public @interface Property

The @Property annotation is used to denote a Java class field, a setter method, or a constructor parameter that is used to inject an SCA property value. The type of the property injected, which can be a simple Java type or a complex Java type, is defined by the type of the Java class field or the type of the input parameter of the setter method or constructor. The @Property annotation can be used on fields, on setter methods or on a constructor method parameter. However, the @Property annotation MUST NOT be used on a class field that is declared as final. Properties can also be injected via setter methods even when the @Property annotation is not present. However, the @Property annotation must be used in order to inject a property onto a non-public field. In the case where there is no @Property annotation, the name of the property is the same as the name of the field or setter. Where there is both a setter method and a field for a property, the setter method is used.


Optional Element Summary
 java.lang.String name
          The name of the property.
 boolean required
          Specifies whether injection is required, defaults to true.
 

name

public abstract java.lang.String name
The name of the property. For a field annotation, the default is the name of the field of the Java class. For a setter method annotation, the default is the JavaBeans property name corresponding to the setter method name. For a constructor parameter annotation, there is no default and the name attribute MUST be present.

Returns:
the name of the property
Default:
""

required

public abstract boolean required
Specifies whether injection is required, defaults to true. For a constructor parameter annotation, this attribute MUST have the value true.

Returns:
true if injection is required
Default:
true