diff --git a/liquidjava-api/src/main/java/liquidjava/specification/Ghost.java b/liquidjava-api/src/main/java/liquidjava/specification/Ghost.java index 195b5693..acbac453 100644 --- a/liquidjava-api/src/main/java/liquidjava/specification/Ghost.java +++ b/liquidjava-api/src/main/java/liquidjava/specification/Ghost.java @@ -26,7 +26,7 @@ */ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) -@Repeatable(GhostMultiple.class) +@Repeatable(Ghost.Multiple.class) public @interface Ghost { /** @@ -40,4 +40,13 @@ * */ String value(); + + /** + * Container annotation used by {@link Repeatable} to support multiple ghost declarations. + */ + @Retention(RetentionPolicy.RUNTIME) + @Target({ElementType.TYPE}) + @interface Multiple { + Ghost[] value(); + } } diff --git a/liquidjava-api/src/main/java/liquidjava/specification/GhostMultiple.java b/liquidjava-api/src/main/java/liquidjava/specification/GhostMultiple.java deleted file mode 100644 index 4aea5a73..00000000 --- a/liquidjava-api/src/main/java/liquidjava/specification/GhostMultiple.java +++ /dev/null @@ -1,17 +0,0 @@ -package liquidjava.specification; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Annotation to allow the creation of multiple ghost variables. - * - * @author Catarina Gamboa - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.TYPE}) -public @interface GhostMultiple { - Ghost[] value(); -} diff --git a/liquidjava-api/src/main/java/liquidjava/specification/RefinementAlias.java b/liquidjava-api/src/main/java/liquidjava/specification/RefinementAlias.java index 01253d56..e1deba23 100644 --- a/liquidjava-api/src/main/java/liquidjava/specification/RefinementAlias.java +++ b/liquidjava-api/src/main/java/liquidjava/specification/RefinementAlias.java @@ -28,7 +28,7 @@ */ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) -@Repeatable(RefinementAliasMultiple.class) +@Repeatable(RefinementAlias.Multiple.class) public @interface RefinementAlias { /** @@ -42,4 +42,13 @@ * */ String value(); + + /** + * Container annotation used by {@link Repeatable} to support multiple refinement aliases. + */ + @Retention(RetentionPolicy.RUNTIME) + @Target({ElementType.TYPE}) + @interface Multiple { + RefinementAlias[] value(); + } } diff --git a/liquidjava-api/src/main/java/liquidjava/specification/RefinementAliasMultiple.java b/liquidjava-api/src/main/java/liquidjava/specification/RefinementAliasMultiple.java deleted file mode 100644 index 2f5e93e0..00000000 --- a/liquidjava-api/src/main/java/liquidjava/specification/RefinementAliasMultiple.java +++ /dev/null @@ -1,17 +0,0 @@ -package liquidjava.specification; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Annotation to create multiple refinement aliases. - * - * @author Catarina Gamboa - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.TYPE}) -public @interface RefinementAliasMultiple { - RefinementAlias[] value(); -} diff --git a/liquidjava-api/src/main/java/liquidjava/specification/RefinementPredicate.java b/liquidjava-api/src/main/java/liquidjava/specification/RefinementPredicate.java index 44d7f4df..a877629e 100644 --- a/liquidjava-api/src/main/java/liquidjava/specification/RefinementPredicate.java +++ b/liquidjava-api/src/main/java/liquidjava/specification/RefinementPredicate.java @@ -28,7 +28,7 @@ */ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD, ElementType.CONSTRUCTOR}) -@Repeatable(RefinementPredicateMultiple.class) +@Repeatable(RefinementPredicate.Multiple.class) public @interface RefinementPredicate { /** @@ -43,4 +43,13 @@ * */ String value(); + + /** + * Container annotation used by {@link Repeatable} to support multiple refinement predicates. + */ + @Retention(RetentionPolicy.RUNTIME) + @Target({ElementType.METHOD, ElementType.CONSTRUCTOR}) + @interface Multiple { + RefinementPredicate[] value(); + } } diff --git a/liquidjava-api/src/main/java/liquidjava/specification/RefinementPredicateMultiple.java b/liquidjava-api/src/main/java/liquidjava/specification/RefinementPredicateMultiple.java deleted file mode 100644 index ca512fa8..00000000 --- a/liquidjava-api/src/main/java/liquidjava/specification/RefinementPredicateMultiple.java +++ /dev/null @@ -1,17 +0,0 @@ -package liquidjava.specification; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Annotation to allow the creation of multiple refinement predicates. - * - * @author Catarina Gamboa - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.METHOD, ElementType.CONSTRUCTOR}) -public @interface RefinementPredicateMultiple { - RefinementPredicate[] value(); -} diff --git a/liquidjava-api/src/main/java/liquidjava/specification/StateRefinement.java b/liquidjava-api/src/main/java/liquidjava/specification/StateRefinement.java index 2d235891..7e4e59bb 100644 --- a/liquidjava-api/src/main/java/liquidjava/specification/StateRefinement.java +++ b/liquidjava-api/src/main/java/liquidjava/specification/StateRefinement.java @@ -28,7 +28,7 @@ */ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD, ElementType.CONSTRUCTOR}) -@Repeatable(StateRefinementMultiple.class) +@Repeatable(StateRefinement.Multiple.class) public @interface StateRefinement { /** @@ -66,4 +66,13 @@ * */ String msg() default ""; + + /** + * Container annotation used by {@link Repeatable} to support multiple state transitions. + */ + @Retention(RetentionPolicy.RUNTIME) + @Target({ElementType.METHOD, ElementType.CONSTRUCTOR}) + @interface Multiple { + StateRefinement[] value(); + } } diff --git a/liquidjava-api/src/main/java/liquidjava/specification/StateRefinementMultiple.java b/liquidjava-api/src/main/java/liquidjava/specification/StateRefinementMultiple.java deleted file mode 100644 index c410a4db..00000000 --- a/liquidjava-api/src/main/java/liquidjava/specification/StateRefinementMultiple.java +++ /dev/null @@ -1,17 +0,0 @@ -package liquidjava.specification; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Annotation to allow the creation of multiple state transitions. - * - * @author Catarina Gamboa - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.METHOD, ElementType.CONSTRUCTOR}) -public @interface StateRefinementMultiple { - StateRefinement[] value(); -} diff --git a/liquidjava-api/src/main/java/liquidjava/specification/StateSet.java b/liquidjava-api/src/main/java/liquidjava/specification/StateSet.java index ccdc4ebb..376c071b 100644 --- a/liquidjava-api/src/main/java/liquidjava/specification/StateSet.java +++ b/liquidjava-api/src/main/java/liquidjava/specification/StateSet.java @@ -28,7 +28,7 @@ */ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) -@Repeatable(StateSets.class) +@Repeatable(StateSet.Multiple.class) public @interface StateSet { /** @@ -42,4 +42,13 @@ * */ String[] value(); + + /** + * Container annotation used by {@link Repeatable} to support multiple state sets. + */ + @Retention(RetentionPolicy.RUNTIME) + @Target({ElementType.TYPE}) + @interface Multiple { + StateSet[] value(); + } } diff --git a/liquidjava-api/src/main/java/liquidjava/specification/StateSets.java b/liquidjava-api/src/main/java/liquidjava/specification/StateSets.java deleted file mode 100644 index 817a0c91..00000000 --- a/liquidjava-api/src/main/java/liquidjava/specification/StateSets.java +++ /dev/null @@ -1,16 +0,0 @@ -package liquidjava.specification; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Annotation to allow the creation of multiple state sets. - * @author Catarina Gamboa - */ -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.TYPE}) -public @interface StateSets { - StateSet[] value(); -}