| /* |
| * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. |
| * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| * |
| * This code is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License version 2 only, as |
| * published by the Free Software Foundation. |
| * |
| * This code is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| * version 2 for more details (a copy is included in the LICENSE file that |
| * accompanied this code). |
| * |
| * You should have received a copy of the GNU General Public License version |
| * 2 along with this work; if not, write to the Free Software Foundation, |
| * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| * |
| * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| * or visit www.oracle.com if you need additional information or have any |
| * questions. |
| */ |
| |
| import java.lang.annotation.*; |
| |
| %REPEATABLE% |
| @Retention(RetentionPolicy.%POLICY%) |
| public @interface AnnotationDefault { |
| @ExpectedValues(tag = 'Z', name = "booleanDefault", values = "1") |
| boolean booleanDefault() default true; |
| |
| @ExpectedValues(tag = 'C', name = "charDefault", values = "1") |
| char charDefault() default 1; |
| |
| @ExpectedValues(tag = 'B', name = "byteDefault", values = "1") |
| byte byteDefault() default 1; |
| |
| @ExpectedValues(tag = 'S', name = "shortDefault", values = "1") |
| short shortDefault() default 1; |
| |
| @ExpectedValues(tag = 'I', name = "intDefault", values = "1") |
| int intDefault() default 1; |
| |
| @ExpectedValues(tag = 'J', name = "longDefault", values = "1") |
| long longDefault() default 1; |
| |
| @ExpectedValues(tag = 'F', name = "floatDefault", values = "1.0") |
| float floatDefault() default 1.0f; |
| |
| @ExpectedValues(tag = 'D', name = "doubleDefault", values = "1.0") |
| double doubleDefault() default 1.0; |
| |
| @ExpectedValues(tag = 's', name = "stringDefault", values = "DEFAULT_VALUE") |
| String stringDefault() default "DEFAULT_VALUE"; |
| |
| @ExpectedValues(tag = 'e', name = "enumDefault", values = {"LAnnotationDefault$DefaultValues;", "VALUE1"}) |
| DefaultValues enumDefault() default DefaultValues.VALUE1; |
| |
| @ExpectedValues(tag = 'c', name = "clazzDefault1", values = "V") |
| Class<?> clazzDefault1() default void.class; |
| |
| @ExpectedValues(tag = 'c', name = "clazzDefault2", values = "Ljava/lang/Void;") |
| Class<?> clazzDefault2() default Void.class; |
| |
| @ExpectedValues(tag = '[', name = "arrayDefault1", values = {"1", "2", "3"}) |
| int[] arrayDefault1() default {1, 2, 3}; |
| |
| @ExpectedValues(tag = '[', name = "arrayDefault2", values = {"DEFAULT_VALUE_1", "DEFAULT_VALUE_2", "DEFAULT_VALUE_3"}) |
| String[] arrayDefault2() default {"DEFAULT_VALUE_1", "DEFAULT_VALUE_2", "DEFAULT_VALUE_3"}; |
| |
| @ExpectedValues(tag = '[', name = "arrayOfEnums", values = {"LAnnotationDefault$DefaultValues;", "VALUE2", |
| "LAnnotationDefault$DefaultValues;", "VALUE3"}) |
| DefaultValues[] arrayOfEnums() default {DefaultValues.VALUE2, DefaultValues.VALUE3}; |
| |
| @ExpectedValues(tag = '[', name = "arrayOfAnno", values = {"LAnnotationDefault$DefaultAnnotation;", "value", "DEFAULT_VALUE1", |
| "LAnnotationDefault$DefaultAnnotation;", "value", "DEFAULT_VALUE2"}) |
| DefaultAnnotation[] arrayOfAnno() default {@DefaultAnnotation(value = "DEFAULT_VALUE1"), @DefaultAnnotation(value = "DEFAULT_VALUE2")}; |
| |
| @ExpectedValues(tag = '@', name = "annoDefault", values = {"LAnnotationDefault$DefaultAnnotation;", "value", "DEFAULT_VALUE"}) |
| DefaultAnnotation annoDefault() default @DefaultAnnotation(value = "DEFAULT_VALUE"); |
| |
| @interface DefaultAnnotation { |
| String value() default "NOT_DEFAULT_VALUE"; |
| } |
| |
| enum DefaultValues { |
| VALUE1, VALUE2, VALUE3 |
| } |
| } |
| |
| @Retention(RetentionPolicy.%POLICY%) |
| @interface Container { |
| AnnotationDefault[] value(); |
| } |