Used @Repeatable feature from JDK8 for @Indices

This commit is contained in:
Roland Praml
2016-08-23 09:27:12 +02:00
parent 87f6964995
commit f5c8d8896f
4 changed files with 5 additions and 3 deletions
@@ -1,6 +1,7 @@
package com.avaje.ebean.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@@ -12,6 +13,7 @@ import java.lang.annotation.Target;
*/
@Target({ElementType.TYPE, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Repeatable(Indices.class)
public @interface Index {
/**
@@ -16,5 +16,5 @@ public @interface Indices {
/**
* Array with {@link Index} definitions.
*/
Index[] indices() default {};
Index[] value() default {};
}
@@ -121,7 +121,7 @@ public class AnnotationClass extends AnnotationParser {
Indices indices = AnnotationBase.findAnnotation(cls, Indices.class);
if (indices != null) {
for (Index index: indices.indices()) {
for (Index index: indices.value()) {
descriptor.addIndex(new IndexDefinition(index.columnNames(), index.name(), index.unique()));
}
}
@@ -312,7 +312,7 @@ public class AnnotationFields extends AnnotationParser {
Indices indices = get(prop, Indices.class);
if (indices != null) {
for (Index index: indices.indices()) {
for (Index index: indices.value()) {
addIndex(prop, index);
}
}