@Documented @Retention(value=SOURCE) @Target(value=FIELD) public @interface IndexedProperty
Example usage: suppose you have a class with the following properties:
will add the following methods to the class containing the properties:@IndexedProperty
FieldType[] someField@IndexedProperty
ListotherField @IndexedProperty
List furtherField
FieldType getSomeField(int index) { someField[index] } FieldType getOtherField(int index) { otherField[index] } Object getFurtherField(int index) { furtherField[index] } void setSomeField(int index, FieldType val) { someField[index] = val } void setOtherField(int index, FieldType val) { otherField[index] = val } void setFurtherField(int index, Object val) { furtherField[index] = val }Normal Groovy visibility rules for properties apply (i.e. no
public
, private
or package
visibility can be specified) or you will receive a compile-time error message.
The normal Groovy property getters and setters will also be created.