@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:@IndexedPropertyFieldType[] someField@IndexedPropertyListotherField @IndexedPropertyList 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.