Skip to content

Commit 4211c80

Browse files
committed
Refactor Multiple API Annotations
1 parent c68a166 commit 4211c80

File tree

10 files changed

+50
-89
lines changed

10 files changed

+50
-89
lines changed

liquidjava-api/src/main/java/liquidjava/specification/Ghost.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
*/
2727
@Retention(RetentionPolicy.RUNTIME)
2828
@Target({ElementType.TYPE})
29-
@Repeatable(GhostMultiple.class)
29+
@Repeatable(Ghost.Multiple.class)
3030
public @interface Ghost {
3131

3232
/**
@@ -40,4 +40,13 @@
4040
* </pre>
4141
*/
4242
String value();
43+
44+
/**
45+
* Container annotation used by {@link Repeatable} to support multiple ghost declarations.
46+
*/
47+
@Retention(RetentionPolicy.RUNTIME)
48+
@Target({ElementType.TYPE})
49+
@interface Multiple {
50+
Ghost[] value();
51+
}
4352
}

liquidjava-api/src/main/java/liquidjava/specification/GhostMultiple.java

Lines changed: 0 additions & 17 deletions
This file was deleted.

liquidjava-api/src/main/java/liquidjava/specification/RefinementAlias.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
*/
2929
@Retention(RetentionPolicy.RUNTIME)
3030
@Target({ElementType.TYPE})
31-
@Repeatable(RefinementAliasMultiple.class)
31+
@Repeatable(RefinementAlias.Multiple.class)
3232
public @interface RefinementAlias {
3333

3434
/**
@@ -42,4 +42,13 @@
4242
* </pre>
4343
*/
4444
String value();
45+
46+
/**
47+
* Container annotation used by {@link Repeatable} to support multiple refinement aliases.
48+
*/
49+
@Retention(RetentionPolicy.RUNTIME)
50+
@Target({ElementType.TYPE})
51+
@interface Multiple {
52+
RefinementAlias[] value();
53+
}
4554
}

liquidjava-api/src/main/java/liquidjava/specification/RefinementAliasMultiple.java

Lines changed: 0 additions & 17 deletions
This file was deleted.

liquidjava-api/src/main/java/liquidjava/specification/RefinementPredicate.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
*/
2929
@Retention(RetentionPolicy.RUNTIME)
3030
@Target({ElementType.METHOD, ElementType.CONSTRUCTOR})
31-
@Repeatable(RefinementPredicateMultiple.class)
31+
@Repeatable(RefinementPredicate.Multiple.class)
3232
public @interface RefinementPredicate {
3333

3434
/**
@@ -43,4 +43,13 @@
4343
* </pre>
4444
*/
4545
String value();
46+
47+
/**
48+
* Container annotation used by {@link Repeatable} to support multiple refinement predicates.
49+
*/
50+
@Retention(RetentionPolicy.RUNTIME)
51+
@Target({ElementType.METHOD, ElementType.CONSTRUCTOR})
52+
@interface Multiple {
53+
RefinementPredicate[] value();
54+
}
4655
}

liquidjava-api/src/main/java/liquidjava/specification/RefinementPredicateMultiple.java

Lines changed: 0 additions & 17 deletions
This file was deleted.

liquidjava-api/src/main/java/liquidjava/specification/StateRefinement.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
*/
2929
@Retention(RetentionPolicy.RUNTIME)
3030
@Target({ElementType.METHOD, ElementType.CONSTRUCTOR})
31-
@Repeatable(StateRefinementMultiple.class)
31+
@Repeatable(StateRefinement.Multiple.class)
3232
public @interface StateRefinement {
3333

3434
/**
@@ -66,4 +66,13 @@
6666
* </pre>
6767
*/
6868
String msg() default "";
69+
70+
/**
71+
* Container annotation used by {@link Repeatable} to support multiple state transitions.
72+
*/
73+
@Retention(RetentionPolicy.RUNTIME)
74+
@Target({ElementType.METHOD, ElementType.CONSTRUCTOR})
75+
@interface Multiple {
76+
StateRefinement[] value();
77+
}
6978
}

liquidjava-api/src/main/java/liquidjava/specification/StateRefinementMultiple.java

Lines changed: 0 additions & 17 deletions
This file was deleted.

liquidjava-api/src/main/java/liquidjava/specification/StateSet.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
*/
2929
@Retention(RetentionPolicy.RUNTIME)
3030
@Target({ElementType.TYPE})
31-
@Repeatable(StateSets.class)
31+
@Repeatable(StateSet.Multiple.class)
3232
public @interface StateSet {
3333

3434
/**
@@ -42,4 +42,13 @@
4242
* </pre>
4343
*/
4444
String[] value();
45+
46+
/**
47+
* Container annotation used by {@link Repeatable} to support multiple state sets.
48+
*/
49+
@Retention(RetentionPolicy.RUNTIME)
50+
@Target({ElementType.TYPE})
51+
@interface Multiple {
52+
StateSet[] value();
53+
}
4554
}

liquidjava-api/src/main/java/liquidjava/specification/StateSets.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)