1616 * <li>call {@link #build()} to create an {@link AnnotationInfo}.</li>
1717 * </ol>
1818 * One builder instance should not be used to create multiple annotations.
19+ * <p>
20+ * Note that values of <em>all</em> members of given annotation type must be defined
21+ * before calling {@code build()}. If they are not, {@code build()} will throw an exception.
1922 *
2023 * @since 4.0
2124 */
@@ -67,7 +70,7 @@ default AnnotationBuilder value(boolean value) {
6770 * @param values the boolean array, must not be {@code null}
6871 * @return this {@code AnnotationBuilder}
6972 */
70- default AnnotationBuilder value (boolean ... values ) {
73+ default AnnotationBuilder value (boolean [] values ) {
7174 return member (AnnotationMember .VALUE , values );
7275 }
7376
@@ -87,7 +90,7 @@ default AnnotationBuilder value(byte value) {
8790 * @param values the byte array, must not be {@code null}
8891 * @return this {@code AnnotationBuilder}
8992 */
90- default AnnotationBuilder value (byte ... values ) {
93+ default AnnotationBuilder value (byte [] values ) {
9194 return member (AnnotationMember .VALUE , values );
9295 }
9396
@@ -107,7 +110,7 @@ default AnnotationBuilder value(short value) {
107110 * @param values the short array, must not be {@code null}
108111 * @return this {@code AnnotationBuilder}
109112 */
110- default AnnotationBuilder value (short ... values ) {
113+ default AnnotationBuilder value (short [] values ) {
111114 return member (AnnotationMember .VALUE , values );
112115 }
113116
@@ -127,7 +130,7 @@ default AnnotationBuilder value(int value) {
127130 * @param values the int array, must not be {@code null}
128131 * @return this {@code AnnotationBuilder}
129132 */
130- default AnnotationBuilder value (int ... values ) {
133+ default AnnotationBuilder value (int [] values ) {
131134 return member (AnnotationMember .VALUE , values );
132135 }
133136
@@ -147,7 +150,7 @@ default AnnotationBuilder value(long value) {
147150 * @param values the long array, must not be {@code null}
148151 * @return this {@code AnnotationBuilder}
149152 */
150- default AnnotationBuilder value (long ... values ) {
153+ default AnnotationBuilder value (long [] values ) {
151154 return member (AnnotationMember .VALUE , values );
152155 }
153156
@@ -167,7 +170,7 @@ default AnnotationBuilder value(float value) {
167170 * @param values the float array, must not be {@code null}
168171 * @return this {@code AnnotationBuilder}
169172 */
170- default AnnotationBuilder value (float ... values ) {
173+ default AnnotationBuilder value (float [] values ) {
171174 return member (AnnotationMember .VALUE , values );
172175 }
173176
@@ -187,7 +190,7 @@ default AnnotationBuilder value(double value) {
187190 * @param values the double array, must not be {@code null}
188191 * @return this {@code AnnotationBuilder}
189192 */
190- default AnnotationBuilder value (double ... values ) {
193+ default AnnotationBuilder value (double [] values ) {
191194 return member (AnnotationMember .VALUE , values );
192195 }
193196
@@ -207,7 +210,7 @@ default AnnotationBuilder value(char value) {
207210 * @param values the char array, must not be {@code null}
208211 * @return this {@code AnnotationBuilder}
209212 */
210- default AnnotationBuilder value (char ... values ) {
213+ default AnnotationBuilder value (char [] values ) {
211214 return member (AnnotationMember .VALUE , values );
212215 }
213216
@@ -227,7 +230,7 @@ default AnnotationBuilder value(String value) {
227230 * @param values the String array, must not be {@code null} or contain {@code null}
228231 * @return this {@code AnnotationBuilder}
229232 */
230- default AnnotationBuilder value (String ... values ) {
233+ default AnnotationBuilder value (String [] values ) {
231234 return member (AnnotationMember .VALUE , values );
232235 }
233236
@@ -247,7 +250,7 @@ default AnnotationBuilder value(Enum<?> value) {
247250 * @param values the enum array, must not be {@code null} or contain {@code null}
248251 * @return this {@code AnnotationBuilder}
249252 */
250- default AnnotationBuilder value (Enum <?>... values ) {
253+ default AnnotationBuilder value (Enum <?>[] values ) {
251254 return member (AnnotationMember .VALUE , values );
252255 }
253256
@@ -269,7 +272,7 @@ default AnnotationBuilder value(Class<? extends Enum<?>> enumType, String enumVa
269272 * @param enumValues names of the enum constants, must not be {@code null} or contain {@code null}
270273 * @return this {@code AnnotationBuilder}
271274 */
272- default AnnotationBuilder value (Class <? extends Enum <?>> enumType , String ... enumValues ) {
275+ default AnnotationBuilder value (Class <? extends Enum <?>> enumType , String [] enumValues ) {
273276 return member (AnnotationMember .VALUE , enumType , enumValues );
274277 }
275278
@@ -291,7 +294,7 @@ default AnnotationBuilder value(ClassInfo enumType, String enumValue) {
291294 * @param enumValues names of the enum constants, must not be {@code null} or contain {@code null}
292295 * @return this {@code AnnotationBuilder}
293296 */
294- default AnnotationBuilder value (ClassInfo enumType , String ... enumValues ) {
297+ default AnnotationBuilder value (ClassInfo enumType , String [] enumValues ) {
295298 return member (AnnotationMember .VALUE , enumType , enumValues );
296299 }
297300
@@ -311,7 +314,7 @@ default AnnotationBuilder value(Class<?> value) {
311314 * @param values the class array, must not be {@code null} or contain {@code null}
312315 * @return this {@code AnnotationBuilder}
313316 */
314- default AnnotationBuilder value (Class <?>... values ) {
317+ default AnnotationBuilder value (Class <?>[] values ) {
315318 return member (AnnotationMember .VALUE , values );
316319 }
317320
@@ -331,7 +334,7 @@ default AnnotationBuilder value(ClassInfo value) {
331334 * @param values the class array, must not be {@code null} or contain {@code null}
332335 * @return this {@code AnnotationBuilder}
333336 */
334- default AnnotationBuilder value (ClassInfo ... values ) {
337+ default AnnotationBuilder value (ClassInfo [] values ) {
335338 return member (AnnotationMember .VALUE , values );
336339 }
337340
@@ -371,7 +374,7 @@ default AnnotationBuilder value(Type value) {
371374 * @return this {@code AnnotationBuilder}
372375 * @throws IllegalArgumentException if any given type is invalid, as described above
373376 */
374- default AnnotationBuilder value (Type ... values ) {
377+ default AnnotationBuilder value (Type [] values ) {
375378 return member (AnnotationMember .VALUE , values );
376379 }
377380
@@ -391,7 +394,7 @@ default AnnotationBuilder value(AnnotationInfo value) {
391394 * @param values the annotation array, must not be {@code null} or contain {@code null}
392395 * @return this {@code AnnotationBuilder}
393396 */
394- default AnnotationBuilder value (AnnotationInfo ... values ) {
397+ default AnnotationBuilder value (AnnotationInfo [] values ) {
395398 return member (AnnotationMember .VALUE , values );
396399 }
397400
@@ -411,7 +414,7 @@ default AnnotationBuilder value(Annotation value) {
411414 * @param values the annotation array, must not be {@code null} or contain {@code null}
412415 * @return this {@code AnnotationBuilder}
413416 */
414- default AnnotationBuilder value (Annotation ... values ) {
417+ default AnnotationBuilder value (Annotation [] values ) {
415418 return member (AnnotationMember .VALUE , values );
416419 }
417420
@@ -440,7 +443,7 @@ default AnnotationBuilder value(Annotation... values) {
440443 * @param values the boolean array, must not be {@code null}
441444 * @return this {@code AnnotationBuilder}
442445 */
443- AnnotationBuilder member (String name , boolean ... values );
446+ AnnotationBuilder member (String name , boolean [] values );
444447
445448 /**
446449 * Adds a byte-valued annotation member with given {@code name}.
@@ -458,7 +461,7 @@ default AnnotationBuilder value(Annotation... values) {
458461 * @param values the byte array, must not be {@code null}
459462 * @return this {@code AnnotationBuilder}
460463 */
461- AnnotationBuilder member (String name , byte ... values );
464+ AnnotationBuilder member (String name , byte [] values );
462465
463466 /**
464467 * Adds a short-valued annotation member with given {@code name}.
@@ -476,7 +479,7 @@ default AnnotationBuilder value(Annotation... values) {
476479 * @param values the short array, must not be {@code null}
477480 * @return this {@code AnnotationBuilder}
478481 */
479- AnnotationBuilder member (String name , short ... values );
482+ AnnotationBuilder member (String name , short [] values );
480483
481484 /**
482485 * Adds an int-valued annotation member with given {@code name}.
@@ -494,7 +497,7 @@ default AnnotationBuilder value(Annotation... values) {
494497 * @param values the int array, must not be {@code null}
495498 * @return this {@code AnnotationBuilder}
496499 */
497- AnnotationBuilder member (String name , int ... values );
500+ AnnotationBuilder member (String name , int [] values );
498501
499502 /**
500503 * Adds a long-valued annotation member with given {@code name}.
@@ -512,7 +515,7 @@ default AnnotationBuilder value(Annotation... values) {
512515 * @param values the long array, must not be {@code null}
513516 * @return this {@code AnnotationBuilder}
514517 */
515- AnnotationBuilder member (String name , long ... values );
518+ AnnotationBuilder member (String name , long [] values );
516519
517520 /**
518521 * Adds a float-valued annotation member with given {@code name}.
@@ -530,7 +533,7 @@ default AnnotationBuilder value(Annotation... values) {
530533 * @param values the float array, must not be {@code null}
531534 * @return this {@code AnnotationBuilder}
532535 */
533- AnnotationBuilder member (String name , float ... values );
536+ AnnotationBuilder member (String name , float [] values );
534537
535538 /**
536539 * Adds a double-valued annotation member with given {@code name}.
@@ -548,7 +551,7 @@ default AnnotationBuilder value(Annotation... values) {
548551 * @param values the double array, must not be {@code null}
549552 * @return this {@code AnnotationBuilder}
550553 */
551- AnnotationBuilder member (String name , double ... values );
554+ AnnotationBuilder member (String name , double [] values );
552555
553556 /**
554557 * Adds a char-valued annotation member with given {@code name}.
@@ -566,7 +569,7 @@ default AnnotationBuilder value(Annotation... values) {
566569 * @param values the char array, must not be {@code null}
567570 * @return this {@code AnnotationBuilder}
568571 */
569- AnnotationBuilder member (String name , char ... values );
572+ AnnotationBuilder member (String name , char [] values );
570573
571574 /**
572575 * Adds a String-valued annotation member with given {@code name}.
@@ -584,7 +587,7 @@ default AnnotationBuilder value(Annotation... values) {
584587 * @param values the String array, must not be {@code null} or contain {@code null}
585588 * @return this {@code AnnotationBuilder}
586589 */
587- AnnotationBuilder member (String name , String ... values );
590+ AnnotationBuilder member (String name , String [] values );
588591
589592 /**
590593 * Adds an enum-valued annotation member with given {@code name}.
@@ -602,7 +605,7 @@ default AnnotationBuilder value(Annotation... values) {
602605 * @param values the enum array, must not be {@code null} or contain {@code null}
603606 * @return this {@code AnnotationBuilder}
604607 */
605- AnnotationBuilder member (String name , Enum <?>... values );
608+ AnnotationBuilder member (String name , Enum <?>[] values );
606609
607610 /**
608611 * Adds an enum-valued annotation member with given {@code name}.
@@ -622,7 +625,7 @@ default AnnotationBuilder value(Annotation... values) {
622625 * @param enumValues names of the enum constants, must not be {@code null} or contain {@code null}
623626 * @return this {@code AnnotationBuilder}
624627 */
625- AnnotationBuilder member (String name , Class <? extends Enum <?>> enumType , String ... enumValues );
628+ AnnotationBuilder member (String name , Class <? extends Enum <?>> enumType , String [] enumValues );
626629
627630 /**
628631 * Adds an enum-valued annotation member with given {@code name}.
@@ -642,7 +645,7 @@ default AnnotationBuilder value(Annotation... values) {
642645 * @param enumValues names of the enum constants, must not be {@code null} or contain {@code null}
643646 * @return this {@code AnnotationBuilder}
644647 */
645- AnnotationBuilder member (String name , ClassInfo enumType , String ... enumValues );
648+ AnnotationBuilder member (String name , ClassInfo enumType , String [] enumValues );
646649
647650 /**
648651 * Adds a class-valued annotation member with given {@code name}.
@@ -660,7 +663,7 @@ default AnnotationBuilder value(Annotation... values) {
660663 * @param values the class array, must not be {@code null} or contain {@code null}
661664 * @return this {@code AnnotationBuilder}
662665 */
663- AnnotationBuilder member (String name , Class <?>... values );
666+ AnnotationBuilder member (String name , Class <?>[] values );
664667
665668 /**
666669 * Adds a class-valued annotation member with given {@code name}.
@@ -678,7 +681,7 @@ default AnnotationBuilder value(Annotation... values) {
678681 * @param values the class array, must not be {@code null} or contain {@code null}
679682 * @return this {@code AnnotationBuilder}
680683 */
681- AnnotationBuilder member (String name , ClassInfo ... values );
684+ AnnotationBuilder member (String name , ClassInfo [] values );
682685
683686 /**
684687 * Adds a class-valued annotation member with given {@code name}.
@@ -717,7 +720,7 @@ default AnnotationBuilder value(Annotation... values) {
717720 * @return this {@code AnnotationBuilder}
718721 * @throws IllegalArgumentException if any given type is invalid, as described above
719722 */
720- AnnotationBuilder member (String name , Type ... values );
723+ AnnotationBuilder member (String name , Type [] values );
721724
722725 /**
723726 * Adds an annotation-valued annotation member with given {@code name}.
@@ -735,7 +738,7 @@ default AnnotationBuilder value(Annotation... values) {
735738 * @param values the annotation array, must not be {@code null} or contain {@code null}
736739 * @return this {@code AnnotationBuilder}
737740 */
738- AnnotationBuilder member (String name , AnnotationInfo ... values );
741+ AnnotationBuilder member (String name , AnnotationInfo [] values );
739742
740743 /**
741744 * Adds an annotation-valued annotation member with given {@code name}.
@@ -753,13 +756,14 @@ default AnnotationBuilder value(Annotation... values) {
753756 * @param values the annotation array, must not be {@code null} or contain {@code null}
754757 * @return this {@code AnnotationBuilder}
755758 */
756- AnnotationBuilder member (String name , Annotation ... values );
759+ AnnotationBuilder member (String name , Annotation [] values );
757760
758761 /**
759762 * Returns an {@link AnnotationInfo} that includes all annotation members defined by previous method calls
760763 * on this builder. After {@code build()} is called, this builder instance should be discarded.
761764 *
762765 * @return the built {@link AnnotationInfo}, never {@code null}
766+ * @throws IllegalStateException if a value of some annotation member wasn't set
763767 */
764768 AnnotationInfo build ();
765769}
0 commit comments