/* * Copyright (c) 2003, 2004, 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. */ /* * @test * @bug 4906359 4963461 4965058 4965039 4986770 * @summary Unit test for annotation reading * @author Josh Bloch */ import static java.lang.annotation.RetentionPolicy.RUNTIME; import java.lang.annotation.*; import java.util.*; import java.lang.reflect.*; import java.io.*; public class UnitTest { private static final Class[] X = new Class[0]; private static final Class[] Y = { int.class }; static int numTests = 0; public static void main(String[] args) throws Exception { // *** TESTS ON ANNOTATED METHODS *** // MULTIMEMBER SCALAR TYPES ON METHOD checkScalarTypes(UnitTest.class.getMethod("scalarTypesMethod", X)); checkScalarTypesOverrideDefault(UnitTest.class.getMethod("scalarTypesOverrideDefaultMethod", X)); checkScalarTypesAcceptDefault(UnitTest.class.getMethod("scalarTypesAcceptDefaultMethod", X)); // MULTIMEMBER ARRAY TYPES ON METHOD checkArrayTypes0(UnitTest.class.getMethod("emptyArrayTypesMethod", X)); checkArrayTypes1(UnitTest.class.getMethod("singleElementArrayTypesMethod", X)); checkArrayTypes2(UnitTest.class.getMethod("twoElementArrayTypesMethod", X)); checkArrayTypesAcceptDefault(UnitTest.class.getMethod("arrayTypesAcceptDefaultMethod", X)); checkArrayTypesOverrideDefault(UnitTest.class.getMethod("arrayTypesOverrideDefaultMethod", X)); // MARKER TYPE ON METHOD checkMarker(UnitTest.class.getMethod("markerMethod", X)); // SINGLE-MEMBER SCALAR TYPES ON METHOD checkSingleMemberByte(UnitTest.class.getMethod("SingleMemberByte", X)); checkSingleMemberShort(UnitTest.class.getMethod("SingleMemberShort", X)); checkSingleMemberInt(UnitTest.class.getMethod("SingleMemberInt", X)); checkSingleMemberLong(UnitTest.class.getMethod("SingleMemberLong", X)); checkSingleMemberChar(UnitTest.class.getMethod("SingleMemberChar", X)); checkSingleMemberFloat(UnitTest.class.getMethod("SingleMemberFloat", X)); checkSingleMemberDouble(UnitTest.class.getMethod("SingleMemberDouble", X)); checkSingleMemberBoolean(UnitTest.class.getMethod("SingleMemberBoolean", X)); checkSingleMemberString(UnitTest.class.getMethod("SingleMemberString", X)); checkSingleMemberClass(UnitTest.class.getMethod("SingleMemberClass", X)); checkSingleMemberEnum(UnitTest.class.getMethod("SingleMemberEnum", X)); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE ON METHOD checkSingleMemberByteOvrdDef(UnitTest.class.getMethod("SingleMemberByteOvrdDef", X)); checkSingleMemberShortOvrdDef(UnitTest.class.getMethod("SingleMemberShortOvrdDef", X)); checkSingleMemberIntOvrdDef(UnitTest.class.getMethod("SingleMemberIntOvrdDef", X)); checkSingleMemberLongOvrdDef(UnitTest.class.getMethod("SingleMemberLongOvrdDef", X)); checkSingleMemberCharOvrdDef(UnitTest.class.getMethod("SingleMemberCharOvrdDef", X)); checkSingleMemberFloatOvrdDef(UnitTest.class.getMethod("SingleMemberFloatOvrdDef", X)); checkSingleMemberDoubleOvrdDef(UnitTest.class.getMethod("SingleMemberDoubleOvrdDef", X)); checkSingleMemberBooleanOvrdDef(UnitTest.class.getMethod("SingleMemberBooleanOvrdDef", X)); checkSingleMemberStringOvrdDef(UnitTest.class.getMethod("SingleMemberStringOvrdDef", X)); checkSingleMemberClassOvrdDef(UnitTest.class.getMethod("SingleMemberClassOvrdDef", X)); checkSingleMemberEnumOvrdDef(UnitTest.class.getMethod("SingleMemberEnumOvrdDef", X)); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT ON METHOD checkSingleMemberByteAcceptDef(UnitTest.class.getMethod("SingleMemberByteAcceptDef", X)); checkSingleMemberShortAcceptDef(UnitTest.class.getMethod("SingleMemberShortAcceptDef", X)); checkSingleMemberIntAcceptDef(UnitTest.class.getMethod("SingleMemberIntAcceptDef", X)); checkSingleMemberLongAcceptDef(UnitTest.class.getMethod("SingleMemberLongAcceptDef", X)); checkSingleMemberCharAcceptDef(UnitTest.class.getMethod("SingleMemberCharAcceptDef", X)); checkSingleMemberFloatAcceptDef(UnitTest.class.getMethod("SingleMemberFloatAcceptDef", X)); checkSingleMemberDoubleAcceptDef(UnitTest.class.getMethod("SingleMemberDoubleAcceptDef", X)); checkSingleMemberBooleanAcceptDef(UnitTest.class.getMethod("SingleMemberBooleanAcceptDef", X)); checkSingleMemberStringAcceptDef(UnitTest.class.getMethod("SingleMemberStringAcceptDef", X)); checkSingleMemberClassAcceptDef(UnitTest.class.getMethod("SingleMemberClassAcceptDef", X)); checkSingleMemberEnumAcceptDef(UnitTest.class.getMethod("SingleMemberEnumAcceptDef", X)); // SINGLE-MEMBER ARRAY TYPES (EMPTY ARRAY) ON METHOD checkSingleMemberByteArrEmpty(UnitTest.class.getMethod("SingleMemberByteArrEmpty", X)); checkSingleMemberShortArrEmpty(UnitTest.class.getMethod("SingleMemberShortArrEmpty", X)); checkSingleMemberIntArrEmpty(UnitTest.class.getMethod("SingleMemberIntArrEmpty", X)); checkSingleMemberLongArrEmpty(UnitTest.class.getMethod("SingleMemberLongArrEmpty", X)); checkSingleMemberCharArrEmpty(UnitTest.class.getMethod("SingleMemberCharArrEmpty", X)); checkSingleMemberFloatArrEmpty(UnitTest.class.getMethod("SingleMemberFloatArrEmpty", X)); checkSingleMemberDoubleArrEmpty(UnitTest.class.getMethod("SingleMemberDoubleArrEmpty", X)); checkSingleMemberBooleanArrEmpty(UnitTest.class.getMethod("SingleMemberBooleanArrEmpty", X)); checkSingleMemberStringArrEmpty(UnitTest.class.getMethod("SingleMemberStringArrEmpty", X)); checkSingleMemberClassArrEmpty(UnitTest.class.getMethod("SingleMemberClassArrEmpty", X)); checkSingleMemberEnumArrEmpty(UnitTest.class.getMethod("SingleMemberEnumArrEmpty", X)); // SINGLE-MEMBER ARRAY TYPES (ONE-ELEMENT ARRAY) ON METHOD checkSingleMemberByteArrOne(UnitTest.class.getMethod("SingleMemberByteArrOne", X)); checkSingleMemberShortArrOne(UnitTest.class.getMethod("SingleMemberShortArrOne", X)); checkSingleMemberIntArrOne(UnitTest.class.getMethod("SingleMemberIntArrOne", X)); checkSingleMemberLongArrOne(UnitTest.class.getMethod("SingleMemberLongArrOne", X)); checkSingleMemberCharArrOne(UnitTest.class.getMethod("SingleMemberCharArrOne", X)); checkSingleMemberFloatArrOne(UnitTest.class.getMethod("SingleMemberFloatArrOne", X)); checkSingleMemberDoubleArrOne(UnitTest.class.getMethod("SingleMemberDoubleArrOne", X)); checkSingleMemberBooleanArrOne(UnitTest.class.getMethod("SingleMemberBooleanArrOne", X)); checkSingleMemberStringArrOne(UnitTest.class.getMethod("SingleMemberStringArrOne", X)); checkSingleMemberClassArrOne(UnitTest.class.getMethod("SingleMemberClassArrOne", X)); checkSingleMemberEnumArrOne(UnitTest.class.getMethod("SingleMemberEnumArrOne", X)); // SINGLE-MEMBER ARRAY TYPES (TWO-ELEMENT ARRAY) ON METHOD checkSingleMemberByteArrTwo(UnitTest.class.getMethod("SingleMemberByteArrTwo", X)); checkSingleMemberShortArrTwo(UnitTest.class.getMethod("SingleMemberShortArrTwo", X)); checkSingleMemberIntArrTwo(UnitTest.class.getMethod("SingleMemberIntArrTwo", X)); checkSingleMemberLongArrTwo(UnitTest.class.getMethod("SingleMemberLongArrTwo", X)); checkSingleMemberCharArrTwo(UnitTest.class.getMethod("SingleMemberCharArrTwo", X)); checkSingleMemberFloatArrTwo(UnitTest.class.getMethod("SingleMemberFloatArrTwo", X)); checkSingleMemberDoubleArrTwo(UnitTest.class.getMethod("SingleMemberDoubleArrTwo", X)); checkSingleMemberBooleanArrTwo(UnitTest.class.getMethod("SingleMemberBooleanArrTwo", X)); checkSingleMemberStringArrTwo(UnitTest.class.getMethod("SingleMemberStringArrTwo", X)); checkSingleMemberClassArrTwo(UnitTest.class.getMethod("SingleMemberClassArrTwo", X)); checkSingleMemberEnumArrTwo(UnitTest.class.getMethod("SingleMemberEnumArrTwo", X)); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (OVERRIDE)ON METHOD checkSingleMemberByteArrOvrdDef(UnitTest.class.getMethod("SingleMemberByteArrOvrdDef", X)); checkSingleMemberShortArrOvrdDef(UnitTest.class.getMethod("SingleMemberShortArrOvrdDef", X)); checkSingleMemberIntArrOvrdDef(UnitTest.class.getMethod("SingleMemberIntArrOvrdDef", X)); checkSingleMemberLongArrOvrdDef(UnitTest.class.getMethod("SingleMemberLongArrOvrdDef", X)); checkSingleMemberCharArrOvrdDef(UnitTest.class.getMethod("SingleMemberCharArrOvrdDef", X)); checkSingleMemberFloatArrOvrdDef(UnitTest.class.getMethod("SingleMemberFloatArrOvrdDef", X)); checkSingleMemberDoubleArrOvrdDef(UnitTest.class.getMethod("SingleMemberDoubleArrOvrdDef", X)); checkSingleMemberBooleanArrOvrdDef(UnitTest.class.getMethod("SingleMemberBooleanArrOvrdDef", X)); checkSingleMemberStringArrOvrdDef(UnitTest.class.getMethod("SingleMemberStringArrOvrdDef", X)); checkSingleMemberClassArrOvrdDef(UnitTest.class.getMethod("SingleMemberClassArrOvrdDef", X)); checkSingleMemberEnumArrOvrdDef(UnitTest.class.getMethod("SingleMemberEnumArrOvrdDef", X)); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (ACCEPT)ON METHOD checkSingleMemberByteArrAcceptDef(UnitTest.class.getMethod("SingleMemberByteArrAcceptDef", X)); checkSingleMemberShortArrAcceptDef(UnitTest.class.getMethod("SingleMemberShortArrAcceptDef", X)); checkSingleMemberIntArrAcceptDef(UnitTest.class.getMethod("SingleMemberIntArrAcceptDef", X)); checkSingleMemberLongArrAcceptDef(UnitTest.class.getMethod("SingleMemberLongArrAcceptDef", X)); checkSingleMemberCharArrAcceptDef(UnitTest.class.getMethod("SingleMemberCharArrAcceptDef", X)); checkSingleMemberFloatArrAcceptDef(UnitTest.class.getMethod("SingleMemberFloatArrAcceptDef", X)); checkSingleMemberDoubleArrAcceptDef(UnitTest.class.getMethod("SingleMemberDoubleArrAcceptDef", X)); checkSingleMemberBooleanArrAcceptDef(UnitTest.class.getMethod("SingleMemberBooleanArrAcceptDef", X)); checkSingleMemberStringArrAcceptDef(UnitTest.class.getMethod("SingleMemberStringArrAcceptDef", X)); checkSingleMemberClassArrAcceptDef(UnitTest.class.getMethod("SingleMemberClassArrAcceptDef", X)); checkSingleMemberEnumArrAcceptDef(UnitTest.class.getMethod("SingleMemberEnumArrAcceptDef", X)); // *** TESTS ON ANNOTATED FIELDS *** // MULTIMEMBER SCALAR TYPES ON FIELD checkScalarTypes(UnitTest.class.getField("scalarTypesField")); checkScalarTypesAcceptDefault(UnitTest.class.getField("scalarTypesAcceptDefaultField")); checkScalarTypesOverrideDefault(UnitTest.class.getField("scalarTypesOverrideDefaultField")); // MULTIMEMBER ARRAY TYPES ON FIELD checkArrayTypes0(UnitTest.class.getField("emptyArrayTypesField")); checkArrayTypes1(UnitTest.class.getField("singleElementArrayTypesField")); checkArrayTypes2(UnitTest.class.getField("twoElementArrayTypesField")); checkArrayTypesAcceptDefault(UnitTest.class.getField("arrayTypesAcceptDefaultField")); checkArrayTypesOverrideDefault(UnitTest.class.getField("arrayTypesOverrideDefaultField")); // MARKER TYPE ON FIELD checkMarker(UnitTest.class.getField("markerField")); // SINGLE-MEMBER SCALAR TYPES ON FIELD checkSingleMemberByte(UnitTest.class.getField("SingleMemberByteField")); checkSingleMemberShort(UnitTest.class.getField("SingleMemberShortField")); checkSingleMemberInt(UnitTest.class.getField("SingleMemberIntField")); checkSingleMemberLong(UnitTest.class.getField("SingleMemberLongField")); checkSingleMemberChar(UnitTest.class.getField("SingleMemberCharField")); checkSingleMemberFloat(UnitTest.class.getField("SingleMemberFloatField")); checkSingleMemberDouble(UnitTest.class.getField("SingleMemberDoubleField")); checkSingleMemberBoolean(UnitTest.class.getField("SingleMemberBooleanField")); checkSingleMemberString(UnitTest.class.getField("SingleMemberStringField")); checkSingleMemberClass(UnitTest.class.getField("SingleMemberClassField")); checkSingleMemberEnum(UnitTest.class.getField("SingleMemberEnumField")); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE ON FIELD checkSingleMemberByteOvrdDef(UnitTest.class.getField("SingleMemberByteOvrdDefField")); checkSingleMemberShortOvrdDef(UnitTest.class.getField("SingleMemberShortOvrdDefField")); checkSingleMemberIntOvrdDef(UnitTest.class.getField("SingleMemberIntOvrdDefField")); checkSingleMemberLongOvrdDef(UnitTest.class.getField("SingleMemberLongOvrdDefField")); checkSingleMemberCharOvrdDef(UnitTest.class.getField("SingleMemberCharOvrdDefField")); checkSingleMemberFloatOvrdDef(UnitTest.class.getField("SingleMemberFloatOvrdDefField")); checkSingleMemberDoubleOvrdDef(UnitTest.class.getField("SingleMemberDoubleOvrdDefField")); checkSingleMemberBooleanOvrdDef(UnitTest.class.getField("SingleMemberBooleanOvrdDefField")); checkSingleMemberStringOvrdDef(UnitTest.class.getField("SingleMemberStringOvrdDefField")); checkSingleMemberClassOvrdDef(UnitTest.class.getField("SingleMemberClassOvrdDefField")); checkSingleMemberEnumOvrdDef(UnitTest.class.getField("SingleMemberEnumOvrdDefField")); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT ON FIELD checkSingleMemberByteAcceptDef(UnitTest.class.getField("SingleMemberByteAcceptDefField")); checkSingleMemberShortAcceptDef(UnitTest.class.getField("SingleMemberShortAcceptDefField")); checkSingleMemberIntAcceptDef(UnitTest.class.getField("SingleMemberIntAcceptDefField")); checkSingleMemberLongAcceptDef(UnitTest.class.getField("SingleMemberLongAcceptDefField")); checkSingleMemberCharAcceptDef(UnitTest.class.getField("SingleMemberCharAcceptDefField")); checkSingleMemberFloatAcceptDef(UnitTest.class.getField("SingleMemberFloatAcceptDefField")); checkSingleMemberDoubleAcceptDef(UnitTest.class.getField("SingleMemberDoubleAcceptDefField")); checkSingleMemberBooleanAcceptDef(UnitTest.class.getField("SingleMemberBooleanAcceptDefField")); checkSingleMemberStringAcceptDef(UnitTest.class.getField("SingleMemberStringAcceptDefField")); checkSingleMemberClassAcceptDef(UnitTest.class.getField("SingleMemberClassAcceptDefField")); checkSingleMemberEnumAcceptDef(UnitTest.class.getField("SingleMemberEnumAcceptDefField")); // SINGLE-MEMBER ARRAY TYPES (EMPTY ARRAY) ON FIELD checkSingleMemberByteArrEmpty(UnitTest.class.getField("SingleMemberByteArrEmptyField")); checkSingleMemberShortArrEmpty(UnitTest.class.getField("SingleMemberShortArrEmptyField")); checkSingleMemberIntArrEmpty(UnitTest.class.getField("SingleMemberIntArrEmptyField")); checkSingleMemberLongArrEmpty(UnitTest.class.getField("SingleMemberLongArrEmptyField")); checkSingleMemberCharArrEmpty(UnitTest.class.getField("SingleMemberCharArrEmptyField")); checkSingleMemberFloatArrEmpty(UnitTest.class.getField("SingleMemberFloatArrEmptyField")); checkSingleMemberDoubleArrEmpty(UnitTest.class.getField("SingleMemberDoubleArrEmptyField")); checkSingleMemberBooleanArrEmpty(UnitTest.class.getField("SingleMemberBooleanArrEmptyField")); checkSingleMemberStringArrEmpty(UnitTest.class.getField("SingleMemberStringArrEmptyField")); checkSingleMemberClassArrEmpty(UnitTest.class.getField("SingleMemberClassArrEmptyField")); checkSingleMemberEnumArrEmpty(UnitTest.class.getField("SingleMemberEnumArrEmptyField")); // SINGLE-MEMBER ARRAY TYPES (ONE-ELEMENT ARRAY) ON FIELD checkSingleMemberByteArrOne(UnitTest.class.getField("SingleMemberByteArrOneField")); checkSingleMemberShortArrOne(UnitTest.class.getField("SingleMemberShortArrOneField")); checkSingleMemberIntArrOne(UnitTest.class.getField("SingleMemberIntArrOneField")); checkSingleMemberLongArrOne(UnitTest.class.getField("SingleMemberLongArrOneField")); checkSingleMemberCharArrOne(UnitTest.class.getField("SingleMemberCharArrOneField")); checkSingleMemberFloatArrOne(UnitTest.class.getField("SingleMemberFloatArrOneField")); checkSingleMemberDoubleArrOne(UnitTest.class.getField("SingleMemberDoubleArrOneField")); checkSingleMemberBooleanArrOne(UnitTest.class.getField("SingleMemberBooleanArrOneField")); checkSingleMemberStringArrOne(UnitTest.class.getField("SingleMemberStringArrOneField")); checkSingleMemberClassArrOne(UnitTest.class.getField("SingleMemberClassArrOneField")); checkSingleMemberEnumArrOne(UnitTest.class.getField("SingleMemberEnumArrOneField")); // SINGLE-MEMBER ARRAY TYPES (TWO-ELEMENT ARRAY) ON FIELD checkSingleMemberByteArrTwo(UnitTest.class.getField("SingleMemberByteArrTwoField")); checkSingleMemberShortArrTwo(UnitTest.class.getField("SingleMemberShortArrTwoField")); checkSingleMemberIntArrTwo(UnitTest.class.getField("SingleMemberIntArrTwoField")); checkSingleMemberLongArrTwo(UnitTest.class.getField("SingleMemberLongArrTwoField")); checkSingleMemberCharArrTwo(UnitTest.class.getField("SingleMemberCharArrTwoField")); checkSingleMemberFloatArrTwo(UnitTest.class.getField("SingleMemberFloatArrTwoField")); checkSingleMemberDoubleArrTwo(UnitTest.class.getField("SingleMemberDoubleArrTwoField")); checkSingleMemberBooleanArrTwo(UnitTest.class.getField("SingleMemberBooleanArrTwoField")); checkSingleMemberStringArrTwo(UnitTest.class.getField("SingleMemberStringArrTwoField")); checkSingleMemberClassArrTwo(UnitTest.class.getField("SingleMemberClassArrTwoField")); checkSingleMemberEnumArrTwo(UnitTest.class.getField("SingleMemberEnumArrTwoField")); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (OVERRIDE)ON FIELD checkSingleMemberByteArrOvrdDef(UnitTest.class.getField("SingleMemberByteArrOvrdDefField")); checkSingleMemberShortArrOvrdDef(UnitTest.class.getField("SingleMemberShortArrOvrdDefField")); checkSingleMemberIntArrOvrdDef(UnitTest.class.getField("SingleMemberIntArrOvrdDefField")); checkSingleMemberLongArrOvrdDef(UnitTest.class.getField("SingleMemberLongArrOvrdDefField")); checkSingleMemberCharArrOvrdDef(UnitTest.class.getField("SingleMemberCharArrOvrdDefField")); checkSingleMemberFloatArrOvrdDef(UnitTest.class.getField("SingleMemberFloatArrOvrdDefField")); checkSingleMemberDoubleArrOvrdDef(UnitTest.class.getField("SingleMemberDoubleArrOvrdDefField")); checkSingleMemberBooleanArrOvrdDef(UnitTest.class.getField("SingleMemberBooleanArrOvrdDefField")); checkSingleMemberStringArrOvrdDef(UnitTest.class.getField("SingleMemberStringArrOvrdDefField")); checkSingleMemberClassArrOvrdDef(UnitTest.class.getField("SingleMemberClassArrOvrdDefField")); checkSingleMemberEnumArrOvrdDef(UnitTest.class.getField("SingleMemberEnumArrOvrdDefField")); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (ACCEPT)ON FIELD checkSingleMemberByteArrAcceptDef(UnitTest.class.getField("SingleMemberByteArrAcceptDefField")); checkSingleMemberShortArrAcceptDef(UnitTest.class.getField("SingleMemberShortArrAcceptDefField")); checkSingleMemberIntArrAcceptDef(UnitTest.class.getField("SingleMemberIntArrAcceptDefField")); checkSingleMemberLongArrAcceptDef(UnitTest.class.getField("SingleMemberLongArrAcceptDefField")); checkSingleMemberCharArrAcceptDef(UnitTest.class.getField("SingleMemberCharArrAcceptDefField")); checkSingleMemberFloatArrAcceptDef(UnitTest.class.getField("SingleMemberFloatArrAcceptDefField")); checkSingleMemberDoubleArrAcceptDef(UnitTest.class.getField("SingleMemberDoubleArrAcceptDefField")); checkSingleMemberBooleanArrAcceptDef(UnitTest.class.getField("SingleMemberBooleanArrAcceptDefField")); checkSingleMemberStringArrAcceptDef(UnitTest.class.getField("SingleMemberStringArrAcceptDefField")); checkSingleMemberClassArrAcceptDef(UnitTest.class.getField("SingleMemberClassArrAcceptDefField")); checkSingleMemberEnumArrAcceptDef(UnitTest.class.getField("SingleMemberEnumArrAcceptDefField")); // *** TESTS ON ANNOTATED ENUM CONSTS *** // MULTIMEMBER SCALAR TYPES ON ENUM CONST checkScalarTypes(TestType.class.getField("scalarTypesField")); checkScalarTypesAcceptDefault(TestType.class.getField("scalarTypesAcceptDefaultField")); checkScalarTypesOverrideDefault(TestType.class.getField("scalarTypesOverrideDefaultField")); // MULTIMEMBER ARRAY TYPES ON ENUM CONST checkArrayTypes0(TestType.class.getField("emptyArrayTypesField")); checkArrayTypes1(TestType.class.getField("singleElementArrayTypesField")); checkArrayTypes2(TestType.class.getField("twoElementArrayTypesField")); checkArrayTypesAcceptDefault(TestType.class.getField("arrayTypesAcceptDefaultField")); checkArrayTypesOverrideDefault(TestType.class.getField("arrayTypesOverrideDefaultField")); // MARKER TYPE ON CLASS checkMarker(TestType.class.getField("marker")); // SINGLE-MEMBER SCALAR TYPES ON CLASS checkSingleMemberByte(TestType.class.getField("SingleMemberByte")); checkSingleMemberShort(TestType.class.getField("SingleMemberShort")); checkSingleMemberInt(TestType.class.getField("SingleMemberInt")); checkSingleMemberLong(TestType.class.getField("SingleMemberLong")); checkSingleMemberChar(TestType.class.getField("SingleMemberChar")); checkSingleMemberFloat(TestType.class.getField("SingleMemberFloat")); checkSingleMemberDouble(TestType.class.getField("SingleMemberDouble")); checkSingleMemberBoolean(TestType.class.getField("SingleMemberBoolean")); checkSingleMemberString(TestType.class.getField("SingleMemberString")); checkSingleMemberClass(TestType.class.getField("SingleMemberClass")); checkSingleMemberEnum(TestType.class.getField("SingleMemberEnum")); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE ON CLASS checkSingleMemberByteOvrdDef(TestType.class.getField("SingleMemberByteOvrdDef")); checkSingleMemberShortOvrdDef(TestType.class.getField("SingleMemberShortOvrdDef")); checkSingleMemberIntOvrdDef(TestType.class.getField("SingleMemberIntOvrdDef")); checkSingleMemberLongOvrdDef(TestType.class.getField("SingleMemberLongOvrdDef")); checkSingleMemberCharOvrdDef(TestType.class.getField("SingleMemberCharOvrdDef")); checkSingleMemberFloatOvrdDef(TestType.class.getField("SingleMemberFloatOvrdDef")); checkSingleMemberDoubleOvrdDef(TestType.class.getField("SingleMemberDoubleOvrdDef")); checkSingleMemberBooleanOvrdDef(TestType.class.getField("SingleMemberBooleanOvrdDef")); checkSingleMemberStringOvrdDef(TestType.class.getField("SingleMemberStringOvrdDef")); checkSingleMemberClassOvrdDef(TestType.class.getField("SingleMemberClassOvrdDef")); checkSingleMemberEnumOvrdDef(TestType.class.getField("SingleMemberEnumOvrdDef")); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT ON CLASS checkSingleMemberByteAcceptDef(TestType.class.getField("SingleMemberByteAcceptDef")); checkSingleMemberShortAcceptDef(TestType.class.getField("SingleMemberShortAcceptDef")); checkSingleMemberIntAcceptDef(TestType.class.getField("SingleMemberIntAcceptDef")); checkSingleMemberLongAcceptDef(TestType.class.getField("SingleMemberLongAcceptDef")); checkSingleMemberCharAcceptDef(TestType.class.getField("SingleMemberCharAcceptDef")); checkSingleMemberFloatAcceptDef(TestType.class.getField("SingleMemberFloatAcceptDef")); checkSingleMemberDoubleAcceptDef(TestType.class.getField("SingleMemberDoubleAcceptDef")); checkSingleMemberBooleanAcceptDef(TestType.class.getField("SingleMemberBooleanAcceptDef")); checkSingleMemberStringAcceptDef(TestType.class.getField("SingleMemberStringAcceptDef")); checkSingleMemberClassAcceptDef(TestType.class.getField("SingleMemberClassAcceptDef")); checkSingleMemberEnumAcceptDef(TestType.class.getField("SingleMemberEnumAcceptDef")); // SINGLE-MEMBER ARRAY TYPES (TestType.class.getField("EMPTY ARRAY) ON CLASS checkSingleMemberByteArrEmpty(TestType.class.getField("SingleMemberByteArrEmpty")); checkSingleMemberShortArrEmpty(TestType.class.getField("SingleMemberShortArrEmpty")); checkSingleMemberIntArrEmpty(TestType.class.getField("SingleMemberIntArrEmpty")); checkSingleMemberLongArrEmpty(TestType.class.getField("SingleMemberLongArrEmpty")); checkSingleMemberCharArrEmpty(TestType.class.getField("SingleMemberCharArrEmpty")); checkSingleMemberFloatArrEmpty(TestType.class.getField("SingleMemberFloatArrEmpty")); checkSingleMemberDoubleArrEmpty(TestType.class.getField("SingleMemberDoubleArrEmpty")); checkSingleMemberBooleanArrEmpty(TestType.class.getField("SingleMemberBooleanArrEmpty")); checkSingleMemberStringArrEmpty(TestType.class.getField("SingleMemberStringArrEmpty")); checkSingleMemberClassArrEmpty(TestType.class.getField("SingleMemberClassArrEmpty")); checkSingleMemberEnumArrEmpty(TestType.class.getField("SingleMemberEnumArrEmpty")); // SINGLE-MEMBER ARRAY TYPES (TestType.class.getField("ONE-ELEMENT ARRAY) ON CLASS checkSingleMemberByteArrOne(TestType.class.getField("SingleMemberByteArrOne")); checkSingleMemberShortArrOne(TestType.class.getField("SingleMemberShortArrOne")); checkSingleMemberIntArrOne(TestType.class.getField("SingleMemberIntArrOne")); checkSingleMemberLongArrOne(TestType.class.getField("SingleMemberLongArrOne")); checkSingleMemberCharArrOne(TestType.class.getField("SingleMemberCharArrOne")); checkSingleMemberFloatArrOne(TestType.class.getField("SingleMemberFloatArrOne")); checkSingleMemberDoubleArrOne(TestType.class.getField("SingleMemberDoubleArrOne")); checkSingleMemberBooleanArrOne(TestType.class.getField("SingleMemberBooleanArrOne")); checkSingleMemberStringArrOne(TestType.class.getField("SingleMemberStringArrOne")); checkSingleMemberClassArrOne(TestType.class.getField("SingleMemberClassArrOne")); checkSingleMemberEnumArrOne(TestType.class.getField("SingleMemberEnumArrOne")); // SINGLE-MEMBER ARRAY TYPES (TestType.class.getField("TWO-ELEMENT ARRAY) ON CLASS checkSingleMemberByteArrTwo(TestType.class.getField("SingleMemberByteArrTwo")); checkSingleMemberShortArrTwo(TestType.class.getField("SingleMemberShortArrTwo")); checkSingleMemberIntArrTwo(TestType.class.getField("SingleMemberIntArrTwo")); checkSingleMemberLongArrTwo(TestType.class.getField("SingleMemberLongArrTwo")); checkSingleMemberCharArrTwo(TestType.class.getField("SingleMemberCharArrTwo")); checkSingleMemberFloatArrTwo(TestType.class.getField("SingleMemberFloatArrTwo")); checkSingleMemberDoubleArrTwo(TestType.class.getField("SingleMemberDoubleArrTwo")); checkSingleMemberBooleanArrTwo(TestType.class.getField("SingleMemberBooleanArrTwo")); checkSingleMemberStringArrTwo(TestType.class.getField("SingleMemberStringArrTwo")); checkSingleMemberClassArrTwo(TestType.class.getField("SingleMemberClassArrTwo")); checkSingleMemberEnumArrTwo(TestType.class.getField("SingleMemberEnumArrTwo")); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (TestType.class.getField("OVERRIDE)ON CLASS checkSingleMemberByteArrOvrdDef(TestType.class.getField("SingleMemberByteArrOvrdDef")); checkSingleMemberShortArrOvrdDef(TestType.class.getField("SingleMemberShortArrOvrdDef")); checkSingleMemberIntArrOvrdDef(TestType.class.getField("SingleMemberIntArrOvrdDef")); checkSingleMemberLongArrOvrdDef(TestType.class.getField("SingleMemberLongArrOvrdDef")); checkSingleMemberCharArrOvrdDef(TestType.class.getField("SingleMemberCharArrOvrdDef")); checkSingleMemberFloatArrOvrdDef(TestType.class.getField("SingleMemberFloatArrOvrdDef")); checkSingleMemberDoubleArrOvrdDef(TestType.class.getField("SingleMemberDoubleArrOvrdDef")); checkSingleMemberBooleanArrOvrdDef(TestType.class.getField("SingleMemberBooleanArrOvrdDef")); checkSingleMemberStringArrOvrdDef(TestType.class.getField("SingleMemberStringArrOvrdDef")); checkSingleMemberClassArrOvrdDef(TestType.class.getField("SingleMemberClassArrOvrdDef")); checkSingleMemberEnumArrOvrdDef(TestType.class.getField("SingleMemberEnumArrOvrdDef")); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (TestType.class.getField("ACCEPT)ON CLASS checkSingleMemberByteArrAcceptDef(TestType.class.getField("SingleMemberByteArrAcceptDef")); checkSingleMemberShortArrAcceptDef(TestType.class.getField("SingleMemberShortArrAcceptDef")); checkSingleMemberIntArrAcceptDef(TestType.class.getField("SingleMemberIntArrAcceptDef")); checkSingleMemberLongArrAcceptDef(TestType.class.getField("SingleMemberLongArrAcceptDef")); checkSingleMemberCharArrAcceptDef(TestType.class.getField("SingleMemberCharArrAcceptDef")); checkSingleMemberFloatArrAcceptDef(TestType.class.getField("SingleMemberFloatArrAcceptDef")); checkSingleMemberDoubleArrAcceptDef(TestType.class.getField("SingleMemberDoubleArrAcceptDef")); checkSingleMemberBooleanArrAcceptDef(TestType.class.getField("SingleMemberBooleanArrAcceptDef")); checkSingleMemberStringArrAcceptDef(TestType.class.getField("SingleMemberStringArrAcceptDef")); checkSingleMemberClassArrAcceptDef(TestType.class.getField("SingleMemberClassArrAcceptDef")); checkSingleMemberEnumArrAcceptDef(TestType.class.getField("SingleMemberEnumArrAcceptDef")); // *** TESTS ON ANNOTATED CONSTRUCTORS *** // MULTIMEMBER SCALAR TYPES ON CONSTRUCTOR checkScalarTypes(UnitTest.class.getConstructor(new Class[]{Iterator.class})); checkScalarTypesOverrideDefault(UnitTest.class.getConstructor(new Class[]{Map.class})); checkScalarTypesAcceptDefault(UnitTest.class.getConstructor(new Class[]{Set.class})); // MULTIMEMBER ARRAY TYPES ON CONSTRUCTOR checkArrayTypes0(UnitTest.class.getConstructor(new Class[]{List.class})); checkArrayTypes1(UnitTest.class.getConstructor(new Class[]{Collection.class})); checkArrayTypes2(UnitTest.class.getConstructor(new Class[]{SortedSet.class})); checkArrayTypesAcceptDefault(UnitTest.class.getConstructor(new Class[]{SortedMap.class})); checkArrayTypesOverrideDefault(UnitTest.class.getConstructor(new Class[]{RandomAccess.class})); // MARKER TYPE ON CONSTRUCTOR checkMarker(UnitTest.class.getConstructor(new Class[] { })); // SINGLE-MEMBER SCALAR TYPES ON CONSTRUCTOR checkSingleMemberByte(UnitTest.class.getConstructor(new Class[] { byte.class })); checkSingleMemberShort(UnitTest.class.getConstructor(new Class[] { short.class })); checkSingleMemberInt(UnitTest.class.getConstructor(new Class[] { int.class })); checkSingleMemberLong(UnitTest.class.getConstructor(new Class[] { long.class })); checkSingleMemberChar(UnitTest.class.getConstructor(new Class[] { char.class })); checkSingleMemberFloat(UnitTest.class.getConstructor(new Class[] { float.class })); checkSingleMemberDouble(UnitTest.class.getConstructor(new Class[] { double.class })); checkSingleMemberBoolean(UnitTest.class.getConstructor(new Class[] { boolean.class })); checkSingleMemberString(UnitTest.class.getConstructor(new Class[] { String.class })); checkSingleMemberClass(UnitTest.class.getConstructor(new Class[] { Class.class })); checkSingleMemberEnum(UnitTest.class.getConstructor(new Class[] { Enum.class })); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE ON CONSTRUCTOR checkSingleMemberByteOvrdDef(UnitTest.class.getConstructor(new Class[] { byte.class, Set.class })); checkSingleMemberShortOvrdDef(UnitTest.class.getConstructor(new Class[] { short.class, Set.class })); checkSingleMemberIntOvrdDef(UnitTest.class.getConstructor(new Class[] { int.class, Set.class })); checkSingleMemberLongOvrdDef(UnitTest.class.getConstructor(new Class[] { long.class, Set.class })); checkSingleMemberCharOvrdDef(UnitTest.class.getConstructor(new Class[] { char.class, Set.class })); checkSingleMemberFloatOvrdDef(UnitTest.class.getConstructor(new Class[] { float.class, Set.class })); checkSingleMemberDoubleOvrdDef(UnitTest.class.getConstructor(new Class[] { double.class, Set.class })); checkSingleMemberBooleanOvrdDef(UnitTest.class.getConstructor(new Class[] { boolean.class, Set.class })); checkSingleMemberStringOvrdDef(UnitTest.class.getConstructor(new Class[] { String.class, Set.class })); checkSingleMemberClassOvrdDef(UnitTest.class.getConstructor(new Class[] { Class.class, Set.class })); checkSingleMemberEnumOvrdDef(UnitTest.class.getConstructor(new Class[] { Enum.class, Set.class })); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT ON CONSTRUCTOR checkSingleMemberByteAcceptDef(UnitTest.class.getConstructor(new Class[] { byte.class, Map.class })); checkSingleMemberShortAcceptDef(UnitTest.class.getConstructor(new Class[] { short.class, Map.class })); checkSingleMemberIntAcceptDef(UnitTest.class.getConstructor(new Class[] { int.class, Map.class })); checkSingleMemberLongAcceptDef(UnitTest.class.getConstructor(new Class[] { long.class, Map.class })); checkSingleMemberCharAcceptDef(UnitTest.class.getConstructor(new Class[] { char.class, Map.class })); checkSingleMemberFloatAcceptDef(UnitTest.class.getConstructor(new Class[] { float.class, Map.class })); checkSingleMemberDoubleAcceptDef(UnitTest.class.getConstructor(new Class[] { double.class, Map.class })); checkSingleMemberBooleanAcceptDef(UnitTest.class.getConstructor(new Class[] { boolean.class, Map.class })); checkSingleMemberStringAcceptDef(UnitTest.class.getConstructor(new Class[] { String.class, Map.class })); checkSingleMemberClassAcceptDef(UnitTest.class.getConstructor(new Class[] { Class.class, Map.class })); checkSingleMemberEnumAcceptDef(UnitTest.class.getConstructor(new Class[] { Enum.class, Map.class })); // SINGLE-MEMBER ARRAY TYPES (EMPTY ARRAY) ON CONSTRUCTOR checkSingleMemberByteArrEmpty(UnitTest.class.getConstructor(new Class[] { byte[].class })); checkSingleMemberShortArrEmpty(UnitTest.class.getConstructor(new Class[] { short[].class })); checkSingleMemberIntArrEmpty(UnitTest.class.getConstructor(new Class[] { int[].class })); checkSingleMemberLongArrEmpty(UnitTest.class.getConstructor(new Class[] { long[].class })); checkSingleMemberCharArrEmpty(UnitTest.class.getConstructor(new Class[] { char[].class })); checkSingleMemberFloatArrEmpty(UnitTest.class.getConstructor(new Class[] { float[].class })); checkSingleMemberDoubleArrEmpty(UnitTest.class.getConstructor(new Class[] { double[].class })); checkSingleMemberBooleanArrEmpty(UnitTest.class.getConstructor(new Class[] { boolean[].class })); checkSingleMemberStringArrEmpty(UnitTest.class.getConstructor(new Class[] { String[].class })); checkSingleMemberClassArrEmpty(UnitTest.class.getConstructor(new Class[] { Class[].class })); checkSingleMemberEnumArrEmpty(UnitTest.class.getConstructor(new Class[] { Enum[].class })); // SINGLE-MEMBER ARRAY TYPES (ONE-ELEMENT ARRAY) ON CONSTRUCTOR checkSingleMemberByteArrOne(UnitTest.class.getConstructor(new Class[] { byte[].class, Set.class })); checkSingleMemberShortArrOne(UnitTest.class.getConstructor(new Class[] { short[].class, Set.class })); checkSingleMemberIntArrOne(UnitTest.class.getConstructor(new Class[] { int[].class, Set.class })); checkSingleMemberLongArrOne(UnitTest.class.getConstructor(new Class[] { long[].class, Set.class })); checkSingleMemberCharArrOne(UnitTest.class.getConstructor(new Class[] { char[].class, Set.class })); checkSingleMemberFloatArrOne(UnitTest.class.getConstructor(new Class[] { float[].class, Set.class })); checkSingleMemberDoubleArrOne(UnitTest.class.getConstructor(new Class[] { double[].class, Set.class })); checkSingleMemberBooleanArrOne(UnitTest.class.getConstructor(new Class[] { boolean[].class, Set.class })); checkSingleMemberStringArrOne(UnitTest.class.getConstructor(new Class[] { String[].class, Set.class })); checkSingleMemberClassArrOne(UnitTest.class.getConstructor(new Class[] { Class[].class, Set.class })); checkSingleMemberEnumArrOne(UnitTest.class.getConstructor(new Class[] { Enum[].class, Set.class })); // SINGLE-MEMBER ARRAY TYPES (TWO-ELEMENT ARRAY) ON CONSTRUCTOR checkSingleMemberByteArrTwo(UnitTest.class.getConstructor(new Class[] { byte[].class, Map.class })); checkSingleMemberShortArrTwo(UnitTest.class.getConstructor(new Class[] { short[].class, Map.class })); checkSingleMemberIntArrTwo(UnitTest.class.getConstructor(new Class[] { int[].class, Map.class })); checkSingleMemberLongArrTwo(UnitTest.class.getConstructor(new Class[] { long[].class, Map.class })); checkSingleMemberCharArrTwo(UnitTest.class.getConstructor(new Class[] { char[].class, Map.class })); checkSingleMemberFloatArrTwo(UnitTest.class.getConstructor(new Class[] { float[].class, Map.class })); checkSingleMemberDoubleArrTwo(UnitTest.class.getConstructor(new Class[] { double[].class, Map.class })); checkSingleMemberBooleanArrTwo(UnitTest.class.getConstructor(new Class[] { boolean[].class, Map.class })); checkSingleMemberStringArrTwo(UnitTest.class.getConstructor(new Class[] { String[].class, Map.class })); checkSingleMemberClassArrTwo(UnitTest.class.getConstructor(new Class[] { Class[].class, Map.class })); checkSingleMemberEnumArrTwo(UnitTest.class.getConstructor(new Class[] { Enum[].class, Map.class })); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (OVERRIDE)ON CONSTRUCTOR checkSingleMemberByteArrOvrdDef(UnitTest.class.getConstructor(new Class[] { byte[].class, List.class })); checkSingleMemberShortArrOvrdDef(UnitTest.class.getConstructor(new Class[] { short[].class, List.class })); checkSingleMemberIntArrOvrdDef(UnitTest.class.getConstructor(new Class[] { int[].class, List.class })); checkSingleMemberLongArrOvrdDef(UnitTest.class.getConstructor(new Class[] { long[].class, List.class })); checkSingleMemberCharArrOvrdDef(UnitTest.class.getConstructor(new Class[] { char[].class, List.class })); checkSingleMemberFloatArrOvrdDef(UnitTest.class.getConstructor(new Class[] { float[].class, List.class })); checkSingleMemberDoubleArrOvrdDef(UnitTest.class.getConstructor(new Class[] { double[].class, List.class })); checkSingleMemberBooleanArrOvrdDef(UnitTest.class.getConstructor(new Class[] { boolean[].class, List.class })); checkSingleMemberStringArrOvrdDef(UnitTest.class.getConstructor(new Class[] { String[].class, List.class })); checkSingleMemberClassArrOvrdDef(UnitTest.class.getConstructor(new Class[] { Class[].class, List.class })); checkSingleMemberEnumArrOvrdDef(UnitTest.class.getConstructor(new Class[] { Enum[].class, List.class })); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (ACCEPT)ON CONSTRUCTOR checkSingleMemberByteArrAcceptDef(UnitTest.class.getConstructor(new Class[] { byte[].class, Collection.class })); checkSingleMemberShortArrAcceptDef(UnitTest.class.getConstructor(new Class[] { short[].class, Collection.class })); checkSingleMemberIntArrAcceptDef(UnitTest.class.getConstructor(new Class[] { int[].class, Collection.class })); checkSingleMemberLongArrAcceptDef(UnitTest.class.getConstructor(new Class[] { long[].class, Collection.class })); checkSingleMemberCharArrAcceptDef(UnitTest.class.getConstructor(new Class[] { char[].class, Collection.class })); checkSingleMemberFloatArrAcceptDef(UnitTest.class.getConstructor(new Class[] { float[].class, Collection.class })); checkSingleMemberDoubleArrAcceptDef(UnitTest.class.getConstructor(new Class[] { double[].class, Collection.class })); checkSingleMemberBooleanArrAcceptDef(UnitTest.class.getConstructor(new Class[] { boolean[].class, Collection.class })); checkSingleMemberStringArrAcceptDef(UnitTest.class.getConstructor(new Class[] { String[].class, Collection.class })); checkSingleMemberClassArrAcceptDef(UnitTest.class.getConstructor(new Class[] { Class[].class, Collection.class })); checkSingleMemberEnumArrAcceptDef(UnitTest.class.getConstructor(new Class[] { Enum[].class, Collection.class })); // *** TESTS ON ANNOTATED PARAMETERS *** // MULTIMEMBER SCALAR TYPES ON PARAM checkScalarTypesParam(UnitTest.class.getMethod("scalarTypesParam", Y)); checkScalarTypesOverrideDefaultParam(UnitTest.class.getMethod("scalarTypesOverrideDefaultParam", Y)); checkScalarTypesAcceptDefaultParam(UnitTest.class.getMethod("scalarTypesAcceptDefaultParam", Y)); // MULTIMEMBER ARRAY TYPES ON PARAM checkArrayTypes0Param(UnitTest.class.getMethod("emptyArrayTypesParam", Y)); checkArrayTypes1Param(UnitTest.class.getMethod("singleElementArrayTypesParam", Y)); checkArrayTypes2Param(UnitTest.class.getMethod("twoElementArrayTypesParam", Y)); checkArrayTypesAcceptDefaultParam(UnitTest.class.getMethod("arrayTypesAcceptDefaultParam", Y)); checkArrayTypesOverrideDefaultParam(UnitTest.class.getMethod("arrayTypesOverrideDefaultParam", Y)); // MARKER TYPE ON PARAMETER checkMarkerParam(UnitTest.class.getMethod("markerParam", Y)); // SINGLE-MEMBER SCALAR TYPES ON PARAMETER checkSingleMemberByteParam(UnitTest.class.getMethod("SingleMemberByteParam", Y)); checkSingleMemberShortParam(UnitTest.class.getMethod("SingleMemberShortParam", Y)); checkSingleMemberIntParam(UnitTest.class.getMethod("SingleMemberIntParam", Y)); checkSingleMemberLongParam(UnitTest.class.getMethod("SingleMemberLongParam", Y)); checkSingleMemberCharParam(UnitTest.class.getMethod("SingleMemberCharParam", Y)); checkSingleMemberFloatParam(UnitTest.class.getMethod("SingleMemberFloatParam", Y)); checkSingleMemberDoubleParam(UnitTest.class.getMethod("SingleMemberDoubleParam", Y)); checkSingleMemberBooleanParam(UnitTest.class.getMethod("SingleMemberBooleanParam", Y)); checkSingleMemberStringParam(UnitTest.class.getMethod("SingleMemberStringParam", Y)); checkSingleMemberClassParam(UnitTest.class.getMethod("SingleMemberClassParam", Y)); checkSingleMemberEnumParam(UnitTest.class.getMethod("SingleMemberEnumParam", Y)); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE ON PARAMETER checkSingleMemberByteOvrdDefParam(UnitTest.class.getMethod("SingleMemberByteOvrdDefParam", Y)); checkSingleMemberShortOvrdDefParam(UnitTest.class.getMethod("SingleMemberShortOvrdDefParam", Y)); checkSingleMemberIntOvrdDefParam(UnitTest.class.getMethod("SingleMemberIntOvrdDefParam", Y)); checkSingleMemberLongOvrdDefParam(UnitTest.class.getMethod("SingleMemberLongOvrdDefParam", Y)); checkSingleMemberCharOvrdDefParam(UnitTest.class.getMethod("SingleMemberCharOvrdDefParam", Y)); checkSingleMemberFloatOvrdDefParam(UnitTest.class.getMethod("SingleMemberFloatOvrdDefParam", Y)); checkSingleMemberDoubleOvrdDefParam(UnitTest.class.getMethod("SingleMemberDoubleOvrdDefParam", Y)); checkSingleMemberBooleanOvrdDefParam(UnitTest.class.getMethod("SingleMemberBooleanOvrdDefParam", Y)); checkSingleMemberStringOvrdDefParam(UnitTest.class.getMethod("SingleMemberStringOvrdDefParam", Y)); checkSingleMemberClassOvrdDefParam(UnitTest.class.getMethod("SingleMemberClassOvrdDefParam", Y)); checkSingleMemberEnumOvrdDefParam(UnitTest.class.getMethod("SingleMemberEnumOvrdDefParam", Y)); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT ON PARAMETER checkSingleMemberByteAcceptDefParam(UnitTest.class.getMethod("SingleMemberByteAcceptDefParam", Y)); checkSingleMemberShortAcceptDefParam(UnitTest.class.getMethod("SingleMemberShortAcceptDefParam", Y)); checkSingleMemberIntAcceptDefParam(UnitTest.class.getMethod("SingleMemberIntAcceptDefParam", Y)); checkSingleMemberLongAcceptDefParam(UnitTest.class.getMethod("SingleMemberLongAcceptDefParam", Y)); checkSingleMemberCharAcceptDefParam(UnitTest.class.getMethod("SingleMemberCharAcceptDefParam", Y)); checkSingleMemberFloatAcceptDefParam(UnitTest.class.getMethod("SingleMemberFloatAcceptDefParam", Y)); checkSingleMemberDoubleAcceptDefParam(UnitTest.class.getMethod("SingleMemberDoubleAcceptDefParam", Y)); checkSingleMemberBooleanAcceptDefParam(UnitTest.class.getMethod("SingleMemberBooleanAcceptDefParam", Y)); checkSingleMemberStringAcceptDefParam(UnitTest.class.getMethod("SingleMemberStringAcceptDefParam", Y)); checkSingleMemberClassAcceptDefParam(UnitTest.class.getMethod("SingleMemberClassAcceptDefParam", Y)); checkSingleMemberEnumAcceptDefParam(UnitTest.class.getMethod("SingleMemberEnumAcceptDefParam", Y)); // SINGLE-MEMBER ARRAY TYPES Param(UnitTest.class.getMethod("EMPTY ARRAY) ON PARAMETER checkSingleMemberByteArrEmptyParam(UnitTest.class.getMethod("SingleMemberByteArrEmptyParam", Y)); checkSingleMemberShortArrEmptyParam(UnitTest.class.getMethod("SingleMemberShortArrEmptyParam", Y)); checkSingleMemberIntArrEmptyParam(UnitTest.class.getMethod("SingleMemberIntArrEmptyParam", Y)); checkSingleMemberLongArrEmptyParam(UnitTest.class.getMethod("SingleMemberLongArrEmptyParam", Y)); checkSingleMemberCharArrEmptyParam(UnitTest.class.getMethod("SingleMemberCharArrEmptyParam", Y)); checkSingleMemberFloatArrEmptyParam(UnitTest.class.getMethod("SingleMemberFloatArrEmptyParam", Y)); checkSingleMemberDoubleArrEmptyParam(UnitTest.class.getMethod("SingleMemberDoubleArrEmptyParam", Y)); checkSingleMemberBooleanArrEmptyParam(UnitTest.class.getMethod("SingleMemberBooleanArrEmptyParam", Y)); checkSingleMemberStringArrEmptyParam(UnitTest.class.getMethod("SingleMemberStringArrEmptyParam", Y)); checkSingleMemberClassArrEmptyParam(UnitTest.class.getMethod("SingleMemberClassArrEmptyParam", Y)); checkSingleMemberEnumArrEmptyParam(UnitTest.class.getMethod("SingleMemberEnumArrEmptyParam", Y)); // SINGLE-MEMBER ARRAY TYPES Param(UnitTest.class.getMethod("ONE-ELEMENT ARRAY) ON PARAMETER checkSingleMemberByteArrOneParam(UnitTest.class.getMethod("SingleMemberByteArrOneParam", Y)); checkSingleMemberShortArrOneParam(UnitTest.class.getMethod("SingleMemberShortArrOneParam", Y)); checkSingleMemberIntArrOneParam(UnitTest.class.getMethod("SingleMemberIntArrOneParam", Y)); checkSingleMemberLongArrOneParam(UnitTest.class.getMethod("SingleMemberLongArrOneParam", Y)); checkSingleMemberCharArrOneParam(UnitTest.class.getMethod("SingleMemberCharArrOneParam", Y)); checkSingleMemberFloatArrOneParam(UnitTest.class.getMethod("SingleMemberFloatArrOneParam", Y)); checkSingleMemberDoubleArrOneParam(UnitTest.class.getMethod("SingleMemberDoubleArrOneParam", Y)); checkSingleMemberBooleanArrOneParam(UnitTest.class.getMethod("SingleMemberBooleanArrOneParam", Y)); checkSingleMemberStringArrOneParam(UnitTest.class.getMethod("SingleMemberStringArrOneParam", Y)); checkSingleMemberClassArrOneParam(UnitTest.class.getMethod("SingleMemberClassArrOneParam", Y)); checkSingleMemberEnumArrOneParam(UnitTest.class.getMethod("SingleMemberEnumArrOneParam", Y)); // SINGLE-MEMBER ARRAY TYPES Param(UnitTest.class.getMethod("TWO-ELEMENT ARRAY) ON PARAMETER checkSingleMemberByteArrTwoParam(UnitTest.class.getMethod("SingleMemberByteArrTwoParam", Y)); checkSingleMemberShortArrTwoParam(UnitTest.class.getMethod("SingleMemberShortArrTwoParam", Y)); checkSingleMemberIntArrTwoParam(UnitTest.class.getMethod("SingleMemberIntArrTwoParam", Y)); checkSingleMemberLongArrTwoParam(UnitTest.class.getMethod("SingleMemberLongArrTwoParam", Y)); checkSingleMemberCharArrTwoParam(UnitTest.class.getMethod("SingleMemberCharArrTwoParam", Y)); checkSingleMemberFloatArrTwoParam(UnitTest.class.getMethod("SingleMemberFloatArrTwoParam", Y)); checkSingleMemberDoubleArrTwoParam(UnitTest.class.getMethod("SingleMemberDoubleArrTwoParam", Y)); checkSingleMemberBooleanArrTwoParam(UnitTest.class.getMethod("SingleMemberBooleanArrTwoParam", Y)); checkSingleMemberStringArrTwoParam(UnitTest.class.getMethod("SingleMemberStringArrTwoParam", Y)); checkSingleMemberClassArrTwoParam(UnitTest.class.getMethod("SingleMemberClassArrTwoParam", Y)); checkSingleMemberEnumArrTwoParam(UnitTest.class.getMethod("SingleMemberEnumArrTwoParam", Y)); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT Param(UnitTest.class.getMethod("OVERRIDE)ON PARAMETER checkSingleMemberByteArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberByteArrOvrdDefParam", Y)); checkSingleMemberShortArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberShortArrOvrdDefParam", Y)); checkSingleMemberIntArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberIntArrOvrdDefParam", Y)); checkSingleMemberLongArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberLongArrOvrdDefParam", Y)); checkSingleMemberCharArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberCharArrOvrdDefParam", Y)); checkSingleMemberFloatArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberFloatArrOvrdDefParam", Y)); checkSingleMemberDoubleArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberDoubleArrOvrdDefParam", Y)); checkSingleMemberBooleanArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberBooleanArrOvrdDefParam", Y)); checkSingleMemberStringArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberStringArrOvrdDefParam", Y)); checkSingleMemberClassArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberClassArrOvrdDefParam", Y)); checkSingleMemberEnumArrOvrdDefParam(UnitTest.class.getMethod("SingleMemberEnumArrOvrdDefParam", Y)); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT Param(UnitTest.class.getMethod("ACCEPT)ON PARAMETER checkSingleMemberByteArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberByteArrAcceptDefParam", Y)); checkSingleMemberShortArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberShortArrAcceptDefParam", Y)); checkSingleMemberIntArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberIntArrAcceptDefParam", Y)); checkSingleMemberLongArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberLongArrAcceptDefParam", Y)); checkSingleMemberCharArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberCharArrAcceptDefParam", Y)); checkSingleMemberFloatArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberFloatArrAcceptDefParam", Y)); checkSingleMemberDoubleArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberDoubleArrAcceptDefParam", Y)); checkSingleMemberBooleanArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberBooleanArrAcceptDefParam", Y)); checkSingleMemberStringArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberStringArrAcceptDefParam", Y)); checkSingleMemberClassArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberClassArrAcceptDefParam", Y)); checkSingleMemberEnumArrAcceptDefParam(UnitTest.class.getMethod("SingleMemberEnumArrAcceptDefParam", Y)); // *** TESTS ON ANNOTATED CLASSES *** // MULTIMEMBER SCALAR TYPES ON CLASS checkScalarTypes(scalarTypesClass.class); checkScalarTypesOverrideDefault(scalarTypesOverrideDefaultClass.class); checkScalarTypesAcceptDefault(scalarTypesAcceptDefaultClass.class); // MULTIMEMBER ARRAY TYPES ON CLASS checkArrayTypes0(emptyArrayTypesClass.class); checkArrayTypes1(singleElementArrayTypesClass.class); checkArrayTypes2(twoElementArrayTypesClass.class); checkArrayTypesOverrideDefault(arrayTypesOverrideDefaultClass.class); checkArrayTypesAcceptDefault(arrayTypesAcceptDefaultClass.class); // MARKER TYPE ON CLASS checkMarker(markerClass.class); // SINGLE-MEMBER SCALAR TYPES ON CLASS checkSingleMemberByte(SingleMemberByteClass.class); checkSingleMemberShort(SingleMemberShortClass.class); checkSingleMemberInt(SingleMemberIntClass.class); checkSingleMemberLong(SingleMemberLongClass.class); checkSingleMemberChar(SingleMemberCharClass.class); checkSingleMemberFloat(SingleMemberFloatClass.class); checkSingleMemberDouble(SingleMemberDoubleClass.class); checkSingleMemberBoolean(SingleMemberBooleanClass.class); checkSingleMemberString(SingleMemberStringClass.class); checkSingleMemberClass(SingleMemberClassClass.class); checkSingleMemberEnum(SingleMemberEnumClass.class); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE ON CLASS checkSingleMemberByteOvrdDef(SingleMemberByteOvrdDefClass.class); checkSingleMemberShortOvrdDef(SingleMemberShortOvrdDefClass.class); checkSingleMemberIntOvrdDef(SingleMemberIntOvrdDefClass.class); checkSingleMemberLongOvrdDef(SingleMemberLongOvrdDefClass.class); checkSingleMemberCharOvrdDef(SingleMemberCharOvrdDefClass.class); checkSingleMemberFloatOvrdDef(SingleMemberFloatOvrdDefClass.class); checkSingleMemberDoubleOvrdDef(SingleMemberDoubleOvrdDefClass.class); checkSingleMemberBooleanOvrdDef(SingleMemberBooleanOvrdDefClass.class); checkSingleMemberStringOvrdDef(SingleMemberStringOvrdDefClass.class); checkSingleMemberClassOvrdDef(SingleMemberClassOvrdDefClass.class); checkSingleMemberEnumOvrdDef(SingleMemberEnumOvrdDefClass.class); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT ON CLASS checkSingleMemberByteAcceptDef(SingleMemberByteAcceptDefClass.class); checkSingleMemberShortAcceptDef(SingleMemberShortAcceptDefClass.class); checkSingleMemberIntAcceptDef(SingleMemberIntAcceptDefClass.class); checkSingleMemberLongAcceptDef(SingleMemberLongAcceptDefClass.class); checkSingleMemberCharAcceptDef(SingleMemberCharAcceptDefClass.class); checkSingleMemberFloatAcceptDef(SingleMemberFloatAcceptDefClass.class); checkSingleMemberDoubleAcceptDef(SingleMemberDoubleAcceptDefClass.class); checkSingleMemberBooleanAcceptDef(SingleMemberBooleanAcceptDefClass.class); checkSingleMemberStringAcceptDef(SingleMemberStringAcceptDefClass.class); checkSingleMemberClassAcceptDef(SingleMemberClassAcceptDefClass.class); checkSingleMemberEnumAcceptDef(SingleMemberEnumAcceptDefClass.class); // SINGLE-MEMBER ARRAY TYPES (EMPTY ARRAY) ON CLASS checkSingleMemberByteArrEmpty(SingleMemberByteArrEmptyClass.class); checkSingleMemberShortArrEmpty(SingleMemberShortArrEmptyClass.class); checkSingleMemberIntArrEmpty(SingleMemberIntArrEmptyClass.class); checkSingleMemberLongArrEmpty(SingleMemberLongArrEmptyClass.class); checkSingleMemberCharArrEmpty(SingleMemberCharArrEmptyClass.class); checkSingleMemberFloatArrEmpty(SingleMemberFloatArrEmptyClass.class); checkSingleMemberDoubleArrEmpty(SingleMemberDoubleArrEmptyClass.class); checkSingleMemberBooleanArrEmpty(SingleMemberBooleanArrEmptyClass.class); checkSingleMemberStringArrEmpty(SingleMemberStringArrEmptyClass.class); checkSingleMemberClassArrEmpty(SingleMemberClassArrEmptyClass.class); checkSingleMemberEnumArrEmpty(SingleMemberEnumArrEmptyClass.class); // SINGLE-MEMBER ARRAY TYPES (ONE-ELEMENT ARRAY) ON CLASS checkSingleMemberByteArrOne(SingleMemberByteArrOneClass.class); checkSingleMemberShortArrOne(SingleMemberShortArrOneClass.class); checkSingleMemberIntArrOne(SingleMemberIntArrOneClass.class); checkSingleMemberLongArrOne(SingleMemberLongArrOneClass.class); checkSingleMemberCharArrOne(SingleMemberCharArrOneClass.class); checkSingleMemberFloatArrOne(SingleMemberFloatArrOneClass.class); checkSingleMemberDoubleArrOne(SingleMemberDoubleArrOneClass.class); checkSingleMemberBooleanArrOne(SingleMemberBooleanArrOneClass.class); checkSingleMemberStringArrOne(SingleMemberStringArrOneClass.class); checkSingleMemberClassArrOne(SingleMemberClassArrOneClass.class); checkSingleMemberEnumArrOne(SingleMemberEnumArrOneClass.class); // SINGLE-MEMBER ARRAY TYPES (TWO-ELEMENT ARRAY) ON CLASS checkSingleMemberByteArrTwo(SingleMemberByteArrTwoClass.class); checkSingleMemberShortArrTwo(SingleMemberShortArrTwoClass.class); checkSingleMemberIntArrTwo(SingleMemberIntArrTwoClass.class); checkSingleMemberLongArrTwo(SingleMemberLongArrTwoClass.class); checkSingleMemberCharArrTwo(SingleMemberCharArrTwoClass.class); checkSingleMemberFloatArrTwo(SingleMemberFloatArrTwoClass.class); checkSingleMemberDoubleArrTwo(SingleMemberDoubleArrTwoClass.class); checkSingleMemberBooleanArrTwo(SingleMemberBooleanArrTwoClass.class); checkSingleMemberStringArrTwo(SingleMemberStringArrTwoClass.class); checkSingleMemberClassArrTwo(SingleMemberClassArrTwoClass.class); checkSingleMemberEnumArrTwo(SingleMemberEnumArrTwoClass.class); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (OVERRIDE)ON CLASS checkSingleMemberByteArrOvrdDef(SingleMemberByteArrOvrdDefClass.class); checkSingleMemberShortArrOvrdDef(SingleMemberShortArrOvrdDefClass.class); checkSingleMemberIntArrOvrdDef(SingleMemberIntArrOvrdDefClass.class); checkSingleMemberLongArrOvrdDef(SingleMemberLongArrOvrdDefClass.class); checkSingleMemberCharArrOvrdDef(SingleMemberCharArrOvrdDefClass.class); checkSingleMemberFloatArrOvrdDef(SingleMemberFloatArrOvrdDefClass.class); checkSingleMemberDoubleArrOvrdDef(SingleMemberDoubleArrOvrdDefClass.class); checkSingleMemberBooleanArrOvrdDef(SingleMemberBooleanArrOvrdDefClass.class); checkSingleMemberStringArrOvrdDef(SingleMemberStringArrOvrdDefClass.class); checkSingleMemberClassArrOvrdDef(SingleMemberClassArrOvrdDefClass.class); checkSingleMemberEnumArrOvrdDef(SingleMemberEnumArrOvrdDefClass.class); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (ACCEPT)ON CLASS checkSingleMemberByteArrAcceptDef(SingleMemberByteArrAcceptDefClass.class); checkSingleMemberShortArrAcceptDef(SingleMemberShortArrAcceptDefClass.class); checkSingleMemberIntArrAcceptDef(SingleMemberIntArrAcceptDefClass.class); checkSingleMemberLongArrAcceptDef(SingleMemberLongArrAcceptDefClass.class); checkSingleMemberCharArrAcceptDef(SingleMemberCharArrAcceptDefClass.class); checkSingleMemberFloatArrAcceptDef(SingleMemberFloatArrAcceptDefClass.class); checkSingleMemberDoubleArrAcceptDef(SingleMemberDoubleArrAcceptDefClass.class); checkSingleMemberBooleanArrAcceptDef(SingleMemberBooleanArrAcceptDefClass.class); checkSingleMemberStringArrAcceptDef(SingleMemberStringArrAcceptDefClass.class); checkSingleMemberClassArrAcceptDef(SingleMemberClassArrAcceptDefClass.class); checkSingleMemberEnumArrAcceptDef(SingleMemberEnumArrAcceptDefClass.class); // *** TESTS FOR EQUALS AND HASHCODE - POSITIVE // MULTIMEMBER SCALAR TYPES checkEquals(scalarTypesClass.class, UnitTest.class.getField("scalarTypesField"), ScalarTypes.class); checkEquals(scalarTypesOverrideDefaultClass.class, UnitTest.class.getField("scalarTypesOverrideDefaultField"), ScalarTypesWithDefault.class); checkEquals(scalarTypesAcceptDefaultClass.class, UnitTest.class.getField("scalarTypesAcceptDefaultField"), ScalarTypesWithDefault.class); // MULTIMEMBER ARRAY TYPES checkEquals(emptyArrayTypesClass.class, UnitTest.class.getField("emptyArrayTypesField"), ArrayTypes.class); checkEquals(singleElementArrayTypesClass.class, UnitTest.class.getField("singleElementArrayTypesField"), ArrayTypes.class); checkEquals(twoElementArrayTypesClass.class, UnitTest.class.getField("twoElementArrayTypesField"), ArrayTypes.class); checkEquals(arrayTypesOverrideDefaultClass.class, UnitTest.class.getField("arrayTypesOverrideDefaultField"), ArrayTypesWithDefault.class); checkEquals(arrayTypesAcceptDefaultClass.class, UnitTest.class.getField("arrayTypesAcceptDefaultField"), ArrayTypesWithDefault.class); // MARKER TYPE checkEquals(markerClass.class, UnitTest.class.getField("markerField"), Marker.class); // SINGLE-MEMBER SCALAR TYPES checkEquals(SingleMemberByteClass.class, UnitTest.class.getField("SingleMemberByteField"), SingleMemberByte.class); checkEquals(SingleMemberShortClass.class, UnitTest.class.getField("SingleMemberShortField"), SingleMemberShort.class); checkEquals(SingleMemberIntClass.class, UnitTest.class.getField("SingleMemberIntField"), SingleMemberInt.class); checkEquals(SingleMemberLongClass.class, UnitTest.class.getField("SingleMemberLongField"), SingleMemberLong.class); checkEquals(SingleMemberCharClass.class, UnitTest.class.getField("SingleMemberCharField"), SingleMemberChar.class); checkEquals(SingleMemberFloatClass.class, UnitTest.class.getField("SingleMemberFloatField"), SingleMemberFloat.class); checkEquals(SingleMemberDoubleClass.class, UnitTest.class.getField("SingleMemberDoubleField"), SingleMemberDouble.class); checkEquals(SingleMemberBooleanClass.class, UnitTest.class.getField("SingleMemberBooleanField"), SingleMemberBoolean.class); checkEquals(SingleMemberStringClass.class, UnitTest.class.getField("SingleMemberStringField"), SingleMemberString.class); checkEquals(SingleMemberClassClass.class, UnitTest.class.getField("SingleMemberClassField"), SingleMemberClass.class); checkEquals(SingleMemberEnumClass.class, UnitTest.class.getField("SingleMemberEnumField"), SingleMemberEnum.class); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE checkEquals(SingleMemberByteOvrdDefClass.class, UnitTest.class.getField("SingleMemberByteOvrdDefField"), SingleMemberByteWithDef.class); checkEquals(SingleMemberShortOvrdDefClass.class, UnitTest.class.getField("SingleMemberShortOvrdDefField"), SingleMemberShortWithDef.class); checkEquals(SingleMemberIntOvrdDefClass.class, UnitTest.class.getField("SingleMemberIntOvrdDefField"), SingleMemberIntWithDef.class); checkEquals(SingleMemberLongOvrdDefClass.class, UnitTest.class.getField("SingleMemberLongOvrdDefField"), SingleMemberLongWithDef.class); checkEquals(SingleMemberCharOvrdDefClass.class, UnitTest.class.getField("SingleMemberCharOvrdDefField"), SingleMemberCharWithDef.class); checkEquals(SingleMemberFloatOvrdDefClass.class, UnitTest.class.getField("SingleMemberFloatOvrdDefField"), SingleMemberFloatWithDef.class); checkEquals(SingleMemberDoubleOvrdDefClass.class, UnitTest.class.getField("SingleMemberDoubleOvrdDefField"), SingleMemberDoubleWithDef.class); checkEquals(SingleMemberBooleanOvrdDefClass.class, UnitTest.class.getField("SingleMemberBooleanOvrdDefField"), SingleMemberBooleanWithDef.class); checkEquals(SingleMemberStringOvrdDefClass.class, UnitTest.class.getField("SingleMemberStringOvrdDefField"), SingleMemberStringWithDef.class); checkEquals(SingleMemberClassOvrdDefClass.class, UnitTest.class.getField("SingleMemberClassOvrdDefField"), SingleMemberClassWithDef.class); checkEquals(SingleMemberEnumOvrdDefClass.class, UnitTest.class.getField("SingleMemberEnumOvrdDefField"), SingleMemberEnumWithDef.class); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT checkEquals(SingleMemberByteAcceptDefClass.class, UnitTest.class.getField("SingleMemberByteAcceptDefField"), SingleMemberByteWithDef.class); checkEquals(SingleMemberShortAcceptDefClass.class, UnitTest.class.getField("SingleMemberShortAcceptDefField"), SingleMemberShortWithDef.class); checkEquals(SingleMemberIntAcceptDefClass.class, UnitTest.class.getField("SingleMemberIntAcceptDefField"), SingleMemberIntWithDef.class); checkEquals(SingleMemberLongAcceptDefClass.class, UnitTest.class.getField("SingleMemberLongAcceptDefField"), SingleMemberLongWithDef.class); checkEquals(SingleMemberCharAcceptDefClass.class, UnitTest.class.getField("SingleMemberCharAcceptDefField"), SingleMemberCharWithDef.class); checkEquals(SingleMemberFloatAcceptDefClass.class, UnitTest.class.getField("SingleMemberFloatAcceptDefField"), SingleMemberFloatWithDef.class); checkEquals(SingleMemberDoubleAcceptDefClass.class, UnitTest.class.getField("SingleMemberDoubleAcceptDefField"), SingleMemberDoubleWithDef.class); checkEquals(SingleMemberBooleanAcceptDefClass.class, UnitTest.class.getField("SingleMemberBooleanAcceptDefField"), SingleMemberBooleanWithDef.class); checkEquals(SingleMemberStringAcceptDefClass.class, UnitTest.class.getField("SingleMemberStringAcceptDefField"), SingleMemberStringWithDef.class); checkEquals(SingleMemberClassAcceptDefClass.class, UnitTest.class.getField("SingleMemberClassAcceptDefField"), SingleMemberClassWithDef.class); checkEquals(SingleMemberEnumAcceptDefClass.class, UnitTest.class.getField("SingleMemberEnumAcceptDefField"), SingleMemberEnumWithDef.class); // SINGLE-MEMBER ARRAY TYPES (EMPTY ARRAY) checkEquals(SingleMemberByteArrEmptyClass.class, UnitTest.class.getField("SingleMemberByteArrEmptyField"), SingleMemberByteArray.class); checkEquals(SingleMemberShortArrEmptyClass.class, UnitTest.class.getField("SingleMemberShortArrEmptyField"), SingleMemberShortArray.class); checkEquals(SingleMemberIntArrEmptyClass.class, UnitTest.class.getField("SingleMemberIntArrEmptyField"), SingleMemberIntArray.class); checkEquals(SingleMemberLongArrEmptyClass.class, UnitTest.class.getField("SingleMemberLongArrEmptyField"), SingleMemberLongArray.class); checkEquals(SingleMemberCharArrEmptyClass.class, UnitTest.class.getField("SingleMemberCharArrEmptyField"), SingleMemberCharArray.class); checkEquals(SingleMemberFloatArrEmptyClass.class, UnitTest.class.getField("SingleMemberFloatArrEmptyField"), SingleMemberFloatArray.class); checkEquals(SingleMemberDoubleArrEmptyClass.class, UnitTest.class.getField("SingleMemberDoubleArrEmptyField"), SingleMemberDoubleArray.class); checkEquals(SingleMemberBooleanArrEmptyClass.class, UnitTest.class.getField("SingleMemberBooleanArrEmptyField"), SingleMemberBooleanArray.class); checkEquals(SingleMemberStringArrEmptyClass.class, UnitTest.class.getField("SingleMemberStringArrEmptyField"), SingleMemberStringArray.class); checkEquals(SingleMemberClassArrEmptyClass.class, UnitTest.class.getField("SingleMemberClassArrEmptyField"), SingleMemberClassArray.class); checkEquals(SingleMemberEnumArrEmptyClass.class, UnitTest.class.getField("SingleMemberEnumArrEmptyField"), SingleMemberEnumArray.class); // SINGLE-MEMBER ARRAY TYPES (ONE-ELEMENT ARRAY) checkEquals(SingleMemberByteArrOneClass.class, UnitTest.class.getField("SingleMemberByteArrOneField"), SingleMemberByteArray.class); checkEquals(SingleMemberShortArrOneClass.class, UnitTest.class.getField("SingleMemberShortArrOneField"), SingleMemberShortArray.class); checkEquals(SingleMemberIntArrOneClass.class, UnitTest.class.getField("SingleMemberIntArrOneField"), SingleMemberIntArray.class); checkEquals(SingleMemberLongArrOneClass.class, UnitTest.class.getField("SingleMemberLongArrOneField"), SingleMemberLongArray.class); checkEquals(SingleMemberCharArrOneClass.class, UnitTest.class.getField("SingleMemberCharArrOneField"), SingleMemberCharArray.class); checkEquals(SingleMemberFloatArrOneClass.class, UnitTest.class.getField("SingleMemberFloatArrOneField"), SingleMemberFloatArray.class); checkEquals(SingleMemberDoubleArrOneClass.class, UnitTest.class.getField("SingleMemberDoubleArrOneField"), SingleMemberDoubleArray.class); checkEquals(SingleMemberBooleanArrOneClass.class, UnitTest.class.getField("SingleMemberBooleanArrOneField"), SingleMemberBooleanArray.class); checkEquals(SingleMemberStringArrOneClass.class, UnitTest.class.getField("SingleMemberStringArrOneField"), SingleMemberStringArray.class); checkEquals(SingleMemberClassArrOneClass.class, UnitTest.class.getField("SingleMemberClassArrOneField"), SingleMemberClassArray.class); checkEquals(SingleMemberEnumArrOneClass.class, UnitTest.class.getField("SingleMemberEnumArrOneField"), SingleMemberEnumArray.class); // SINGLE-MEMBER ARRAY TYPES (TWO-ELEMENT ARRAY) checkEquals(SingleMemberByteArrTwoClass.class, UnitTest.class.getField("SingleMemberByteArrTwoField"), SingleMemberByteArray.class); checkEquals(SingleMemberShortArrTwoClass.class, UnitTest.class.getField("SingleMemberShortArrTwoField"), SingleMemberShortArray.class); checkEquals(SingleMemberIntArrTwoClass.class, UnitTest.class.getField("SingleMemberIntArrTwoField"), SingleMemberIntArray.class); checkEquals(SingleMemberLongArrTwoClass.class, UnitTest.class.getField("SingleMemberLongArrTwoField"), SingleMemberLongArray.class); checkEquals(SingleMemberCharArrTwoClass.class, UnitTest.class.getField("SingleMemberCharArrTwoField"), SingleMemberCharArray.class); checkEquals(SingleMemberFloatArrTwoClass.class, UnitTest.class.getField("SingleMemberFloatArrTwoField"), SingleMemberFloatArray.class); checkEquals(SingleMemberDoubleArrTwoClass.class, UnitTest.class.getField("SingleMemberDoubleArrTwoField"), SingleMemberDoubleArray.class); checkEquals(SingleMemberBooleanArrTwoClass.class, UnitTest.class.getField("SingleMemberBooleanArrTwoField"), SingleMemberBooleanArray.class); checkEquals(SingleMemberStringArrTwoClass.class, UnitTest.class.getField("SingleMemberStringArrTwoField"), SingleMemberStringArray.class); checkEquals(SingleMemberClassArrTwoClass.class, UnitTest.class.getField("SingleMemberClassArrTwoField"), SingleMemberClassArray.class); checkEquals(SingleMemberEnumArrTwoClass.class, UnitTest.class.getField("SingleMemberEnumArrTwoField"), SingleMemberEnumArray.class); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (OVERRIDE) checkEquals(SingleMemberByteArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberByteArrOvrdDefField"), SingleMemberByteArrayDef.class); checkEquals(SingleMemberShortArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberShortArrOvrdDefField"), SingleMemberShortArrayDef.class); checkEquals(SingleMemberIntArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberIntArrOvrdDefField"), SingleMemberIntArrayDef.class); checkEquals(SingleMemberLongArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberLongArrOvrdDefField"), SingleMemberLongArrayDef.class); checkEquals(SingleMemberCharArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberCharArrOvrdDefField"), SingleMemberCharArrayDef.class); checkEquals(SingleMemberFloatArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberFloatArrOvrdDefField"), SingleMemberFloatArrayDef.class); checkEquals(SingleMemberDoubleArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberDoubleArrOvrdDefField"), SingleMemberDoubleArrayDef.class); checkEquals(SingleMemberBooleanArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberBooleanArrOvrdDefField"), SingleMemberBooleanArrayDef.class); checkEquals(SingleMemberStringArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberStringArrOvrdDefField"), SingleMemberStringArrayDef.class); checkEquals(SingleMemberClassArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberClassArrOvrdDefField"), SingleMemberClassArrayDef.class); checkEquals(SingleMemberEnumArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberEnumArrOvrdDefField"), SingleMemberEnumArrayDef.class); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (ACCEPT) checkEquals(SingleMemberByteArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberByteArrAcceptDefField"), SingleMemberByteArrayDef.class); checkEquals(SingleMemberShortArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberShortArrAcceptDefField"), SingleMemberShortArrayDef.class); checkEquals(SingleMemberIntArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberIntArrAcceptDefField"), SingleMemberIntArrayDef.class); checkEquals(SingleMemberLongArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberLongArrAcceptDefField"), SingleMemberLongArrayDef.class); checkEquals(SingleMemberCharArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberCharArrAcceptDefField"), SingleMemberCharArrayDef.class); checkEquals(SingleMemberFloatArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberFloatArrAcceptDefField"), SingleMemberFloatArrayDef.class); checkEquals(SingleMemberDoubleArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberDoubleArrAcceptDefField"), SingleMemberDoubleArrayDef.class); checkEquals(SingleMemberBooleanArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberBooleanArrAcceptDefField"), SingleMemberBooleanArrayDef.class); checkEquals(SingleMemberStringArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberStringArrAcceptDefField"), SingleMemberStringArrayDef.class); checkEquals(SingleMemberClassArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberClassArrAcceptDefField"), SingleMemberClassArrayDef.class); checkEquals(SingleMemberEnumArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberEnumArrAcceptDefField"), SingleMemberEnumArrayDef.class); // *** TESTS FOR EQUALS AND HASHCODE - NEGATIVE // MULTIMEMBER SCALAR TYPES checkUnequals(scalarTypesOverrideDefaultClass.class, UnitTest.class.getField("scalarTypesAcceptDefaultField"), ScalarTypesWithDefault.class); checkUnequals(scalarTypesAcceptDefaultClass.class, UnitTest.class.getField("scalarTypesOverrideDefaultField"), ScalarTypesWithDefault.class); // MULTIMEMBER ARRAY TYPES checkUnequals(emptyArrayTypesClass.class, UnitTest.class.getField("singleElementArrayTypesField"), ArrayTypes.class); checkUnequals(singleElementArrayTypesClass.class, UnitTest.class.getField("twoElementArrayTypesField"), ArrayTypes.class); checkUnequals(twoElementArrayTypesClass.class, UnitTest.class.getField("singleElementArrayTypesField"), ArrayTypes.class); checkUnequals(arrayTypesOverrideDefaultClass.class, UnitTest.class.getField("arrayTypesAcceptDefaultField"), ArrayTypesWithDefault.class); checkUnequals(arrayTypesAcceptDefaultClass.class, UnitTest.class.getField("arrayTypesOverrideDefaultField"), ArrayTypesWithDefault.class); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE checkUnequals(SingleMemberByteOvrdDefClass.class, UnitTest.class.getField("SingleMemberByteAcceptDefField"), SingleMemberByteWithDef.class); checkUnequals(SingleMemberShortOvrdDefClass.class, UnitTest.class.getField("SingleMemberShortAcceptDefField"), SingleMemberShortWithDef.class); checkUnequals(SingleMemberIntOvrdDefClass.class, UnitTest.class.getField("SingleMemberIntAcceptDefField"), SingleMemberIntWithDef.class); checkUnequals(SingleMemberLongOvrdDefClass.class, UnitTest.class.getField("SingleMemberLongAcceptDefField"), SingleMemberLongWithDef.class); checkUnequals(SingleMemberCharOvrdDefClass.class, UnitTest.class.getField("SingleMemberCharAcceptDefField"), SingleMemberCharWithDef.class); checkUnequals(SingleMemberFloatOvrdDefClass.class, UnitTest.class.getField("SingleMemberFloatAcceptDefField"), SingleMemberFloatWithDef.class); checkUnequals(SingleMemberDoubleOvrdDefClass.class, UnitTest.class.getField("SingleMemberDoubleAcceptDefField"), SingleMemberDoubleWithDef.class); checkUnequals(SingleMemberBooleanOvrdDefClass.class, UnitTest.class.getField("SingleMemberBooleanAcceptDefField"), SingleMemberBooleanWithDef.class); checkUnequals(SingleMemberStringOvrdDefClass.class, UnitTest.class.getField("SingleMemberStringAcceptDefField"), SingleMemberStringWithDef.class); checkUnequals(SingleMemberClassOvrdDefClass.class, UnitTest.class.getField("SingleMemberClassAcceptDefField"), SingleMemberClassWithDef.class); checkUnequals(SingleMemberEnumOvrdDefClass.class, UnitTest.class.getField("SingleMemberEnumAcceptDefField"), SingleMemberEnumWithDef.class); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT checkUnequals(SingleMemberByteAcceptDefClass.class, UnitTest.class.getField("SingleMemberByteOvrdDefField"), SingleMemberByteWithDef.class); checkUnequals(SingleMemberShortAcceptDefClass.class, UnitTest.class.getField("SingleMemberShortOvrdDefField"), SingleMemberShortWithDef.class); checkUnequals(SingleMemberIntAcceptDefClass.class, UnitTest.class.getField("SingleMemberIntOvrdDefField"), SingleMemberIntWithDef.class); checkUnequals(SingleMemberLongAcceptDefClass.class, UnitTest.class.getField("SingleMemberLongOvrdDefField"), SingleMemberLongWithDef.class); checkUnequals(SingleMemberCharAcceptDefClass.class, UnitTest.class.getField("SingleMemberCharOvrdDefField"), SingleMemberCharWithDef.class); checkUnequals(SingleMemberFloatAcceptDefClass.class, UnitTest.class.getField("SingleMemberFloatOvrdDefField"), SingleMemberFloatWithDef.class); checkUnequals(SingleMemberDoubleAcceptDefClass.class, UnitTest.class.getField("SingleMemberDoubleOvrdDefField"), SingleMemberDoubleWithDef.class); checkUnequals(SingleMemberBooleanAcceptDefClass.class, UnitTest.class.getField("SingleMemberBooleanOvrdDefField"), SingleMemberBooleanWithDef.class); checkUnequals(SingleMemberStringAcceptDefClass.class, UnitTest.class.getField("SingleMemberStringOvrdDefField"), SingleMemberStringWithDef.class); checkUnequals(SingleMemberClassAcceptDefClass.class, UnitTest.class.getField("SingleMemberClassOvrdDefField"), SingleMemberClassWithDef.class); checkUnequals(SingleMemberEnumAcceptDefClass.class, UnitTest.class.getField("SingleMemberEnumOvrdDefField"), SingleMemberEnumWithDef.class); // SINGLE-MEMBER ARRAY TYPES (EMPTY ARRAY) checkUnequals(SingleMemberByteArrEmptyClass.class, UnitTest.class.getField("SingleMemberByteArrOneField"), SingleMemberByteArray.class); checkUnequals(SingleMemberShortArrEmptyClass.class, UnitTest.class.getField("SingleMemberShortArrOneField"), SingleMemberShortArray.class); checkUnequals(SingleMemberIntArrEmptyClass.class, UnitTest.class.getField("SingleMemberIntArrOneField"), SingleMemberIntArray.class); checkUnequals(SingleMemberLongArrEmptyClass.class, UnitTest.class.getField("SingleMemberLongArrOneField"), SingleMemberLongArray.class); checkUnequals(SingleMemberCharArrEmptyClass.class, UnitTest.class.getField("SingleMemberCharArrOneField"), SingleMemberCharArray.class); checkUnequals(SingleMemberFloatArrEmptyClass.class, UnitTest.class.getField("SingleMemberFloatArrOneField"), SingleMemberFloatArray.class); checkUnequals(SingleMemberDoubleArrEmptyClass.class, UnitTest.class.getField("SingleMemberDoubleArrOneField"), SingleMemberDoubleArray.class); checkUnequals(SingleMemberBooleanArrEmptyClass.class, UnitTest.class.getField("SingleMemberBooleanArrOneField"), SingleMemberBooleanArray.class); checkUnequals(SingleMemberStringArrEmptyClass.class, UnitTest.class.getField("SingleMemberStringArrOneField"), SingleMemberStringArray.class); checkUnequals(SingleMemberClassArrEmptyClass.class, UnitTest.class.getField("SingleMemberClassArrOneField"), SingleMemberClassArray.class); checkUnequals(SingleMemberEnumArrEmptyClass.class, UnitTest.class.getField("SingleMemberEnumArrOneField"), SingleMemberEnumArray.class); // SINGLE-MEMBER ARRAY TYPES (ONE-ELEMENT ARRAY) checkUnequals(SingleMemberByteArrOneClass.class, UnitTest.class.getField("SingleMemberByteArrTwoField"), SingleMemberByteArray.class); checkUnequals(SingleMemberShortArrOneClass.class, UnitTest.class.getField("SingleMemberShortArrTwoField"), SingleMemberShortArray.class); checkUnequals(SingleMemberIntArrOneClass.class, UnitTest.class.getField("SingleMemberIntArrTwoField"), SingleMemberIntArray.class); checkUnequals(SingleMemberLongArrOneClass.class, UnitTest.class.getField("SingleMemberLongArrTwoField"), SingleMemberLongArray.class); checkUnequals(SingleMemberCharArrOneClass.class, UnitTest.class.getField("SingleMemberCharArrTwoField"), SingleMemberCharArray.class); checkUnequals(SingleMemberFloatArrOneClass.class, UnitTest.class.getField("SingleMemberFloatArrTwoField"), SingleMemberFloatArray.class); checkUnequals(SingleMemberDoubleArrOneClass.class, UnitTest.class.getField("SingleMemberDoubleArrTwoField"), SingleMemberDoubleArray.class); checkUnequals(SingleMemberBooleanArrOneClass.class, UnitTest.class.getField("SingleMemberBooleanArrTwoField"), SingleMemberBooleanArray.class); checkUnequals(SingleMemberStringArrOneClass.class, UnitTest.class.getField("SingleMemberStringArrTwoField"), SingleMemberStringArray.class); checkUnequals(SingleMemberClassArrOneClass.class, UnitTest.class.getField("SingleMemberClassArrTwoField"), SingleMemberClassArray.class); checkUnequals(SingleMemberEnumArrOneClass.class, UnitTest.class.getField("SingleMemberEnumArrTwoField"), SingleMemberEnumArray.class); // SINGLE-MEMBER ARRAY TYPES (TWO-ELEMENT ARRAY) checkUnequals(SingleMemberByteArrTwoClass.class, UnitTest.class.getField("SingleMemberByteArrOneField"), SingleMemberByteArray.class); checkUnequals(SingleMemberShortArrTwoClass.class, UnitTest.class.getField("SingleMemberShortArrOneField"), SingleMemberShortArray.class); checkUnequals(SingleMemberIntArrTwoClass.class, UnitTest.class.getField("SingleMemberIntArrOneField"), SingleMemberIntArray.class); checkUnequals(SingleMemberLongArrTwoClass.class, UnitTest.class.getField("SingleMemberLongArrOneField"), SingleMemberLongArray.class); checkUnequals(SingleMemberCharArrTwoClass.class, UnitTest.class.getField("SingleMemberCharArrOneField"), SingleMemberCharArray.class); checkUnequals(SingleMemberFloatArrTwoClass.class, UnitTest.class.getField("SingleMemberFloatArrOneField"), SingleMemberFloatArray.class); checkUnequals(SingleMemberDoubleArrTwoClass.class, UnitTest.class.getField("SingleMemberDoubleArrOneField"), SingleMemberDoubleArray.class); checkUnequals(SingleMemberBooleanArrTwoClass.class, UnitTest.class.getField("SingleMemberBooleanArrOneField"), SingleMemberBooleanArray.class); checkUnequals(SingleMemberStringArrTwoClass.class, UnitTest.class.getField("SingleMemberStringArrOneField"), SingleMemberStringArray.class); checkUnequals(SingleMemberClassArrTwoClass.class, UnitTest.class.getField("SingleMemberClassArrOneField"), SingleMemberClassArray.class); checkUnequals(SingleMemberEnumArrTwoClass.class, UnitTest.class.getField("SingleMemberEnumArrOneField"), SingleMemberEnumArray.class); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (OVERRIDE) checkUnequals(SingleMemberByteArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberByteArrAcceptDefField"), SingleMemberByteArrayDef.class); checkUnequals(SingleMemberShortArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberShortArrAcceptDefField"), SingleMemberShortArrayDef.class); checkUnequals(SingleMemberIntArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberIntArrAcceptDefField"), SingleMemberIntArrayDef.class); checkUnequals(SingleMemberLongArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberLongArrAcceptDefField"), SingleMemberLongArrayDef.class); checkUnequals(SingleMemberCharArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberCharArrAcceptDefField"), SingleMemberCharArrayDef.class); checkUnequals(SingleMemberFloatArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberFloatArrAcceptDefField"), SingleMemberFloatArrayDef.class); checkUnequals(SingleMemberDoubleArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberDoubleArrAcceptDefField"), SingleMemberDoubleArrayDef.class); checkUnequals(SingleMemberBooleanArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberBooleanArrAcceptDefField"), SingleMemberBooleanArrayDef.class); checkUnequals(SingleMemberStringArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberStringArrAcceptDefField"), SingleMemberStringArrayDef.class); checkUnequals(SingleMemberClassArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberClassArrAcceptDefField"), SingleMemberClassArrayDef.class); checkUnequals(SingleMemberEnumArrOvrdDefClass.class, UnitTest.class.getField("SingleMemberEnumArrAcceptDefField"), SingleMemberEnumArrayDef.class); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (ACCEPT) checkUnequals(SingleMemberByteArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberByteArrOvrdDefField"), SingleMemberByteArrayDef.class); checkUnequals(SingleMemberShortArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberShortArrOvrdDefField"), SingleMemberShortArrayDef.class); checkUnequals(SingleMemberIntArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberIntArrOvrdDefField"), SingleMemberIntArrayDef.class); checkUnequals(SingleMemberLongArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberLongArrOvrdDefField"), SingleMemberLongArrayDef.class); checkUnequals(SingleMemberCharArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberCharArrOvrdDefField"), SingleMemberCharArrayDef.class); checkUnequals(SingleMemberFloatArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberFloatArrOvrdDefField"), SingleMemberFloatArrayDef.class); checkUnequals(SingleMemberDoubleArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberDoubleArrOvrdDefField"), SingleMemberDoubleArrayDef.class); checkUnequals(SingleMemberBooleanArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberBooleanArrOvrdDefField"), SingleMemberBooleanArrayDef.class); checkUnequals(SingleMemberStringArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberStringArrOvrdDefField"), SingleMemberStringArrayDef.class); checkUnequals(SingleMemberClassArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberClassArrOvrdDefField"), SingleMemberClassArrayDef.class); checkUnequals(SingleMemberEnumArrAcceptDefClass.class, UnitTest.class.getField("SingleMemberEnumArrOvrdDefField"), SingleMemberEnumArrayDef.class); // *** TESTS FOR SERIALIZATION AND DESERIALIZATION // MULTIMEMBER SCALAR TYPES checkSerialization(scalarTypesClass.class, ScalarTypes.class); checkSerialization(scalarTypesOverrideDefaultClass.class, ScalarTypesWithDefault.class); checkSerialization(scalarTypesAcceptDefaultClass.class, ScalarTypesWithDefault.class); // MULTIMEMBER ARRAY TYPES checkSerialization(emptyArrayTypesClass.class, ArrayTypes.class); checkSerialization(singleElementArrayTypesClass.class, ArrayTypes.class); checkSerialization(twoElementArrayTypesClass.class, ArrayTypes.class); checkSerialization(arrayTypesOverrideDefaultClass.class, ArrayTypesWithDefault.class); checkSerialization(arrayTypesAcceptDefaultClass.class, ArrayTypesWithDefault.class); // MARKER TYPE checkSerialization(markerClass.class, Marker.class); // SINGLE-MEMBER SCALAR TYPES checkSerialization(SingleMemberByteClass.class, SingleMemberByte.class); checkSerialization(SingleMemberShortClass.class, SingleMemberShort.class); checkSerialization(SingleMemberIntClass.class, SingleMemberInt.class); checkSerialization(SingleMemberLongClass.class, SingleMemberLong.class); checkSerialization(SingleMemberCharClass.class, SingleMemberChar.class); checkSerialization(SingleMemberFloatClass.class, SingleMemberFloat.class); checkSerialization(SingleMemberDoubleClass.class, SingleMemberDouble.class); checkSerialization(SingleMemberBooleanClass.class, SingleMemberBoolean.class); checkSerialization(SingleMemberStringClass.class, SingleMemberString.class); checkSerialization(SingleMemberClassClass.class, SingleMemberClass.class); checkSerialization(SingleMemberEnumClass.class, SingleMemberEnum.class); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-OVERRIDE checkSerialization(SingleMemberByteOvrdDefClass.class, SingleMemberByteWithDef.class); checkSerialization(SingleMemberShortOvrdDefClass.class, SingleMemberShortWithDef.class); checkSerialization(SingleMemberIntOvrdDefClass.class, SingleMemberIntWithDef.class); checkSerialization(SingleMemberLongOvrdDefClass.class, SingleMemberLongWithDef.class); checkSerialization(SingleMemberCharOvrdDefClass.class, SingleMemberCharWithDef.class); checkSerialization(SingleMemberFloatOvrdDefClass.class, SingleMemberFloatWithDef.class); checkSerialization(SingleMemberDoubleOvrdDefClass.class, SingleMemberDoubleWithDef.class); checkSerialization(SingleMemberBooleanOvrdDefClass.class, SingleMemberBooleanWithDef.class); checkSerialization(SingleMemberStringOvrdDefClass.class, SingleMemberStringWithDef.class); checkSerialization(SingleMemberClassOvrdDefClass.class, SingleMemberClassWithDef.class); checkSerialization(SingleMemberEnumOvrdDefClass.class, SingleMemberEnumWithDef.class); // SINGLE-MEMBER SCALAR TYPES WITH DEFAULT-ACCEPT checkSerialization(SingleMemberByteAcceptDefClass.class, SingleMemberByteWithDef.class); checkSerialization(SingleMemberShortAcceptDefClass.class, SingleMemberShortWithDef.class); checkSerialization(SingleMemberIntAcceptDefClass.class, SingleMemberIntWithDef.class); checkSerialization(SingleMemberLongAcceptDefClass.class, SingleMemberLongWithDef.class); checkSerialization(SingleMemberCharAcceptDefClass.class, SingleMemberCharWithDef.class); checkSerialization(SingleMemberFloatAcceptDefClass.class, SingleMemberFloatWithDef.class); checkSerialization(SingleMemberDoubleAcceptDefClass.class, SingleMemberDoubleWithDef.class); checkSerialization(SingleMemberBooleanAcceptDefClass.class, SingleMemberBooleanWithDef.class); checkSerialization(SingleMemberStringAcceptDefClass.class, SingleMemberStringWithDef.class); checkSerialization(SingleMemberClassAcceptDefClass.class, SingleMemberClassWithDef.class); checkSerialization(SingleMemberEnumAcceptDefClass.class, SingleMemberEnumWithDef.class); // SINGLE-MEMBER ARRAY TYPES (EMPTY ARRAY) checkSerialization(SingleMemberByteArrEmptyClass.class, SingleMemberByteArray.class); checkSerialization(SingleMemberShortArrEmptyClass.class, SingleMemberShortArray.class); checkSerialization(SingleMemberIntArrEmptyClass.class, SingleMemberIntArray.class); checkSerialization(SingleMemberLongArrEmptyClass.class, SingleMemberLongArray.class); checkSerialization(SingleMemberCharArrEmptyClass.class, SingleMemberCharArray.class); checkSerialization(SingleMemberFloatArrEmptyClass.class, SingleMemberFloatArray.class); checkSerialization(SingleMemberDoubleArrEmptyClass.class, SingleMemberDoubleArray.class); checkSerialization(SingleMemberBooleanArrEmptyClass.class, SingleMemberBooleanArray.class); checkSerialization(SingleMemberStringArrEmptyClass.class, SingleMemberStringArray.class); checkSerialization(SingleMemberClassArrEmptyClass.class, SingleMemberClassArray.class); checkSerialization(SingleMemberEnumArrEmptyClass.class, SingleMemberEnumArray.class); // SINGLE-MEMBER ARRAY TYPES (ONE-ELEMENT ARRAY) checkSerialization(SingleMemberByteArrOneClass.class, SingleMemberByteArray.class); checkSerialization(SingleMemberShortArrOneClass.class, SingleMemberShortArray.class); checkSerialization(SingleMemberIntArrOneClass.class, SingleMemberIntArray.class); checkSerialization(SingleMemberLongArrOneClass.class, SingleMemberLongArray.class); checkSerialization(SingleMemberCharArrOneClass.class, SingleMemberCharArray.class); checkSerialization(SingleMemberFloatArrOneClass.class, SingleMemberFloatArray.class); checkSerialization(SingleMemberDoubleArrOneClass.class, SingleMemberDoubleArray.class); checkSerialization(SingleMemberBooleanArrOneClass.class, SingleMemberBooleanArray.class); checkSerialization(SingleMemberStringArrOneClass.class, SingleMemberStringArray.class); checkSerialization(SingleMemberClassArrOneClass.class, SingleMemberClassArray.class); checkSerialization(SingleMemberEnumArrOneClass.class, SingleMemberEnumArray.class); // SINGLE-MEMBER ARRAY TYPES (TWO-ELEMENT ARRAY) checkSerialization(SingleMemberByteArrTwoClass.class, SingleMemberByteArray.class); checkSerialization(SingleMemberShortArrTwoClass.class, SingleMemberShortArray.class); checkSerialization(SingleMemberIntArrTwoClass.class, SingleMemberIntArray.class); checkSerialization(SingleMemberLongArrTwoClass.class, SingleMemberLongArray.class); checkSerialization(SingleMemberCharArrTwoClass.class, SingleMemberCharArray.class); checkSerialization(SingleMemberFloatArrTwoClass.class, SingleMemberFloatArray.class); checkSerialization(SingleMemberDoubleArrTwoClass.class, SingleMemberDoubleArray.class); checkSerialization(SingleMemberBooleanArrTwoClass.class, SingleMemberBooleanArray.class); checkSerialization(SingleMemberStringArrTwoClass.class, SingleMemberStringArray.class); checkSerialization(SingleMemberClassArrTwoClass.class, SingleMemberClassArray.class); checkSerialization(SingleMemberEnumArrTwoClass.class, SingleMemberEnumArray.class); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (OVERRIDE) checkSerialization(SingleMemberByteArrOvrdDefClass.class, SingleMemberByteArrayDef.class); checkSerialization(SingleMemberShortArrOvrdDefClass.class, SingleMemberShortArrayDef.class); checkSerialization(SingleMemberIntArrOvrdDefClass.class, SingleMemberIntArrayDef.class); checkSerialization(SingleMemberLongArrOvrdDefClass.class, SingleMemberLongArrayDef.class); checkSerialization(SingleMemberCharArrOvrdDefClass.class, SingleMemberCharArrayDef.class); checkSerialization(SingleMemberFloatArrOvrdDefClass.class, SingleMemberFloatArrayDef.class); checkSerialization(SingleMemberDoubleArrOvrdDefClass.class, SingleMemberDoubleArrayDef.class); checkSerialization(SingleMemberBooleanArrOvrdDefClass.class, SingleMemberBooleanArrayDef.class); checkSerialization(SingleMemberStringArrOvrdDefClass.class, SingleMemberStringArrayDef.class); checkSerialization(SingleMemberClassArrOvrdDefClass.class, SingleMemberClassArrayDef.class); checkSerialization(SingleMemberEnumArrOvrdDefClass.class, SingleMemberEnumArrayDef.class); // SINGLE-MEMBER ARRAY TYPES WITH DEFAULT (ACCEPT) checkSerialization(SingleMemberByteArrAcceptDefClass.class, SingleMemberByteArrayDef.class); checkSerialization(SingleMemberShortArrAcceptDefClass.class, SingleMemberShortArrayDef.class); checkSerialization(SingleMemberIntArrAcceptDefClass.class, SingleMemberIntArrayDef.class); checkSerialization(SingleMemberLongArrAcceptDefClass.class, SingleMemberLongArrayDef.class); checkSerialization(SingleMemberCharArrAcceptDefClass.class, SingleMemberCharArrayDef.class); checkSerialization(SingleMemberFloatArrAcceptDefClass.class, SingleMemberFloatArrayDef.class); checkSerialization(SingleMemberDoubleArrAcceptDefClass.class, SingleMemberDoubleArrayDef.class); checkSerialization(SingleMemberBooleanArrAcceptDefClass.class, SingleMemberBooleanArrayDef.class); checkSerialization(SingleMemberStringArrAcceptDefClass.class, SingleMemberStringArrayDef.class); checkSerialization(SingleMemberClassArrAcceptDefClass.class, SingleMemberClassArrayDef.class); checkSerialization(SingleMemberEnumArrAcceptDefClass.class, SingleMemberEnumArrayDef.class); // *** TESTS FOR ANNOTATION INHERITANCE AND ENUMERATING DECLARED ANNOTATIONS // Inheritance tests checkInheritence(Grandpa.class, true, true); checkInheritence(Dad.class, true, false); checkInheritence(Son.class, true, true); // Declared annotations tests checkDeclaredAnnotations(Grandpa.class, true, true); checkDeclaredAnnotations(Dad.class, false, false); checkDeclaredAnnotations(Son.class, false, true); // Generate summary System.out.println("\n" + numTests + " tests completed"); if (failCount != 0) throw new Exception("Failure count: " + failCount); else System.out.println("Success."); } static int failCount = 0; private static void fail(String test) { System.out.println("Failure: " + test); failCount++; } // ANNOTATION-VERIFICATION METHODS // Scalar multi-member static void checkScalarTypes(AnnotatedElement e) { try { checkScalarTypes(e.getAnnotation(ScalarTypes.class), e); } catch(Throwable t) { fail("ScalarTypes " + e + ": " + t); t.printStackTrace(); } } static void checkScalarTypes(ScalarTypes st, AnnotatedElement e) throws Exception { numTests++; if (!(st.b() == 1 && st.s() == 2 && st.i() == 3 && st.l() == 4L && st.c() == '5' && st.f() == 6.0f && st.d() == 7.0 && st.bool() == true && st.str().equals("custom") && st.cls() == Map.class && st.e() == Stooge.MOE && st.a().x() == 1 && st.a().y() == 2)) fail("ScalarTypes" + e); } static void checkScalarTypesOverrideDefault(AnnotatedElement e) { try { checkScalarTypesOverrideDefault(e.getAnnotation(ScalarTypesWithDefault.class), e); } catch(Throwable t) { fail("ScalarTypesOverrideDefaults" + e + ": " + t); } } static void checkScalarTypesOverrideDefault(ScalarTypesWithDefault st, AnnotatedElement e) { numTests++; if (!(st.b() == 1 && st.s() == 2 && st.i() == 3 && st.l() == 4L && st.c() == '5' && st.f() == 6.0f && st.d() == 7.0 && st.bool() == true && st.str().equals("custom") && st.cls() == Map.class && st.e() == Stooge.MOE)) fail("ScalarTypesOverrideDefaults" + e); } static void checkScalarTypesAcceptDefault(AnnotatedElement e) { try { checkScalarTypesAcceptDefault(e.getAnnotation(ScalarTypesWithDefault.class), e); } catch(Throwable t) { fail("ScalarTypesAcceptDefaults" + e + ": " + t); } } static void checkScalarTypesAcceptDefault(ScalarTypesWithDefault st, AnnotatedElement e) { numTests++; if (!(st.b() == 11 && st.s() == 12 && st.i() == 13 && st.l() == 14L && st.c() == 'V' && st.f() == 16.0f && st.d() == 17.0 && st.bool() == false && st.str().equals("default") && st.cls() == Class.class && st.e() == Stooge.LARRY && st.a().x() == 11 && st.a().y() == 12)) fail("ScalarTypesAcceptDefaults" + e); } // Array multi-member static void checkArrayTypes0(AnnotatedElement e) { try { checkArrayTypes0(e.getAnnotation(ArrayTypes.class), e); } catch(Throwable t) { fail("ArrayTypes(Empty)" + e + ": " + t); } } static void checkArrayTypes0(ArrayTypes at, AnnotatedElement e) { numTests++; if (!(at.b().length == 0 && at.s().length == 0 && at.i().length == 0 && at.l().length == 0 && at.c().length == 0 && at.f().length == 0 && at.d().length == 0 && at.bool().length == 0 && at.str().length == 0 && at.cls().length == 0 && at.e().length == 0 && at.a().length == 0)) { fail("ArrayTypes(Empty)" + e); } } static void checkArrayTypes1(AnnotatedElement e) { try { checkArrayTypes1(e.getAnnotation(ArrayTypes.class), e); } catch(Throwable t) { fail("ArrayTypes(One element)" + e + ": " + t); } } static void checkArrayTypes1(ArrayTypes at, AnnotatedElement e) { numTests++; if (!(at.b()[0] == 1 && at.s()[0] == 2 && at.i()[0] == 3 && at.l()[0] == 4L && at.c()[0] == '5' && at.f()[0] == 6.0f && at.d()[0] == 7.0 && at.bool()[0] == true && at.str()[0].equals("custom") && at.cls()[0] == Map.class && at.e()[0] == Stooge.MOE && at.a()[0].x() == 1 && at.a()[0].y() == 2 && at.b().length==1 && at.s().length==1 && at.i().length==1 && at.l().length==1 && at.c().length==1 && at.d().length==1 && at.bool().length==1 && at.str().length==1 && at.cls().length==1 && at.cls().length==1 && at.a().length==1)) fail("ArrayTypes(One element)" + e); } static void checkArrayTypes2(AnnotatedElement e) { try { checkArrayTypes2(e.getAnnotation(ArrayTypes.class), e); } catch(Throwable t) { fail("ArrayTypes(Two element)" + e + ": " + t); } } static void checkArrayTypes2(ArrayTypes at, AnnotatedElement e) { numTests++; if (!(at.b()[0] == 1 && at.b()[1] == 2 && at.s()[0] == 2 && at.s()[1] == 3 && at.i()[0] == 3 && at.i()[1] == 4 && at.l()[0] == 4L && at.l()[1] == 5L && at.c()[0] == '5' && at.c()[1] == '6' && at.f()[0] == 6.0f && at.f()[1] == 7.0f && at.d()[0] == 7.0 && at.d()[1] == 8.0 && at.bool()[0] == true && at.bool()[1] == false && at.str()[0].equals("custom") && at.str()[1].equals("paint") && at.cls()[0] == Map.class && at.cls()[1] == Set.class && at.e()[0] == Stooge.MOE && at.e()[1] == Stooge.CURLY && at.a()[0].x() == 1 && at.a()[0].y() == 2 && at.a()[1].x() == 3 && at.a()[1].y() == 4 && at.b().length==2 && at.s().length==2 && at.i().length==2 && at.l().length==2 && at.c().length==2 && at.d().length==2 && at.bool().length==2 && at.str().length==2 && at.cls().length==2 && at.cls().length==2 && at.a().length==2)) fail("ArrayTypes(Two element)" + e); } static void checkArrayTypesOverrideDefault(AnnotatedElement e) { try { checkArrayTypesOverrideDefault(e.getAnnotation(ArrayTypesWithDefault.class), e); } catch(Throwable t) { fail("ArrayTypesOverrideDefault" + e + ": " + t); } } static void checkArrayTypesOverrideDefault(ArrayTypesWithDefault at, AnnotatedElement e) { numTests++; if (!(at.b()[0] == 1 && at.s()[0] == 2 && at.i()[0] == 3 && at.l()[0] == 4L && at.c()[0] == '5' && at.f()[0] == 6.0f && at.d()[0] == 7.0 && at.bool()[0] == true && at.str()[0].equals("custom") && at.cls()[0] == Map.class && at.e()[0] == Stooge.MOE && at.a()[0].x() == 1 && at.a()[0].y() == 2 && at.b().length==1 && at.s().length==1 && at.i().length==1 && at.l().length==1 && at.c().length==1 && at.d().length==1 && at.bool().length==1 && at.str().length==1 && at.cls().length==1 && at.cls().length==1)) fail("ArrayTypesOverrideDefault" + e); } static void checkArrayTypesAcceptDefault(AnnotatedElement e) { try { checkArrayTypesAcceptDefault(e.getAnnotation(ArrayTypesWithDefault.class), e); } catch(Throwable t) { fail("ArrayTypesAcceptDefault" + e + ": " + t); } } static void checkArrayTypesAcceptDefault(ArrayTypesWithDefault at, AnnotatedElement e) { numTests++; if (!(at.b()[0] == 11 && at.s()[0] == 12 && at.i()[0] == 13 && at.l()[0] == 14L && at.c()[0] == 'V' && at.f()[0] == 16.0f && at.d()[0] == 17.0 && at.bool()[0] == false && at.str()[0].equals("default") && at.cls()[0] == Class.class && at.e()[0] == Stooge.LARRY && at.a()[0].x() == 11 && at.a()[0].y() == 12 && at.b().length==1 && at.s().length==1 && at.i().length==1 && at.l().length==1 && at.c().length==1 && at.d().length==1 && at.bool().length==1 && at.str().length==1 && at.cls().length==1 && at.cls().length==1)) fail("ArrayTypesAcceptDefault" + e); } // Scalar multi-member for parameters static void checkScalarTypesParam(Method m) { try { checkScalarTypes((ScalarTypes) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("ScalarTypes" + m + ": " + t); } } static void checkScalarTypesOverrideDefaultParam(Method m) { try { checkScalarTypesOverrideDefault((ScalarTypesWithDefault) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("ScalarTypesOverrideDefaults" + m + ": " + t); } } static void checkScalarTypesAcceptDefaultParam(Method m) { try { checkScalarTypesAcceptDefault((ScalarTypesWithDefault) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("ScalarTypesAcceptDefaults" + m + ": " + t); } } // Array multi-member for parameters static void checkArrayTypes0Param(Method m) { try { checkArrayTypes0((ArrayTypes) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("ArrayTypes(Empty)" + m + ": " + t); } } static void checkArrayTypes1Param(Method m) { try { checkArrayTypes1((ArrayTypes) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("ArrayTypes(One Element)" + m + ": " + t); } } static void checkArrayTypes2Param(Method m) { try { checkArrayTypes2((ArrayTypes) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("ArrayTypes(Two Elements)" + m + ": " + t); } } static void checkArrayTypesOverrideDefaultParam(Method m) { try { checkArrayTypesOverrideDefault((ArrayTypesWithDefault) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("ArrayTypesOverrideDefault" + m + ": " + t); } } static void checkArrayTypesAcceptDefaultParam(Method m) { try { checkArrayTypesAcceptDefault((ArrayTypesWithDefault) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("ArrayTypesAcceptDefault" + m + ": " + t); } } // marker type on parameter static void checkMarkerParam(Method m) { try { checkMarker((Marker) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("Marker" + m + ": " + t); } } // single-member scalar types on parameter static void checkSingleMemberByteParam(Method m) { try { checkSingleMemberByte((SingleMemberByte) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberByte" + m + ": " + t); } } static void checkSingleMemberShortParam(Method m) { try { checkSingleMemberShort((SingleMemberShort) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberShort" + m + ": " + t); } } static void checkSingleMemberIntParam(Method m) { try { checkSingleMemberInt((SingleMemberInt) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberInt" + m + ": " + t); } } static void checkSingleMemberLongParam(Method m) { try { checkSingleMemberLong((SingleMemberLong) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberLong" + m + ": " + t); } } static void checkSingleMemberCharParam(Method m) { try { checkSingleMemberChar((SingleMemberChar) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberChar" + m + ": " + t); } } static void checkSingleMemberFloatParam(Method m) { try { checkSingleMemberFloat((SingleMemberFloat) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberFloat" + m + ": " + t); } } static void checkSingleMemberDoubleParam(Method m) { try { checkSingleMemberDouble((SingleMemberDouble) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberDouble" + m + ": " + t); } } static void checkSingleMemberBooleanParam(Method m) { try { checkSingleMemberBoolean((SingleMemberBoolean) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberBoolean" + m + ": " + t); } } static void checkSingleMemberStringParam(Method m) { try { checkSingleMemberString((SingleMemberString) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberString" + m + ": " + t); } } static void checkSingleMemberClassParam(Method m) { try { checkSingleMemberClass((SingleMemberClass) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberClass" + m + ": " + t); } } static void checkSingleMemberEnumParam(Method m) { try { checkSingleMemberEnum((SingleMemberEnum) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberEnum" + m + ": " + t); } } // single-member scalar types with default-override on parameter static void checkSingleMemberByteOvrdDefParam(Method m) { try { checkSingleMemberByteOvrdDef((SingleMemberByteWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberByteOvrdDef" + m + ": " + t); } } static void checkSingleMemberShortOvrdDefParam(Method m) { try { checkSingleMemberShortOvrdDef((SingleMemberShortWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberShortOvrdDef" + m + ": " + t); } } static void checkSingleMemberIntOvrdDefParam(Method m) { try { checkSingleMemberIntOvrdDef((SingleMemberIntWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberIntOvrdDef" + m + ": " + t); } } static void checkSingleMemberLongOvrdDefParam(Method m) { try { checkSingleMemberLongOvrdDef((SingleMemberLongWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberLongOvrdDef" + m + ": " + t); } } static void checkSingleMemberCharOvrdDefParam(Method m) { try { checkSingleMemberCharOvrdDef((SingleMemberCharWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberCharOvrdDef" + m + ": " + t); } } static void checkSingleMemberFloatOvrdDefParam(Method m) { try { checkSingleMemberFloatOvrdDef((SingleMemberFloatWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberFloatOvrdDef" + m + ": " + t); } } static void checkSingleMemberDoubleOvrdDefParam(Method m) { try { checkSingleMemberDoubleOvrdDef((SingleMemberDoubleWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberDoubleOvrdDef" + m + ": " + t); } } static void checkSingleMemberBooleanOvrdDefParam(Method m) { try { checkSingleMemberBooleanOvrdDef((SingleMemberBooleanWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberBooleanOvrdDef" + m + ": " + t); } } static void checkSingleMemberStringOvrdDefParam(Method m) { try { checkSingleMemberStringOvrdDef((SingleMemberStringWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberStringOvrdDef" + m + ": " + t); } } static void checkSingleMemberClassOvrdDefParam(Method m) { try { checkSingleMemberClassOvrdDef((SingleMemberClassWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberClassOvrdDef" + m + ": " + t); } } static void checkSingleMemberEnumOvrdDefParam(Method m) { try { checkSingleMemberEnumOvrdDef((SingleMemberEnumWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberEnumOvrdDef" + m + ": " + t); } } // single-member scalar types with default-accept on PARAMETER static void checkSingleMemberByteAcceptDefParam(Method m) { try { checkSingleMemberByteAcceptDef((SingleMemberByteWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberByteAcceptDef" + m + ": " + t); } } static void checkSingleMemberShortAcceptDefParam(Method m) { try { checkSingleMemberShortAcceptDef((SingleMemberShortWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberShortAcceptDef" + m + ": " + t); } } static void checkSingleMemberIntAcceptDefParam(Method m) { try { checkSingleMemberIntAcceptDef((SingleMemberIntWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberIntAcceptDef" + m + ": " + t); } } static void checkSingleMemberLongAcceptDefParam(Method m) { try { checkSingleMemberLongAcceptDef((SingleMemberLongWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberLongAcceptDef" + m + ": " + t); } } static void checkSingleMemberCharAcceptDefParam(Method m) { try { checkSingleMemberCharAcceptDef((SingleMemberCharWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberCharAcceptDef" + m + ": " + t); } } static void checkSingleMemberFloatAcceptDefParam(Method m) { try { checkSingleMemberFloatAcceptDef((SingleMemberFloatWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberFloatAcceptDef" + m + ": " + t); } } static void checkSingleMemberDoubleAcceptDefParam(Method m) { try { checkSingleMemberDoubleAcceptDef((SingleMemberDoubleWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberDoubleAcceptDef" + m + ": " + t); } } static void checkSingleMemberBooleanAcceptDefParam(Method m) { try { checkSingleMemberBooleanAcceptDef((SingleMemberBooleanWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberBooleanAcceptDef" + m + ": " + t); } } static void checkSingleMemberStringAcceptDefParam(Method m) { try { checkSingleMemberStringAcceptDef((SingleMemberStringWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberStringAcceptDef" + m + ": " + t); } } static void checkSingleMemberClassAcceptDefParam(Method m) { try { checkSingleMemberClassAcceptDef((SingleMemberClassWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberClassAcceptDef" + m + ": " + t); } } static void checkSingleMemberEnumAcceptDefParam(Method m) { try { checkSingleMemberEnumAcceptDef((SingleMemberEnumWithDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberEnumAcceptDef" + m + ": " + t); } } // single-member array types (empty array) parameter static void checkSingleMemberByteArrEmptyParam(Method m) { try { checkSingleMemberByteArrEmpty((SingleMemberByteArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberByteArrEmpty" + m + ": " + t); } } static void checkSingleMemberShortArrEmptyParam(Method m) { try { checkSingleMemberShortArrEmpty((SingleMemberShortArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberShortArrEmpty" + m + ": " + t); } } static void checkSingleMemberIntArrEmptyParam(Method m) { try { checkSingleMemberIntArrEmpty((SingleMemberIntArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberIntArrEmpty" + m + ": " + t); } } static void checkSingleMemberLongArrEmptyParam(Method m) { try { checkSingleMemberLongArrEmpty((SingleMemberLongArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberLongArrEmpty" + m + ": " + t); } } static void checkSingleMemberCharArrEmptyParam(Method m) { try { checkSingleMemberCharArrEmpty((SingleMemberCharArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberCharArrEmpty" + m + ": " + t); } } static void checkSingleMemberFloatArrEmptyParam(Method m) { try { checkSingleMemberFloatArrEmpty((SingleMemberFloatArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberFloatArrEmpty" + m + ": " + t); } } static void checkSingleMemberDoubleArrEmptyParam(Method m) { try { checkSingleMemberDoubleArrEmpty((SingleMemberDoubleArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberDoubleArrEmpty" + m + ": " + t); } } static void checkSingleMemberBooleanArrEmptyParam(Method m) { try { checkSingleMemberBooleanArrEmpty((SingleMemberBooleanArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberBooleanArrEmpty" + m + ": " + t); } } static void checkSingleMemberStringArrEmptyParam(Method m) { try { checkSingleMemberStringArrEmpty((SingleMemberStringArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberStringArrEmpty" + m + ": " + t); } } static void checkSingleMemberClassArrEmptyParam(Method m) { try { checkSingleMemberClassArrEmpty((SingleMemberClassArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberClassArrEmpty" + m + ": " + t); } } static void checkSingleMemberEnumArrEmptyParam(Method m) { try { checkSingleMemberEnumArrEmpty((SingleMemberEnumArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberEnumArrEmpty" + m + ": " + t); } } // single-member array types (one-element array) on parameter static void checkSingleMemberByteArrOneParam(Method m) { try { checkSingleMemberByteArrOne((SingleMemberByteArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberByteArrOne" + m + ": " + t); } } static void checkSingleMemberShortArrOneParam(Method m) { try { checkSingleMemberShortArrOne((SingleMemberShortArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberShortArrOne" + m + ": " + t); } } static void checkSingleMemberIntArrOneParam(Method m) { try { checkSingleMemberIntArrOne((SingleMemberIntArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberIntArrOne" + m + ": " + t); } } static void checkSingleMemberLongArrOneParam(Method m) { try { checkSingleMemberLongArrOne((SingleMemberLongArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberLongArrOne" + m + ": " + t); } } static void checkSingleMemberCharArrOneParam(Method m) { try { checkSingleMemberCharArrOne((SingleMemberCharArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberCharArrOne" + m + ": " + t); } } static void checkSingleMemberFloatArrOneParam(Method m) { try { checkSingleMemberFloatArrOne((SingleMemberFloatArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberFloatArrOne" + m + ": " + t); } } static void checkSingleMemberDoubleArrOneParam(Method m) { try { checkSingleMemberDoubleArrOne((SingleMemberDoubleArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberDoubleArrOne" + m + ": " + t); } } static void checkSingleMemberBooleanArrOneParam(Method m) { try { checkSingleMemberBooleanArrOne((SingleMemberBooleanArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberBooleanArrOne" + m + ": " + t); } } static void checkSingleMemberStringArrOneParam(Method m) { try { checkSingleMemberStringArrOne((SingleMemberStringArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberStringArrOne" + m + ": " + t); } } static void checkSingleMemberClassArrOneParam(Method m) { try { checkSingleMemberClassArrOne((SingleMemberClassArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberClassArrOne" + m + ": " + t); } } static void checkSingleMemberEnumArrOneParam(Method m) { try { checkSingleMemberEnumArrOne((SingleMemberEnumArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberEnumArrOne" + m + ": " + t); } } // single-member array types (two-element array) on parameter static void checkSingleMemberByteArrTwoParam(Method m) { try { checkSingleMemberByteArrTwo((SingleMemberByteArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberByteArrTwo" + m + ": " + t); } } static void checkSingleMemberShortArrTwoParam(Method m) { try { checkSingleMemberShortArrTwo((SingleMemberShortArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberShortArrTwo" + m + ": " + t); } } static void checkSingleMemberIntArrTwoParam(Method m) { try { checkSingleMemberIntArrTwo((SingleMemberIntArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberIntArrTwo" + m + ": " + t); } } static void checkSingleMemberLongArrTwoParam(Method m) { try { checkSingleMemberLongArrTwo((SingleMemberLongArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberLongArrTwo" + m + ": " + t); } } static void checkSingleMemberCharArrTwoParam(Method m) { try { checkSingleMemberCharArrTwo((SingleMemberCharArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberCharArrTwo" + m + ": " + t); } } static void checkSingleMemberFloatArrTwoParam(Method m) { try { checkSingleMemberFloatArrTwo((SingleMemberFloatArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberFloatArrTwo" + m + ": " + t); } } static void checkSingleMemberDoubleArrTwoParam(Method m) { try { checkSingleMemberDoubleArrTwo((SingleMemberDoubleArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberDoubleArrTwo" + m + ": " + t); } } static void checkSingleMemberBooleanArrTwoParam(Method m) { try { checkSingleMemberBooleanArrTwo((SingleMemberBooleanArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberBooleanArrTwo" + m + ": " + t); } } static void checkSingleMemberStringArrTwoParam(Method m) { try { checkSingleMemberStringArrTwo((SingleMemberStringArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberStringArrTwo" + m + ": " + t); } } static void checkSingleMemberClassArrTwoParam(Method m) { try { checkSingleMemberClassArrTwo((SingleMemberClassArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberClassArrTwo" + m + ": " + t); } } static void checkSingleMemberEnumArrTwoParam(Method m) { try { checkSingleMemberEnumArrTwo((SingleMemberEnumArray) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberEnumArrTwo" + m + ": " + t); } } // single-member array types with default (override)on parameter static void checkSingleMemberByteArrOvrdDefParam(Method m) { try { checkSingleMemberByteArrOvrdDef((SingleMemberByteArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberByteArrOvrdDef" + m + ": " + t); } } static void checkSingleMemberShortArrOvrdDefParam(Method m) { try { checkSingleMemberShortArrOvrdDef((SingleMemberShortArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberShortArrOvrdDef" + m + ": " + t); } } static void checkSingleMemberIntArrOvrdDefParam(Method m) { try { checkSingleMemberIntArrOvrdDef((SingleMemberIntArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberIntArrOvrdDef" + m + ": " + t); } } static void checkSingleMemberLongArrOvrdDefParam(Method m) { try { checkSingleMemberLongArrOvrdDef((SingleMemberLongArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberLongArrOvrdDef" + m + ": " + t); } } static void checkSingleMemberCharArrOvrdDefParam(Method m) { try { checkSingleMemberCharArrOvrdDef((SingleMemberCharArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberCharArrOvrdDef" + m + ": " + t); } } static void checkSingleMemberFloatArrOvrdDefParam(Method m) { try { checkSingleMemberFloatArrOvrdDef((SingleMemberFloatArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberFloatArrOvrdDef" + m + ": " + t); } } static void checkSingleMemberDoubleArrOvrdDefParam(Method m) { try { checkSingleMemberDoubleArrOvrdDef((SingleMemberDoubleArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberDoubleArrOvrdDef" + m + ": " + t); } } static void checkSingleMemberBooleanArrOvrdDefParam(Method m) { try { checkSingleMemberBooleanArrOvrdDef((SingleMemberBooleanArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberBooleanArrOvrdDef" + m + ": " + t); } } static void checkSingleMemberStringArrOvrdDefParam(Method m) { try { checkSingleMemberStringArrOvrdDef((SingleMemberStringArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberStringArrOvrdDef" + m + ": " + t); } } static void checkSingleMemberClassArrOvrdDefParam(Method m) { try { checkSingleMemberClassArrOvrdDef((SingleMemberClassArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberClassArrOvrdDef" + m + ": " + t); } } static void checkSingleMemberEnumArrOvrdDefParam(Method m) { try { checkSingleMemberEnumArrOvrdDef((SingleMemberEnumArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberEnumArrOvrdDef" + m + ": " + t); } } // single-member array types with default (accept)on parameter static void checkSingleMemberByteArrAcceptDefParam(Method m) { try { checkSingleMemberByteArrAcceptDef((SingleMemberByteArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberByteArrAcceptDef" + m + ": " + t); } } static void checkSingleMemberShortArrAcceptDefParam(Method m) { try { checkSingleMemberShortArrAcceptDef((SingleMemberShortArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberShortArrAcceptDef" + m + ": " + t); } } static void checkSingleMemberIntArrAcceptDefParam(Method m) { try { checkSingleMemberIntArrAcceptDef((SingleMemberIntArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberIntArrAcceptDef" + m + ": " + t); } } static void checkSingleMemberLongArrAcceptDefParam(Method m) { try { checkSingleMemberLongArrAcceptDef((SingleMemberLongArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberLongArrAcceptDef" + m + ": " + t); } } static void checkSingleMemberCharArrAcceptDefParam(Method m) { try { checkSingleMemberCharArrAcceptDef((SingleMemberCharArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberCharArrAcceptDef" + m + ": " + t); } } static void checkSingleMemberFloatArrAcceptDefParam(Method m) { try { checkSingleMemberFloatArrAcceptDef((SingleMemberFloatArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberFloatArrAcceptDef" + m + ": " + t); } } static void checkSingleMemberDoubleArrAcceptDefParam(Method m) { try { checkSingleMemberDoubleArrAcceptDef((SingleMemberDoubleArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberDoubleArrAcceptDef" + m + ": " + t); } } static void checkSingleMemberBooleanArrAcceptDefParam(Method m) { try { checkSingleMemberBooleanArrAcceptDef((SingleMemberBooleanArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberBooleanArrAcceptDef" + m + ": " + t); } } static void checkSingleMemberStringArrAcceptDefParam(Method m) { try { checkSingleMemberStringArrAcceptDef((SingleMemberStringArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberStringArrAcceptDef" + m + ": " + t); } } static void checkSingleMemberClassArrAcceptDefParam(Method m) { try { checkSingleMemberClassArrAcceptDef((SingleMemberClassArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberClassArrAcceptDef" + m + ": " + t); } } static void checkSingleMemberEnumArrAcceptDefParam(Method m) { try { checkSingleMemberEnumArrAcceptDef((SingleMemberEnumArrayDef) m.getParameterAnnotations()[0][0], m); } catch(Throwable t) { fail("SingleMemberEnumArrAcceptDef" + m + ": " + t); } } // Marker static void checkMarker(AnnotatedElement e) { checkMarker(e.getAnnotation(Marker.class), e); } static void checkMarker(Marker m, AnnotatedElement e) { numTests++; try { if (m == null) fail("Marker " + e); } catch(Throwable t) { fail("Marker " + e + ": " + t); } } // Single-member static void checkSingleMemberByte(AnnotatedElement e) { checkSingleMemberByte(e.getAnnotation(SingleMemberByte.class), e); } static void checkSingleMemberByte(SingleMemberByte a, AnnotatedElement e) { numTests++; try { if (a.value() != 1) fail("SingleMemberByte " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberByte " + e + ": " + t); } } static void checkSingleMemberShort(AnnotatedElement e) { checkSingleMemberShort(e.getAnnotation(SingleMemberShort.class), e); } static void checkSingleMemberShort(SingleMemberShort a, AnnotatedElement e) { numTests++; try { if (a.value() != 2) fail("SingleMemberShort " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberShort " + e + ": " + t); } } static void checkSingleMemberInt(AnnotatedElement e) { checkSingleMemberInt(e.getAnnotation(SingleMemberInt.class), e); } static void checkSingleMemberInt(SingleMemberInt a, AnnotatedElement e) { numTests++; try { if (a.value() != 3) fail("SingleMemberInt " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberInt " + e + ": " + t); } } static void checkSingleMemberLong(AnnotatedElement e) { checkSingleMemberLong(e.getAnnotation(SingleMemberLong.class), e); } static void checkSingleMemberLong(SingleMemberLong a, AnnotatedElement e) { numTests++; try { if (a.value() != 4L) fail("SingleMemberLong " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberLong " + e + ": " + t); } } static void checkSingleMemberChar(AnnotatedElement e) { checkSingleMemberChar(e.getAnnotation(SingleMemberChar.class), e); } static void checkSingleMemberChar(SingleMemberChar a, AnnotatedElement e) { numTests++; try { if (a.value() != '5') fail("SingleMemberChar " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberChar " + e + ": " + t); } } static void checkSingleMemberFloat(AnnotatedElement e) { checkSingleMemberFloat(e.getAnnotation(SingleMemberFloat.class), e); } static void checkSingleMemberFloat(SingleMemberFloat a, AnnotatedElement e) { numTests++; try { if (a.value() != 6.0f) fail("SingleMemberFloat " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberFloat " + e + ": " + t); } } static void checkSingleMemberDouble(AnnotatedElement e) { checkSingleMemberDouble(e.getAnnotation(SingleMemberDouble.class), e); } static void checkSingleMemberDouble(SingleMemberDouble a, AnnotatedElement e) { numTests++; try { if (a.value() != 7.0) fail("SingleMemberDouble " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberDouble " + e + ": " + t); } } static void checkSingleMemberBoolean(AnnotatedElement e) { checkSingleMemberBoolean(e.getAnnotation(SingleMemberBoolean.class), e); } static void checkSingleMemberBoolean(SingleMemberBoolean a, AnnotatedElement e) { numTests++; try { if (!a.value()) fail("SingleMemberBoolean " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberBoolean " + e + ": " + t); } } static void checkSingleMemberString(AnnotatedElement e) { checkSingleMemberString(e.getAnnotation(SingleMemberString.class), e); } static void checkSingleMemberString(SingleMemberString a, AnnotatedElement e) { numTests++; try { if (!(a.value().equals("custom"))) fail("SingleMemberString " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberString " + e + ": " + t); } } static void checkSingleMemberClass(AnnotatedElement e) { checkSingleMemberClass(e.getAnnotation(SingleMemberClass.class), e); } static void checkSingleMemberClass(SingleMemberClass a, AnnotatedElement e) { numTests++; try { if (a.value() != Map.class) fail("SingleMemberClass " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberClass " + e + ": " + t); } } static void checkSingleMemberEnum(AnnotatedElement e) { checkSingleMemberEnum(e.getAnnotation(SingleMemberEnum.class), e); } static void checkSingleMemberEnum(SingleMemberEnum a, AnnotatedElement e) { numTests++; try { if (a.value() != Stooge.MOE) fail("SingleMemberEnum " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberEnum " + e + ": " + t); } } // Single-member with default (Override) static void checkSingleMemberByteOvrdDef(AnnotatedElement e) { checkSingleMemberByteOvrdDef(e.getAnnotation(SingleMemberByteWithDef.class), e); } static void checkSingleMemberByteOvrdDef(SingleMemberByteWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != 1) fail("SingleMemberByteOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberByteOvrdDef " + e + ": " + t); } } static void checkSingleMemberShortOvrdDef(AnnotatedElement e) { checkSingleMemberShortOvrdDef(e.getAnnotation(SingleMemberShortWithDef.class), e); } static void checkSingleMemberShortOvrdDef(SingleMemberShortWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != 2) fail("SingleMemberShortOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberShortOvrdDef " + e + ": " + t); } } static void checkSingleMemberIntOvrdDef(AnnotatedElement e) { checkSingleMemberIntOvrdDef(e.getAnnotation(SingleMemberIntWithDef.class), e); } static void checkSingleMemberIntOvrdDef(SingleMemberIntWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != 3) fail("SingleMemberIntOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberIntOvrdDef " + e + ": " + t); } } static void checkSingleMemberLongOvrdDef(AnnotatedElement e) { checkSingleMemberLongOvrdDef(e.getAnnotation(SingleMemberLongWithDef.class), e); } static void checkSingleMemberLongOvrdDef(SingleMemberLongWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != 4L) fail("SingleMemberLongOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberLongOvrdDef " + e + ": " + t); } } static void checkSingleMemberCharOvrdDef(AnnotatedElement e) { checkSingleMemberCharOvrdDef(e.getAnnotation(SingleMemberCharWithDef.class), e); } static void checkSingleMemberCharOvrdDef(SingleMemberCharWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != '5') fail("SingleMemberCharOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberCharOvrdDef " + e + ": " + t); } } static void checkSingleMemberFloatOvrdDef(AnnotatedElement e) { checkSingleMemberFloatOvrdDef(e.getAnnotation(SingleMemberFloatWithDef.class), e); } static void checkSingleMemberFloatOvrdDef(SingleMemberFloatWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != 6.0f) fail("SingleMemberFloatOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberFloatOvrdDef " + e + ": " + t); } } static void checkSingleMemberDoubleOvrdDef(AnnotatedElement e) { checkSingleMemberDoubleOvrdDef(e.getAnnotation(SingleMemberDoubleWithDef.class), e); } static void checkSingleMemberDoubleOvrdDef(SingleMemberDoubleWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != 7.0) fail("SingleMemberDoubleOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberDoubleOvrdDef " + e + ": " + t); } } static void checkSingleMemberBooleanOvrdDef(AnnotatedElement e) { checkSingleMemberBooleanOvrdDef(e.getAnnotation(SingleMemberBooleanWithDef.class), e); } static void checkSingleMemberBooleanOvrdDef(SingleMemberBooleanWithDef a, AnnotatedElement e) { numTests++; try { if (!a.value()) fail("SingleMemberBooleanOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberBooleanOvrdDef " + e + ": " + t); } } static void checkSingleMemberStringOvrdDef(AnnotatedElement e) { checkSingleMemberStringOvrdDef(e.getAnnotation(SingleMemberStringWithDef.class), e); } static void checkSingleMemberStringOvrdDef(SingleMemberStringWithDef a, AnnotatedElement e) { numTests++; try { if (!(a.value().equals("custom"))) fail("SingleMemberStringOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberStringOvrdDef " + e + ": " + t); } } static void checkSingleMemberClassOvrdDef(AnnotatedElement e) { checkSingleMemberClassOvrdDef(e.getAnnotation(SingleMemberClassWithDef.class), e); } static void checkSingleMemberClassOvrdDef(SingleMemberClassWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != Map.class) fail("SingleMemberClassOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberClassOvrdDef " + e + ": " + t); } } static void checkSingleMemberEnumOvrdDef(AnnotatedElement e) { checkSingleMemberEnumOvrdDef(e.getAnnotation(SingleMemberEnumWithDef.class), e); } static void checkSingleMemberEnumOvrdDef(SingleMemberEnumWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != Stooge.MOE) fail("SingleMemberEnumOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberEnumOvrdDef " + e + ": " + t); } } // Single-member with default (Accept) static void checkSingleMemberByteAcceptDef(AnnotatedElement e) { checkSingleMemberByteAcceptDef(e.getAnnotation(SingleMemberByteWithDef.class), e); } static void checkSingleMemberByteAcceptDef(SingleMemberByteWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != 11) fail("SingleMemberByteAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberByteAcceptDef " + e + ": " + t); } } static void checkSingleMemberShortAcceptDef(AnnotatedElement e) { checkSingleMemberShortAcceptDef(e.getAnnotation(SingleMemberShortWithDef.class), e); } static void checkSingleMemberShortAcceptDef(SingleMemberShortWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != 12) fail("SingleMemberShortAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberShortAcceptDef " + e + ": " + t); } } static void checkSingleMemberIntAcceptDef(AnnotatedElement e) { checkSingleMemberIntAcceptDef(e.getAnnotation(SingleMemberIntWithDef.class), e); } static void checkSingleMemberIntAcceptDef(SingleMemberIntWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != 13) fail("SingleMemberIntAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberIntAcceptDef " + e + ": " + t); } } static void checkSingleMemberLongAcceptDef(AnnotatedElement e) { checkSingleMemberLongAcceptDef(e.getAnnotation(SingleMemberLongWithDef.class), e); } static void checkSingleMemberLongAcceptDef(SingleMemberLongWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != 14L) fail("SingleMemberLongAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberLongAcceptDef " + e + ": " + t); } } static void checkSingleMemberCharAcceptDef(AnnotatedElement e) { checkSingleMemberCharAcceptDef(e.getAnnotation(SingleMemberCharWithDef.class), e); } static void checkSingleMemberCharAcceptDef(SingleMemberCharWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != 'V') fail("SingleMemberCharAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberCharAcceptDef " + e + ": " + t); } } static void checkSingleMemberFloatAcceptDef(AnnotatedElement e) { checkSingleMemberFloatAcceptDef(e.getAnnotation(SingleMemberFloatWithDef.class), e); } static void checkSingleMemberFloatAcceptDef(SingleMemberFloatWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != 16.0f) fail("SingleMemberFloatAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberFloatAcceptDef " + e + ": " + t); } } static void checkSingleMemberDoubleAcceptDef(AnnotatedElement e) { checkSingleMemberDoubleAcceptDef(e.getAnnotation(SingleMemberDoubleWithDef.class), e); } static void checkSingleMemberDoubleAcceptDef(SingleMemberDoubleWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != 17.0) fail("SingleMemberDoubleAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberDoubleAcceptDef " + e + ": " + t); } } static void checkSingleMemberBooleanAcceptDef(AnnotatedElement e) { checkSingleMemberBooleanAcceptDef(e.getAnnotation(SingleMemberBooleanWithDef.class), e); } static void checkSingleMemberBooleanAcceptDef(SingleMemberBooleanWithDef a, AnnotatedElement e) { numTests++; try { if (a.value()) fail("SingleMemberBooleanAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberBooleanAcceptDef " + e + ": " + t); } } static void checkSingleMemberStringAcceptDef(AnnotatedElement e) { checkSingleMemberStringAcceptDef(e.getAnnotation(SingleMemberStringWithDef.class), e); } static void checkSingleMemberStringAcceptDef(SingleMemberStringWithDef a, AnnotatedElement e) { numTests++; try { if (!(a.value().equals("default"))) fail("SingleMemberStringAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberStringAcceptDef " + e + ": " + t); } } static void checkSingleMemberClassAcceptDef(AnnotatedElement e) { checkSingleMemberClassAcceptDef(e.getAnnotation(SingleMemberClassWithDef.class), e); } static void checkSingleMemberClassAcceptDef(SingleMemberClassWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != Class.class) fail("SingleMemberClassAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberClassAcceptDef " + e + ": " + t); } } static void checkSingleMemberEnumAcceptDef(AnnotatedElement e) { checkSingleMemberEnumAcceptDef(e.getAnnotation(SingleMemberEnumWithDef.class), e); } static void checkSingleMemberEnumAcceptDef(SingleMemberEnumWithDef a, AnnotatedElement e) { numTests++; try { if (a.value() != Stooge.LARRY) fail("SingleMemberEnumAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberEnumAcceptDef " + e + ": " + t); } } // Single member array (empty array) static void checkSingleMemberByteArrEmpty(AnnotatedElement e) { checkSingleMemberByteArrEmpty(e.getAnnotation(SingleMemberByteArray.class), e); } static void checkSingleMemberByteArrEmpty(SingleMemberByteArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 0) fail("SingleMemberByteArrEmpty " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberByteArrEmpty " + e + ": " + t); } } static void checkSingleMemberShortArrEmpty(AnnotatedElement e) { checkSingleMemberShortArrEmpty(e.getAnnotation(SingleMemberShortArray.class), e); } static void checkSingleMemberShortArrEmpty(SingleMemberShortArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 0) fail("SingleMemberShortArrEmpty " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberShortArrEmpty " + e + ": " + t); } } static void checkSingleMemberIntArrEmpty(AnnotatedElement e) { checkSingleMemberIntArrEmpty(e.getAnnotation(SingleMemberIntArray.class), e); } static void checkSingleMemberIntArrEmpty(SingleMemberIntArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 0) fail("SingleMemberIntArrEmpty " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberIntArrEmpty " + e + ": " + t); } } static void checkSingleMemberLongArrEmpty(AnnotatedElement e) { checkSingleMemberLongArrEmpty(e.getAnnotation(SingleMemberLongArray.class), e); } static void checkSingleMemberLongArrEmpty(SingleMemberLongArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 0) fail("SingleMemberLongArrEmpty " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberLongArrEmpty " + e + ": " + t); } } static void checkSingleMemberCharArrEmpty(AnnotatedElement e) { checkSingleMemberCharArrEmpty(e.getAnnotation(SingleMemberCharArray.class), e); } static void checkSingleMemberCharArrEmpty(SingleMemberCharArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 0) fail("SingleMemberCharArrEmpty " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberCharArrEmpty " + e + ": " + t); } } static void checkSingleMemberFloatArrEmpty(AnnotatedElement e) { checkSingleMemberFloatArrEmpty(e.getAnnotation(SingleMemberFloatArray.class), e); } static void checkSingleMemberFloatArrEmpty(SingleMemberFloatArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 0) fail("SingleMemberFloatArrEmpty " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberFloatArrEmpty " + e + ": " + t); } } static void checkSingleMemberDoubleArrEmpty(AnnotatedElement e) { checkSingleMemberDoubleArrEmpty(e.getAnnotation(SingleMemberDoubleArray.class), e); } static void checkSingleMemberDoubleArrEmpty(SingleMemberDoubleArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 0) fail("SingleMemberDoubleArrEmpty " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberDoubleArrEmpty " + e + ": " + t); } } static void checkSingleMemberBooleanArrEmpty(AnnotatedElement e) { checkSingleMemberBooleanArrEmpty(e.getAnnotation(SingleMemberBooleanArray.class), e); } static void checkSingleMemberBooleanArrEmpty(SingleMemberBooleanArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 0) fail("SingleMemberBooleanArrEmpty " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberBooleanArrEmpty " + e + ": " + t); } } static void checkSingleMemberStringArrEmpty(AnnotatedElement e) { checkSingleMemberStringArrEmpty(e.getAnnotation(SingleMemberStringArray.class), e); } static void checkSingleMemberStringArrEmpty(SingleMemberStringArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 0) fail("SingleMemberStringArrEmpty " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberStringArrEmpty " + e + ": " + t); } } static void checkSingleMemberClassArrEmpty(AnnotatedElement e) { checkSingleMemberClassArrEmpty(e.getAnnotation(SingleMemberClassArray.class), e); } static void checkSingleMemberClassArrEmpty(SingleMemberClassArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 0) fail("SingleMemberClassArrEmpty " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberClassArrEmpty " + e + ": " + t); } } static void checkSingleMemberEnumArrEmpty(AnnotatedElement e) { checkSingleMemberEnumArrEmpty(e.getAnnotation(SingleMemberEnumArray.class), e); } static void checkSingleMemberEnumArrEmpty(SingleMemberEnumArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 0) fail("SingleMemberEnumArrEmpty " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberEnumArrEmpty " + e + ": " + t); } } // Single member array (one element array) static void checkSingleMemberByteArrOne(AnnotatedElement e) { checkSingleMemberByteArrOne(e.getAnnotation(SingleMemberByteArray.class), e); } static void checkSingleMemberByteArrOne(SingleMemberByteArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != (byte)1) fail("SingleMemberByteArrOne " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberByteArrOne " + e + ": " + t); } } static void checkSingleMemberShortArrOne(AnnotatedElement e) { checkSingleMemberShortArrOne(e.getAnnotation(SingleMemberShortArray.class), e); } static void checkSingleMemberShortArrOne(SingleMemberShortArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != (short)2) fail("SingleMemberShortArrOne " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberShortArrOne " + e + ": " + t); } } static void checkSingleMemberIntArrOne(AnnotatedElement e) { checkSingleMemberIntArrOne(e.getAnnotation(SingleMemberIntArray.class), e); } static void checkSingleMemberIntArrOne(SingleMemberIntArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != 3) fail("SingleMemberIntArrOne " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberIntArrOne " + e + ": " + t); } } static void checkSingleMemberLongArrOne(AnnotatedElement e) { checkSingleMemberLongArrOne(e.getAnnotation(SingleMemberLongArray.class), e); } static void checkSingleMemberLongArrOne(SingleMemberLongArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != 4L) fail("SingleMemberLongArrOne " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberLongArrOne " + e + ": " + t); } } static void checkSingleMemberCharArrOne(AnnotatedElement e) { checkSingleMemberCharArrOne(e.getAnnotation(SingleMemberCharArray.class), e); } static void checkSingleMemberCharArrOne(SingleMemberCharArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != '5') fail("SingleMemberCharArrOne " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberCharArrOne " + e + ": " + t); } } static void checkSingleMemberFloatArrOne(AnnotatedElement e) { checkSingleMemberFloatArrOne(e.getAnnotation(SingleMemberFloatArray.class), e); } static void checkSingleMemberFloatArrOne(SingleMemberFloatArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != 6.0f) fail("SingleMemberFloatArrOne " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberFloatArrOne " + e + ": " + t); } } static void checkSingleMemberDoubleArrOne(AnnotatedElement e) { checkSingleMemberDoubleArrOne(e.getAnnotation(SingleMemberDoubleArray.class), e); } static void checkSingleMemberDoubleArrOne(SingleMemberDoubleArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != 7.0) fail("SingleMemberDoubleArrOne " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberDoubleArrOne " + e + ": " + t); } } static void checkSingleMemberBooleanArrOne(AnnotatedElement e) { checkSingleMemberBooleanArrOne(e.getAnnotation(SingleMemberBooleanArray.class), e); } static void checkSingleMemberBooleanArrOne(SingleMemberBooleanArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || !a.value()[0]) fail("SingleMemberBooleanArrOne " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberBooleanArrOne " + e + ": " + t); } } static void checkSingleMemberStringArrOne(AnnotatedElement e) { checkSingleMemberStringArrOne(e.getAnnotation(SingleMemberStringArray.class), e); } static void checkSingleMemberStringArrOne(SingleMemberStringArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || !(a.value()[0].equals("custom"))) fail("SingleMemberStringArrOne " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberStringArrOne " + e + ": " + t); } } static void checkSingleMemberClassArrOne(AnnotatedElement e) { checkSingleMemberClassArrOne(e.getAnnotation(SingleMemberClassArray.class), e); } static void checkSingleMemberClassArrOne(SingleMemberClassArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != Map.class) fail("SingleMemberClassArrOne " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberClassArrOne " + e + ": " + t); } } static void checkSingleMemberEnumArrOne(AnnotatedElement e) { checkSingleMemberEnumArrOne(e.getAnnotation(SingleMemberEnumArray.class), e); } static void checkSingleMemberEnumArrOne(SingleMemberEnumArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != Stooge.MOE) fail("SingleMemberEnumArrOne " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberEnumArrOne " + e + ": " + t); } } // Single member array (two element array) static void checkSingleMemberByteArrTwo(AnnotatedElement e) { checkSingleMemberByteArrTwo(e.getAnnotation(SingleMemberByteArray.class), e); } static void checkSingleMemberByteArrTwo(SingleMemberByteArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 2 || a.value()[0] != (byte)1 || a.value()[1] != (byte)2) fail("SingleMemberByteArrTwo " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberByteArrTwo " + e + ": " + t); } } static void checkSingleMemberShortArrTwo(AnnotatedElement e) { checkSingleMemberShortArrTwo(e.getAnnotation(SingleMemberShortArray.class), e); } static void checkSingleMemberShortArrTwo(SingleMemberShortArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 2 || a.value()[0] != (short)2 || a.value()[1] != (short)3) fail("SingleMemberShortArrTwo " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberShortArrTwo " + e + ": " + t); } } static void checkSingleMemberIntArrTwo(AnnotatedElement e) { checkSingleMemberIntArrTwo(e.getAnnotation(SingleMemberIntArray.class), e); } static void checkSingleMemberIntArrTwo(SingleMemberIntArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 2 || a.value()[0] != 3 || a.value()[1] != 4) fail("SingleMemberIntArrTwo " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberIntArrTwo " + e + ": " + t); } } static void checkSingleMemberLongArrTwo(AnnotatedElement e) { checkSingleMemberLongArrTwo(e.getAnnotation(SingleMemberLongArray.class), e); } static void checkSingleMemberLongArrTwo(SingleMemberLongArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 2 || a.value()[0] != 4L || a.value()[1] != 5L) fail("SingleMemberLongArrTwo " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberLongArrTwo " + e + ": " + t); } } static void checkSingleMemberCharArrTwo(AnnotatedElement e) { checkSingleMemberCharArrTwo(e.getAnnotation(SingleMemberCharArray.class), e); } static void checkSingleMemberCharArrTwo(SingleMemberCharArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 2 || a.value()[0] != '5' || a.value()[1] != '6') fail("SingleMemberCharArrTwo " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberCharArrTwo " + e + ": " + t); } } static void checkSingleMemberFloatArrTwo(AnnotatedElement e) { checkSingleMemberFloatArrTwo(e.getAnnotation(SingleMemberFloatArray.class), e); } static void checkSingleMemberFloatArrTwo(SingleMemberFloatArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 2 || a.value()[0] != 6.0f || a.value()[1] != 7.0f) fail("SingleMemberFloatArrTwo " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberFloatArrTwo " + e + ": " + t); } } static void checkSingleMemberDoubleArrTwo(AnnotatedElement e) { checkSingleMemberDoubleArrTwo(e.getAnnotation(SingleMemberDoubleArray.class), e); } static void checkSingleMemberDoubleArrTwo(SingleMemberDoubleArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 2 || a.value()[0] != 7.0 || a.value()[1] != 8.0) fail("SingleMemberDoubleArrTwo " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberDoubleArrTwo " + e + ": " + t); } } static void checkSingleMemberBooleanArrTwo(AnnotatedElement e) { checkSingleMemberBooleanArrTwo(e.getAnnotation(SingleMemberBooleanArray.class), e); } static void checkSingleMemberBooleanArrTwo(SingleMemberBooleanArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 2 || !a.value()[0] || a.value()[1]) fail("SingleMemberBooleanArrTwo " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberBooleanArrTwo " + e + ": " + t); } } static void checkSingleMemberStringArrTwo(AnnotatedElement e) { checkSingleMemberStringArrTwo(e.getAnnotation(SingleMemberStringArray.class), e); } static void checkSingleMemberStringArrTwo(SingleMemberStringArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 2 || !(a.value()[0].equals("custom")) || !(a.value()[1].equals("paint"))) fail("SingleMemberStringArrTwo " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberStringArrTwo " + e + ": " + t); } } static void checkSingleMemberClassArrTwo(AnnotatedElement e) { checkSingleMemberClassArrTwo(e.getAnnotation(SingleMemberClassArray.class), e); } static void checkSingleMemberClassArrTwo(SingleMemberClassArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 2 || a.value()[0] != Map.class || a.value()[1] != Set.class) fail("SingleMemberClassArrTwo " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberClassArrTwo " + e + ": " + t); } } static void checkSingleMemberEnumArrTwo(AnnotatedElement e) { checkSingleMemberEnumArrTwo(e.getAnnotation(SingleMemberEnumArray.class), e); } static void checkSingleMemberEnumArrTwo(SingleMemberEnumArray a, AnnotatedElement e) { numTests++; try { if (a.value().length != 2 || a.value()[0] != Stooge.MOE || a.value()[1] != Stooge.CURLY) fail("SingleMemberEnumArrTwo " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberEnumArrTwo " + e + ": " + t); } } // Single member array with default (override) static void checkSingleMemberByteArrOvrdDef(AnnotatedElement e) { checkSingleMemberByteArrOvrdDef(e.getAnnotation(SingleMemberByteArrayDef.class), e); } static void checkSingleMemberByteArrOvrdDef(SingleMemberByteArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != (byte)1) fail("SingleMemberByteArrOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberByteArrOvrdDef " + e + ": " + t); } } static void checkSingleMemberShortArrOvrdDef(AnnotatedElement e) { checkSingleMemberShortArrOvrdDef(e.getAnnotation(SingleMemberShortArrayDef.class), e); } static void checkSingleMemberShortArrOvrdDef(SingleMemberShortArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != (short)2) fail("SingleMemberShortArrOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberShortArrOvrdDef " + e + ": " + t); } } static void checkSingleMemberIntArrOvrdDef(AnnotatedElement e) { checkSingleMemberIntArrOvrdDef(e.getAnnotation(SingleMemberIntArrayDef.class), e); } static void checkSingleMemberIntArrOvrdDef(SingleMemberIntArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != 3) fail("SingleMemberIntArrOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberIntArrOvrdDef " + e + ": " + t); } } static void checkSingleMemberLongArrOvrdDef(AnnotatedElement e) { checkSingleMemberLongArrOvrdDef(e.getAnnotation(SingleMemberLongArrayDef.class), e); } static void checkSingleMemberLongArrOvrdDef(SingleMemberLongArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != 4L) fail("SingleMemberLongArrOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberLongArrOvrdDef " + e + ": " + t); } } static void checkSingleMemberCharArrOvrdDef(AnnotatedElement e) { checkSingleMemberCharArrOvrdDef(e.getAnnotation(SingleMemberCharArrayDef.class), e); } static void checkSingleMemberCharArrOvrdDef(SingleMemberCharArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != '5') fail("SingleMemberCharArrOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberCharArrOvrdDef " + e + ": " + t); } } static void checkSingleMemberFloatArrOvrdDef(AnnotatedElement e) { checkSingleMemberFloatArrOvrdDef(e.getAnnotation(SingleMemberFloatArrayDef.class), e); } static void checkSingleMemberFloatArrOvrdDef(SingleMemberFloatArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != 6.0f) fail("SingleMemberFloatArrOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberFloatArrOvrdDef " + e + ": " + t); } } static void checkSingleMemberDoubleArrOvrdDef(AnnotatedElement e) { checkSingleMemberDoubleArrOvrdDef(e.getAnnotation(SingleMemberDoubleArrayDef.class), e); } static void checkSingleMemberDoubleArrOvrdDef(SingleMemberDoubleArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != 7.0) fail("SingleMemberDoubleArrOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberDoubleArrOvrdDef " + e + ": " + t); } } static void checkSingleMemberBooleanArrOvrdDef(AnnotatedElement e) { checkSingleMemberBooleanArrOvrdDef(e.getAnnotation(SingleMemberBooleanArrayDef.class), e); } static void checkSingleMemberBooleanArrOvrdDef(SingleMemberBooleanArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || !a.value()[0]) fail("SingleMemberBooleanArrOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberBooleanArrOvrdDef " + e + ": " + t); } } static void checkSingleMemberStringArrOvrdDef(AnnotatedElement e) { checkSingleMemberStringArrOvrdDef(e.getAnnotation(SingleMemberStringArrayDef.class), e); } static void checkSingleMemberStringArrOvrdDef(SingleMemberStringArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || !(a.value()[0].equals("custom"))) fail("SingleMemberStringArrOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberStringArrOvrdDef " + e + ": " + t); } } static void checkSingleMemberClassArrOvrdDef(AnnotatedElement e) { checkSingleMemberClassArrOvrdDef(e.getAnnotation(SingleMemberClassArrayDef.class), e); } static void checkSingleMemberClassArrOvrdDef(SingleMemberClassArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != Map.class) fail("SingleMemberClassArrOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberClassArrOvrdDef " + e + ": " + t); } } static void checkSingleMemberEnumArrOvrdDef(AnnotatedElement e) { checkSingleMemberEnumArrOvrdDef(e.getAnnotation(SingleMemberEnumArrayDef.class), e); } static void checkSingleMemberEnumArrOvrdDef(SingleMemberEnumArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != Stooge.MOE) fail("SingleMemberEnumArrOvrdDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberEnumArrOvrdDef " + e + ": " + t); } } // Single member array with default (accept) static void checkSingleMemberByteArrAcceptDef(AnnotatedElement e) { checkSingleMemberByteArrAcceptDef(e.getAnnotation(SingleMemberByteArrayDef.class), e); } static void checkSingleMemberByteArrAcceptDef(SingleMemberByteArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != (byte)11) fail("SingleMemberByteArrAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberByteArrAcceptDef " + e + ": " + t); } } static void checkSingleMemberShortArrAcceptDef(AnnotatedElement e) { checkSingleMemberShortArrAcceptDef(e.getAnnotation(SingleMemberShortArrayDef.class), e); } static void checkSingleMemberShortArrAcceptDef(SingleMemberShortArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != (short)12) fail("SingleMemberShortArrAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberShortArrAcceptDef " + e + ": " + t); } } static void checkSingleMemberIntArrAcceptDef(AnnotatedElement e) { checkSingleMemberIntArrAcceptDef(e.getAnnotation(SingleMemberIntArrayDef.class), e); } static void checkSingleMemberIntArrAcceptDef(SingleMemberIntArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != 13) fail("SingleMemberIntArrAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberIntArrAcceptDef " + e + ": " + t); } } static void checkSingleMemberLongArrAcceptDef(AnnotatedElement e) { checkSingleMemberLongArrAcceptDef(e.getAnnotation(SingleMemberLongArrayDef.class), e); } static void checkSingleMemberLongArrAcceptDef(SingleMemberLongArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != 14L) fail("SingleMemberLongArrAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberLongArrAcceptDef " + e + ": " + t); } } static void checkSingleMemberCharArrAcceptDef(AnnotatedElement e) { checkSingleMemberCharArrAcceptDef(e.getAnnotation(SingleMemberCharArrayDef.class), e); } static void checkSingleMemberCharArrAcceptDef(SingleMemberCharArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != 'V') fail("SingleMemberCharArrAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberCharArrAcceptDef " + e + ": " + t); } } static void checkSingleMemberFloatArrAcceptDef(AnnotatedElement e) { checkSingleMemberFloatArrAcceptDef(e.getAnnotation(SingleMemberFloatArrayDef.class), e); } static void checkSingleMemberFloatArrAcceptDef(SingleMemberFloatArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != 16.0f) fail("SingleMemberFloatArrAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberFloatArrAcceptDef " + e + ": " + t); } } static void checkSingleMemberDoubleArrAcceptDef(AnnotatedElement e) { checkSingleMemberDoubleArrAcceptDef(e.getAnnotation(SingleMemberDoubleArrayDef.class), e); } static void checkSingleMemberDoubleArrAcceptDef(SingleMemberDoubleArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != 17.0) fail("SingleMemberDoubleArrAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberDoubleArrAcceptDef " + e + ": " + t); } } static void checkSingleMemberBooleanArrAcceptDef(AnnotatedElement e) { checkSingleMemberBooleanArrAcceptDef(e.getAnnotation(SingleMemberBooleanArrayDef.class), e); } static void checkSingleMemberBooleanArrAcceptDef(SingleMemberBooleanArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0]) fail("SingleMemberBooleanArrAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberBooleanArrAcceptDef " + e + ": " + t); } } static void checkSingleMemberStringArrAcceptDef(AnnotatedElement e) { checkSingleMemberStringArrAcceptDef(e.getAnnotation(SingleMemberStringArrayDef.class), e); } static void checkSingleMemberStringArrAcceptDef(SingleMemberStringArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || !(a.value()[0].equals("default"))) fail("SingleMemberStringArrAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberStringArrAcceptDef " + e + ": " + t); } } static void checkSingleMemberClassArrAcceptDef(AnnotatedElement e) { checkSingleMemberClassArrAcceptDef(e.getAnnotation(SingleMemberClassArrayDef.class), e); } static void checkSingleMemberClassArrAcceptDef(SingleMemberClassArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != Class.class) fail("SingleMemberClassArrAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberClassArrAcceptDef " + e + ": " + t); } } static void checkSingleMemberEnumArrAcceptDef(AnnotatedElement e) { checkSingleMemberEnumArrAcceptDef(e.getAnnotation(SingleMemberEnumArrayDef.class), e); } static void checkSingleMemberEnumArrAcceptDef(SingleMemberEnumArrayDef a, AnnotatedElement e) { numTests++; try { if (a.value().length != 1 || a.value()[0] != Stooge.LARRY) fail("SingleMemberEnumArrAcceptDef " + e + " = " + a.value()); } catch(Throwable t) { fail("SingleMemberEnumArrAcceptDef " + e + ": " + t); } } // Verfification methods for equals/hashCode/serialization static <T extends Annotation> void checkEquals(AnnotatedElement e1, AnnotatedElement e2, Class<T> annoType) { numTests++; T a1 = e1.getAnnotation(annoType); T a2 = e2.getAnnotation(annoType); try { if (!a1.equals(a2)) fail(a1 + " != " + a2); if (a1.hashCode() != a2.hashCode()) fail(a1 + ".hashCode() [" + a1.hashCode() + "] != " + a2 + " .hashCode()["+ a2.hashCode()+"]"); if (!(a1.toString().equals(a2.toString()))) fail(a1 + ".toString() != " + a2 + ".toString()"); } catch(Throwable t) { fail(a1 + " == " + a2 + ": " + t); } } static <T extends Annotation> void checkUnequals(AnnotatedElement e1, AnnotatedElement e2, Class<T> annoType) { numTests++; T a1 = e1.getAnnotation(annoType); T a2 = e2.getAnnotation(annoType); try { if (a1.equals(a2)) fail(a1 + " == " + a2); if (a1.hashCode() == a2.hashCode()) fail(a1 + ".hashCode() [" + a1.hashCode() + "] == " + a2 + " .hashCode()[" + a2.hashCode() + "]"); if (a1.toString().equals(a2.toString())) fail(a1 + ".toString() == " + a2 + ".toString()"); } catch(Throwable t) { fail(a1 + " != " + a2 + ": " + t); } } // Verfification method for serialization/deserialization static <T extends Annotation> void checkSerialization(AnnotatedElement e, Class<T> annoType) { numTests++; T a1 = e.getAnnotation(annoType); Object a2 = deepCopy(a1); try { if (!a1.equals(a2)) fail("Serialization: " + a1 + " != " + a2); if (a1.hashCode() != a2.hashCode()) fail("Serialization: " + a1 + ".hashCode() [" + a1.hashCode() + "] != " + a2 + " .hashCode()["+a2.hashCode()+"]"); if (!(a1.toString().equals(a2.toString()))) fail("Serialization: " + a1 + ".toString() != " + a2 + ".toString()"); } catch(Throwable t) { fail("Serialization: " + a1 + " == " + a2 + ": " + t); } } private static Object deepCopy(Object original) { try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(original); oos.flush(); ByteArrayInputStream bin = new ByteArrayInputStream( bos.toByteArray()); ObjectInputStream ois = new ObjectInputStream(bin); return ois.readObject(); } catch(Exception e) { throw new IllegalArgumentException(e); } } // Verification method for inheritance test static void checkInheritence(AnnotatedElement e, boolean shouldHaveFoo, boolean shouldHaveBar) { numTests++; try { boolean hasFoo = e.isAnnotationPresent(Foo.class); boolean hasBar = e.isAnnotationPresent(Bar.class); if (hasFoo != shouldHaveFoo || hasBar != shouldHaveBar) fail("Inheritance(1): " + e +" - Foo: " + hasFoo + ", Bar: " + hasBar); // Now test getAnnotations hasFoo = hasBar = false; Annotation[] allAnnotations = e.getAnnotations(); for (Annotation a : allAnnotations) { if (a instanceof Foo) hasFoo = true; else if (a instanceof Bar) hasBar = true; } if (hasFoo != shouldHaveFoo ||hasBar != shouldHaveBar) fail("Inheritance(2): " + e +" - Foo: " + hasFoo + ", Bar: " + hasBar); } catch(Throwable t) { fail("Inheritance: " + e +": " + t); } } // Verification method for declared annotations test static void checkDeclaredAnnotations(AnnotatedElement e, boolean shouldHaveFoo, boolean shouldHaveBar) { numTests++; try { boolean hasFoo = false; boolean hasBar = false; Annotation[] declaredAnnotations = e.getDeclaredAnnotations(); for (Annotation a : declaredAnnotations) { if (a instanceof Foo) hasFoo = true; else if (a instanceof Bar) hasBar = true; } if (hasFoo != shouldHaveFoo ||hasBar != shouldHaveBar) fail("Declared annotations: " + e +" - Foo: " + hasFoo + ", Bar: " + hasBar); } catch(Throwable t) { fail("Declared annotations: " + e +": " + t); } } // ANNOTATED METHODS @ScalarTypes ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = @Point(x = 1, y = 2) ) public void scalarTypesMethod() { } @ScalarTypesWithDefault ( ) public void scalarTypesAcceptDefaultMethod() { } @ScalarTypesWithDefault ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE ) public void scalarTypesOverrideDefaultMethod() { } @ArrayTypes ( b = { }, s = { }, i = { }, l = { }, c = { }, f = { }, d = { }, bool = { }, str = { }, cls = { }, e = { }, a = { } ) public void emptyArrayTypesMethod() { } @ArrayTypes ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = { @Point(x = 1, y = 2) } ) public void singleElementArrayTypesMethod() { } @ArrayTypes ( b = { 1, 2 }, s = { 2, 3 }, i = { 3, 4 }, l = { 4L, 5L }, c = { '5', '6' }, f = { 6.0f, 7.0f }, d = { 7.0, 8.0 }, bool = { true, false }, str = { "custom", "paint" }, cls = { Map.class, Set.class }, e = { Stooge.MOE, Stooge.CURLY }, a = { @Point(x = 1, y = 2), @Point(x = 3, y = 4) } ) public void twoElementArrayTypesMethod() { } @ArrayTypesWithDefault ( ) public void arrayTypesAcceptDefaultMethod() { } @ArrayTypesWithDefault ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = { @Point(x = 1, y = 2) } ) public void arrayTypesOverrideDefaultMethod() { } // Marker @Marker public void markerMethod() { } // Single-member (shorthand) @SingleMemberByte(1) public void SingleMemberByte() {} @SingleMemberShort(2) public void SingleMemberShort() {} @SingleMemberInt(3) public void SingleMemberInt() {} @SingleMemberLong(4L) public void SingleMemberLong() {} @SingleMemberChar('5') public void SingleMemberChar() {} @SingleMemberFloat(6.0f) public void SingleMemberFloat() {} @SingleMemberDouble(7.0) public void SingleMemberDouble() {} @SingleMemberBoolean(true) public void SingleMemberBoolean() {} @SingleMemberString("custom") public void SingleMemberString() {} @SingleMemberClass(Map.class) public void SingleMemberClass() {} @SingleMemberEnum(Stooge.MOE) public void SingleMemberEnum() {} // Single-member with default (Override) @SingleMemberByteWithDef(1) public void SingleMemberByteOvrdDef() {} @SingleMemberShortWithDef(2) public void SingleMemberShortOvrdDef() {} @SingleMemberIntWithDef(3) public void SingleMemberIntOvrdDef() {} @SingleMemberLongWithDef(4L) public void SingleMemberLongOvrdDef() {} @SingleMemberCharWithDef('5') public void SingleMemberCharOvrdDef() {} @SingleMemberFloatWithDef(6.0f) public void SingleMemberFloatOvrdDef() {} @SingleMemberDoubleWithDef(7.0) public void SingleMemberDoubleOvrdDef() {} @SingleMemberBooleanWithDef(true) public void SingleMemberBooleanOvrdDef() {} @SingleMemberStringWithDef("custom") public void SingleMemberStringOvrdDef() {} @SingleMemberClassWithDef(Map.class) public void SingleMemberClassOvrdDef() {} @SingleMemberEnumWithDef(Stooge.MOE) public void SingleMemberEnumOvrdDef() {} // Single-member with default (Accept) @SingleMemberByteWithDef public void SingleMemberByteAcceptDef() {} @SingleMemberShortWithDef public void SingleMemberShortAcceptDef() {} @SingleMemberIntWithDef public void SingleMemberIntAcceptDef() {} @SingleMemberLongWithDef public void SingleMemberLongAcceptDef() {} @SingleMemberCharWithDef public void SingleMemberCharAcceptDef() {} @SingleMemberFloatWithDef public void SingleMemberFloatAcceptDef() {} @SingleMemberDoubleWithDef public void SingleMemberDoubleAcceptDef() {} @SingleMemberBooleanWithDef public void SingleMemberBooleanAcceptDef() {} @SingleMemberStringWithDef public void SingleMemberStringAcceptDef() {} @SingleMemberClassWithDef public void SingleMemberClassAcceptDef() {} @SingleMemberEnumWithDef public void SingleMemberEnumAcceptDef() {} // Single member array (empty array) @SingleMemberByteArray({}) public void SingleMemberByteArrEmpty() {} @SingleMemberShortArray({}) public void SingleMemberShortArrEmpty() {} @SingleMemberIntArray({}) public void SingleMemberIntArrEmpty() {} @SingleMemberLongArray({}) public void SingleMemberLongArrEmpty() {} @SingleMemberCharArray({}) public void SingleMemberCharArrEmpty() {} @SingleMemberFloatArray({}) public void SingleMemberFloatArrEmpty() {} @SingleMemberDoubleArray({}) public void SingleMemberDoubleArrEmpty() {} @SingleMemberBooleanArray({})public void SingleMemberBooleanArrEmpty() {} @SingleMemberStringArray({}) public void SingleMemberStringArrEmpty() {} @SingleMemberClassArray({}) public void SingleMemberClassArrEmpty() {} @SingleMemberEnumArray({}) public void SingleMemberEnumArrEmpty() {} // Single member array (one-element shorthand) @SingleMemberByteArray(1) public void SingleMemberByteArrOne() {} @SingleMemberShortArray(2) public void SingleMemberShortArrOne() {} @SingleMemberIntArray(3) public void SingleMemberIntArrOne() {} @SingleMemberLongArray(4L) public void SingleMemberLongArrOne() {} @SingleMemberCharArray('5') public void SingleMemberCharArrOne() {} @SingleMemberFloatArray(6.0f) public void SingleMemberFloatArrOne() {} @SingleMemberDoubleArray(7.0) public void SingleMemberDoubleArrOne() {} @SingleMemberBooleanArray(true) public void SingleMemberBooleanArrOne() {} @SingleMemberStringArray("custom") public void SingleMemberStringArrOne() {} @SingleMemberClassArray(Map.class) public void SingleMemberClassArrOne() {} @SingleMemberEnumArray(Stooge.MOE) public void SingleMemberEnumArrOne() {} // Single member array (two elements) @SingleMemberByteArray({1, 2}) public void SingleMemberByteArrTwo() {} @SingleMemberShortArray({2, 3}) public void SingleMemberShortArrTwo() {} @SingleMemberIntArray({3, 4}) public void SingleMemberIntArrTwo() {} @SingleMemberLongArray({4L, 5L}) public void SingleMemberLongArrTwo() {} @SingleMemberCharArray({'5', '6'}) public void SingleMemberCharArrTwo() {} @SingleMemberFloatArray({6.0f, 7.0f}) public void SingleMemberFloatArrTwo() {} @SingleMemberDoubleArray({7.0, 8.0}) public void SingleMemberDoubleArrTwo() {} @SingleMemberBooleanArray({true, false}) public void SingleMemberBooleanArrTwo(){} @SingleMemberStringArray({"custom", "paint"}) public void SingleMemberStringArrTwo(){} @SingleMemberClassArray({Map.class, Set.class}) public void SingleMemberClassArrTwo() {} @SingleMemberEnumArray({Stooge.MOE, Stooge.CURLY}) public void SingleMemberEnumArrTwo() {} // Single member array with default (override) @SingleMemberByteArrayDef(1) public void SingleMemberByteArrOvrdDef() {} @SingleMemberShortArrayDef(2) public void SingleMemberShortArrOvrdDef() {} @SingleMemberIntArrayDef(3) public void SingleMemberIntArrOvrdDef() {} @SingleMemberLongArrayDef(4L) public void SingleMemberLongArrOvrdDef() {} @SingleMemberCharArrayDef('5') public void SingleMemberCharArrOvrdDef() {} @SingleMemberFloatArrayDef(6.0f) public void SingleMemberFloatArrOvrdDef() {} @SingleMemberDoubleArrayDef(7.0) public void SingleMemberDoubleArrOvrdDef() {} @SingleMemberBooleanArrayDef(true) public void SingleMemberBooleanArrOvrdDef(){} @SingleMemberStringArrayDef("custom") public void SingleMemberStringArrOvrdDef() {} @SingleMemberClassArrayDef(Map.class) public void SingleMemberClassArrOvrdDef() {} @SingleMemberEnumArrayDef(Stooge.MOE) public void SingleMemberEnumArrOvrdDef() {} // Single member array with default - accept @SingleMemberByteArrayDef public void SingleMemberByteArrAcceptDef() {} @SingleMemberShortArrayDef public void SingleMemberShortArrAcceptDef() {} @SingleMemberIntArrayDef public void SingleMemberIntArrAcceptDef() {} @SingleMemberLongArrayDef public void SingleMemberLongArrAcceptDef() {} @SingleMemberCharArrayDef public void SingleMemberCharArrAcceptDef() {} @SingleMemberFloatArrayDef public void SingleMemberFloatArrAcceptDef() {} @SingleMemberDoubleArrayDef public void SingleMemberDoubleArrAcceptDef() {} @SingleMemberBooleanArrayDef public void SingleMemberBooleanArrAcceptDef() {} @SingleMemberStringArrayDef public void SingleMemberStringArrAcceptDef() {} @SingleMemberClassArrayDef public void SingleMemberClassArrAcceptDef() {} @SingleMemberEnumArrayDef public void SingleMemberEnumArrAcceptDef() {} // ANNOTATED FIELDS @ScalarTypes ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = @Point(x = 1, y = 2) ) public int scalarTypesField; @ScalarTypesWithDefault ( ) public int scalarTypesAcceptDefaultField; @ScalarTypesWithDefault ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE ) public int scalarTypesOverrideDefaultField; @ArrayTypes ( b = { }, s = { }, i = { }, l = { }, c = { }, f = { }, d = { }, bool = { }, str = { }, cls = { }, e = { }, a = { } ) public int emptyArrayTypesField; @ArrayTypes ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = { @Point(x = 1, y = 2) } ) public int singleElementArrayTypesField; @ArrayTypes ( b = { 1, 2 }, s = { 2, 3 }, i = { 3, 4 }, l = { 4L, 5L }, c = { '5', '6' }, f = { 6.0f, 7.0f }, d = { 7.0, 8.0 }, bool = { true, false }, str = { "custom", "paint" }, cls = { Map.class, Set.class }, e = { Stooge.MOE, Stooge.CURLY }, a = { @Point(x = 1, y = 2), @Point(x = 3, y = 4) } ) public int twoElementArrayTypesField; @ArrayTypesWithDefault ( ) public int arrayTypesAcceptDefaultField; @ArrayTypesWithDefault ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = { @Point(x = 1, y = 2) } ) public int arrayTypesOverrideDefaultField; @Marker public int markerField; // Single-member (shorthand) @SingleMemberByte(1) public int SingleMemberByteField; @SingleMemberShort(2) public int SingleMemberShortField; @SingleMemberInt(3) public int SingleMemberIntField; @SingleMemberLong(4L) public int SingleMemberLongField; @SingleMemberChar('5') public int SingleMemberCharField; @SingleMemberFloat(6.0f) public int SingleMemberFloatField; @SingleMemberDouble(7.0) public int SingleMemberDoubleField; @SingleMemberBoolean(true) public int SingleMemberBooleanField; @SingleMemberString("custom") public int SingleMemberStringField; @SingleMemberClass(Map.class) public int SingleMemberClassField; @SingleMemberEnum(Stooge.MOE) public int SingleMemberEnumField; // Single-member with default (Override) @SingleMemberByteWithDef(1) public int SingleMemberByteOvrdDefField; @SingleMemberShortWithDef(2) public int SingleMemberShortOvrdDefField; @SingleMemberIntWithDef(3) public int SingleMemberIntOvrdDefField; @SingleMemberLongWithDef(4L) public int SingleMemberLongOvrdDefField; @SingleMemberCharWithDef('5') public int SingleMemberCharOvrdDefField; @SingleMemberFloatWithDef(6.0f) public int SingleMemberFloatOvrdDefField; @SingleMemberDoubleWithDef(7.0) public int SingleMemberDoubleOvrdDefField; @SingleMemberBooleanWithDef(true) public int SingleMemberBooleanOvrdDefField; @SingleMemberStringWithDef("custom") public int SingleMemberStringOvrdDefField; @SingleMemberClassWithDef(Map.class) public int SingleMemberClassOvrdDefField; @SingleMemberEnumWithDef(Stooge.MOE) public int SingleMemberEnumOvrdDefField; // Single-member with default (Accept) @SingleMemberByteWithDef public int SingleMemberByteAcceptDefField; @SingleMemberShortWithDef public int SingleMemberShortAcceptDefField; @SingleMemberIntWithDef public int SingleMemberIntAcceptDefField; @SingleMemberLongWithDef public int SingleMemberLongAcceptDefField; @SingleMemberCharWithDef public int SingleMemberCharAcceptDefField; @SingleMemberFloatWithDef public int SingleMemberFloatAcceptDefField; @SingleMemberDoubleWithDef public int SingleMemberDoubleAcceptDefField; @SingleMemberBooleanWithDef public int SingleMemberBooleanAcceptDefField; @SingleMemberStringWithDef public int SingleMemberStringAcceptDefField; @SingleMemberClassWithDef public int SingleMemberClassAcceptDefField; @SingleMemberEnumWithDef public int SingleMemberEnumAcceptDefField; // Single member array (empty array) @SingleMemberByteArray({}) public int SingleMemberByteArrEmptyField; @SingleMemberShortArray({}) public int SingleMemberShortArrEmptyField; @SingleMemberIntArray({}) public int SingleMemberIntArrEmptyField; @SingleMemberLongArray({}) public int SingleMemberLongArrEmptyField; @SingleMemberCharArray({}) public int SingleMemberCharArrEmptyField; @SingleMemberFloatArray({}) public int SingleMemberFloatArrEmptyField; @SingleMemberDoubleArray({}) public int SingleMemberDoubleArrEmptyField; @SingleMemberBooleanArray({})public int SingleMemberBooleanArrEmptyField; @SingleMemberStringArray({}) public int SingleMemberStringArrEmptyField; @SingleMemberClassArray({}) public int SingleMemberClassArrEmptyField; @SingleMemberEnumArray({}) public int SingleMemberEnumArrEmptyField; // Single member array (one-element shorthand) @SingleMemberByteArray(1) public int SingleMemberByteArrOneField; @SingleMemberShortArray(2) public int SingleMemberShortArrOneField; @SingleMemberIntArray(3) public int SingleMemberIntArrOneField; @SingleMemberLongArray(4L) public int SingleMemberLongArrOneField; @SingleMemberCharArray('5') public int SingleMemberCharArrOneField; @SingleMemberFloatArray(6.0f) public int SingleMemberFloatArrOneField; @SingleMemberDoubleArray(7.0) public int SingleMemberDoubleArrOneField; @SingleMemberBooleanArray(true) public int SingleMemberBooleanArrOneField; @SingleMemberStringArray("custom") public int SingleMemberStringArrOneField; @SingleMemberClassArray(Map.class) public int SingleMemberClassArrOneField; @SingleMemberEnumArray(Stooge.MOE) public int SingleMemberEnumArrOneField; // Single member array (two elements) @SingleMemberByteArray({1, 2}) public int SingleMemberByteArrTwoField; @SingleMemberShortArray({2, 3}) public int SingleMemberShortArrTwoField; @SingleMemberIntArray({3, 4}) public int SingleMemberIntArrTwoField; @SingleMemberLongArray({4L, 5L}) public int SingleMemberLongArrTwoField; @SingleMemberCharArray({'5', '6'}) public int SingleMemberCharArrTwoField; @SingleMemberFloatArray({6.0f, 7.0f}) public int SingleMemberFloatArrTwoField; @SingleMemberDoubleArray({7.0, 8.0}) public int SingleMemberDoubleArrTwoField; @SingleMemberBooleanArray({true,false}) public int SingleMemberBooleanArrTwoField; @SingleMemberStringArray({"custom", "paint"}) public int SingleMemberStringArrTwoField; @SingleMemberClassArray({Map.class, Set.class}) public int SingleMemberClassArrTwoField; @SingleMemberEnumArray({Stooge.MOE, Stooge.CURLY}) public int SingleMemberEnumArrTwoField; // Single member array with default (override) @SingleMemberByteArrayDef(1) public int SingleMemberByteArrOvrdDefField; @SingleMemberShortArrayDef(2) public int SingleMemberShortArrOvrdDefField; @SingleMemberIntArrayDef(3) public int SingleMemberIntArrOvrdDefField; @SingleMemberLongArrayDef(4L) public int SingleMemberLongArrOvrdDefField; @SingleMemberCharArrayDef('5') public int SingleMemberCharArrOvrdDefField; @SingleMemberFloatArrayDef(6.0f) public int SingleMemberFloatArrOvrdDefField; @SingleMemberDoubleArrayDef(7.0) public int SingleMemberDoubleArrOvrdDefField; @SingleMemberBooleanArrayDef(true) public int SingleMemberBooleanArrOvrdDefField; @SingleMemberStringArrayDef("custom") public int SingleMemberStringArrOvrdDefField; @SingleMemberClassArrayDef(Map.class) public int SingleMemberClassArrOvrdDefField; @SingleMemberEnumArrayDef(Stooge.MOE) public int SingleMemberEnumArrOvrdDefField; // Single member array with default - accept @SingleMemberByteArrayDef public int SingleMemberByteArrAcceptDefField; @SingleMemberShortArrayDef public int SingleMemberShortArrAcceptDefField; @SingleMemberIntArrayDef public int SingleMemberIntArrAcceptDefField; @SingleMemberLongArrayDef public int SingleMemberLongArrAcceptDefField; @SingleMemberCharArrayDef public int SingleMemberCharArrAcceptDefField; @SingleMemberFloatArrayDef public int SingleMemberFloatArrAcceptDefField; @SingleMemberDoubleArrayDef public int SingleMemberDoubleArrAcceptDefField; @SingleMemberBooleanArrayDef public int SingleMemberBooleanArrAcceptDefField; @SingleMemberStringArrayDef public int SingleMemberStringArrAcceptDefField; @SingleMemberClassArrayDef public int SingleMemberClassArrAcceptDefField; @SingleMemberEnumArrayDef public int SingleMemberEnumArrAcceptDefField; // ANNOTATED ENUM CONSTANTS enum TestType { @ScalarTypes ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = @Point(x = 1, y = 2) ) scalarTypesField, @ScalarTypesWithDefault ( ) scalarTypesAcceptDefaultField, @ScalarTypesWithDefault ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE ) scalarTypesOverrideDefaultField, @ArrayTypes ( b = { }, s = { }, i = { }, l = { }, c = { }, f = { }, d = { }, bool = { }, str = { }, cls = { }, e = { }, a = { } ) emptyArrayTypesField, @ArrayTypes ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = @Point(x = 1, y = 2) ) singleElementArrayTypesField, @ArrayTypes ( b = { 1, 2 }, s = { 2, 3 }, i = { 3, 4 }, l = { 4L, 5L }, c = { '5', '6' }, f = { 6.0f, 7.0f }, d = { 7.0, 8.0 }, bool = { true, false }, str = { "custom", "paint" }, cls = { Map.class, Set.class }, e = { Stooge.MOE, Stooge.CURLY }, a = { @Point(x = 1, y = 2), @Point(x = 3, y = 4) } ) twoElementArrayTypesField, @ArrayTypesWithDefault ( ) arrayTypesAcceptDefaultField, @ArrayTypesWithDefault ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = { @Point(x = 1, y = 2) } ) arrayTypesOverrideDefaultField, // marker @Marker marker, // Single-member (shorthand) @SingleMemberByte(1) SingleMemberByte, @SingleMemberShort(2) SingleMemberShort, @SingleMemberInt(3) SingleMemberInt, @SingleMemberLong(4L) SingleMemberLong, @SingleMemberChar('5') SingleMemberChar, @SingleMemberFloat(6.0f) SingleMemberFloat, @SingleMemberDouble(7.0) SingleMemberDouble, @SingleMemberBoolean(true) SingleMemberBoolean, @SingleMemberString("custom") SingleMemberString, @SingleMemberClass(Map.class) SingleMemberClass, @SingleMemberEnum(Stooge.MOE) SingleMemberEnum, // Single-member with default (Override) @SingleMemberByteWithDef(1) SingleMemberByteOvrdDef, @SingleMemberShortWithDef(2) SingleMemberShortOvrdDef, @SingleMemberIntWithDef(3) SingleMemberIntOvrdDef, @SingleMemberLongWithDef(4L) SingleMemberLongOvrdDef, @SingleMemberCharWithDef('5') SingleMemberCharOvrdDef, @SingleMemberFloatWithDef(6.0f) SingleMemberFloatOvrdDef, @SingleMemberDoubleWithDef(7.0) SingleMemberDoubleOvrdDef, @SingleMemberBooleanWithDef(true) SingleMemberBooleanOvrdDef, @SingleMemberStringWithDef("custom") SingleMemberStringOvrdDef, @SingleMemberClassWithDef(Map.class) SingleMemberClassOvrdDef, @SingleMemberEnumWithDef(Stooge.MOE) SingleMemberEnumOvrdDef, // Single-member with default (Accept) @SingleMemberByteWithDef SingleMemberByteAcceptDef, @SingleMemberShortWithDef SingleMemberShortAcceptDef, @SingleMemberIntWithDef SingleMemberIntAcceptDef, @SingleMemberLongWithDef SingleMemberLongAcceptDef, @SingleMemberCharWithDef SingleMemberCharAcceptDef, @SingleMemberFloatWithDef SingleMemberFloatAcceptDef, @SingleMemberDoubleWithDef SingleMemberDoubleAcceptDef, @SingleMemberBooleanWithDef SingleMemberBooleanAcceptDef, @SingleMemberStringWithDef SingleMemberStringAcceptDef, @SingleMemberClassWithDef SingleMemberClassAcceptDef, @SingleMemberEnumWithDef SingleMemberEnumAcceptDef, // Single member array (empty array) @SingleMemberByteArray({}) SingleMemberByteArrEmpty, @SingleMemberShortArray({}) SingleMemberShortArrEmpty, @SingleMemberIntArray({}) SingleMemberIntArrEmpty, @SingleMemberLongArray({}) SingleMemberLongArrEmpty, @SingleMemberCharArray({}) SingleMemberCharArrEmpty, @SingleMemberFloatArray({}) SingleMemberFloatArrEmpty, @SingleMemberDoubleArray({}) SingleMemberDoubleArrEmpty, @SingleMemberBooleanArray({})SingleMemberBooleanArrEmpty, @SingleMemberStringArray({}) SingleMemberStringArrEmpty, @SingleMemberClassArray({}) SingleMemberClassArrEmpty, @SingleMemberEnumArray({}) SingleMemberEnumArrEmpty, // Single member array (one-element shorthand) @SingleMemberByteArray(1) SingleMemberByteArrOne, @SingleMemberShortArray(2) SingleMemberShortArrOne, @SingleMemberIntArray(3) SingleMemberIntArrOne, @SingleMemberLongArray(4L) SingleMemberLongArrOne, @SingleMemberCharArray('5') SingleMemberCharArrOne, @SingleMemberFloatArray(6.0f) SingleMemberFloatArrOne, @SingleMemberDoubleArray(7.0) SingleMemberDoubleArrOne, @SingleMemberBooleanArray(true) SingleMemberBooleanArrOne, @SingleMemberStringArray("custom") SingleMemberStringArrOne, @SingleMemberClassArray(Map.class) SingleMemberClassArrOne, @SingleMemberEnumArray(Stooge.MOE) SingleMemberEnumArrOne, // Single member array (two elements) @SingleMemberByteArray({1, 2}) SingleMemberByteArrTwo, @SingleMemberShortArray({2, 3}) SingleMemberShortArrTwo, @SingleMemberIntArray({3, 4}) SingleMemberIntArrTwo, @SingleMemberLongArray({4L, 5L}) SingleMemberLongArrTwo, @SingleMemberCharArray({'5', '6'}) SingleMemberCharArrTwo, @SingleMemberFloatArray({6.0f, 7.0f}) SingleMemberFloatArrTwo, @SingleMemberDoubleArray({7.0, 8.0}) SingleMemberDoubleArrTwo, @SingleMemberBooleanArray({true,false}) SingleMemberBooleanArrTwo, @SingleMemberStringArray({"custom", "paint"}) SingleMemberStringArrTwo, @SingleMemberClassArray({Map.class, Set.class}) SingleMemberClassArrTwo, @SingleMemberEnumArray({Stooge.MOE, Stooge.CURLY}) SingleMemberEnumArrTwo, // Single member array with default (override) @SingleMemberByteArrayDef(1) SingleMemberByteArrOvrdDef, @SingleMemberShortArrayDef(2) SingleMemberShortArrOvrdDef, @SingleMemberIntArrayDef(3) SingleMemberIntArrOvrdDef, @SingleMemberLongArrayDef(4L) SingleMemberLongArrOvrdDef, @SingleMemberCharArrayDef('5') SingleMemberCharArrOvrdDef, @SingleMemberFloatArrayDef(6.0f) SingleMemberFloatArrOvrdDef, @SingleMemberDoubleArrayDef(7.0) SingleMemberDoubleArrOvrdDef, @SingleMemberBooleanArrayDef(true) SingleMemberBooleanArrOvrdDef, @SingleMemberStringArrayDef("custom") SingleMemberStringArrOvrdDef, @SingleMemberClassArrayDef(Map.class) SingleMemberClassArrOvrdDef, @SingleMemberEnumArrayDef(Stooge.MOE) SingleMemberEnumArrOvrdDef, // Single member array with default - accept @SingleMemberByteArrayDef SingleMemberByteArrAcceptDef, @SingleMemberShortArrayDef SingleMemberShortArrAcceptDef, @SingleMemberIntArrayDef SingleMemberIntArrAcceptDef, @SingleMemberLongArrayDef SingleMemberLongArrAcceptDef, @SingleMemberCharArrayDef SingleMemberCharArrAcceptDef, @SingleMemberFloatArrayDef SingleMemberFloatArrAcceptDef, @SingleMemberDoubleArrayDef SingleMemberDoubleArrAcceptDef, @SingleMemberBooleanArrayDef SingleMemberBooleanArrAcceptDef, @SingleMemberStringArrayDef SingleMemberStringArrAcceptDef, @SingleMemberClassArrayDef SingleMemberClassArrAcceptDef, @SingleMemberEnumArrayDef SingleMemberEnumArrAcceptDef, } // ANNOTATED CONSTRUCTORS @ScalarTypes ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = @Point(x = 1, y = 2) ) public UnitTest(Iterator it) { } // scalar types @ScalarTypesWithDefault ( ) public UnitTest(Set s) { } // scalarTypesAcceptDefault @ScalarTypesWithDefault ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE ) public UnitTest(Map s) { } // scalarTypesOverrideDefault @ArrayTypes ( b = { }, s = { }, i = { }, l = { }, c = { }, f = { }, d = { }, bool = { }, str = { }, cls = { }, e = { }, a = { } ) public UnitTest(List l){ } // emptyArrayTypes @ArrayTypes ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = @Point(x = 1, y = 2) ) public UnitTest(Collection c) { } // singleElementArrayTypes @ArrayTypes ( b = { 1, 2 }, s = { 2, 3 }, i = { 3, 4 }, l = { 4L, 5L }, c = { '5', '6' }, f = { 6.0f, 7.0f }, d = { 7.0, 8.0 }, bool = { true, false }, str = { "custom", "paint" }, cls = { Map.class, Set.class }, e = { Stooge.MOE, Stooge.CURLY }, a = { @Point(x = 1, y = 2), @Point(x = 3, y = 4) } ) public UnitTest(SortedSet ss) { } // twoElementArrayTypes @ArrayTypesWithDefault ( ) public UnitTest(SortedMap sm) { } // arrayTypesAcceptDefault @ArrayTypesWithDefault ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = { @Point(x = 1, y = 2) } ) public UnitTest(RandomAccess r) { } // arrayTypesOverrideDefault // Marker @Marker public UnitTest() { } // marker // Single-member (shorthand) @SingleMemberByte(1) public UnitTest(byte b) { } @SingleMemberShort(2) public UnitTest(short s) { } @SingleMemberInt(3) public UnitTest(int i) { } @SingleMemberLong(4L) public UnitTest(long l) { } @SingleMemberChar('5') public UnitTest(char c) { } @SingleMemberFloat(6.0f) public UnitTest(float f) { } @SingleMemberDouble(7.0) public UnitTest(double d) { } @SingleMemberBoolean(true) public UnitTest(boolean b) { } @SingleMemberString("custom") public UnitTest(String s) { } @SingleMemberClass(Map.class) public UnitTest(Class c) { } @SingleMemberEnum(Stooge.MOE) public UnitTest(Enum e) { } // Single-member with default (Override) @SingleMemberByteWithDef(1) public UnitTest(byte b, Set s) { } @SingleMemberShortWithDef(2) public UnitTest(short s, Set x) { } @SingleMemberIntWithDef(3) public UnitTest(int i, Set s) { } @SingleMemberLongWithDef(4L) public UnitTest(long l, Set s) { } @SingleMemberCharWithDef('5') public UnitTest(char c, Set s) { } @SingleMemberFloatWithDef(6.0f) public UnitTest(float f, Set s) { } @SingleMemberDoubleWithDef(7.0) public UnitTest(double d, Set s) { } @SingleMemberBooleanWithDef(true) public UnitTest(boolean b, Set s) { } @SingleMemberStringWithDef("custom") public UnitTest(String s, Set x) { } @SingleMemberClassWithDef(Map.class) public UnitTest(Class c, Set s) { } @SingleMemberEnumWithDef(Stooge.MOE) public UnitTest(Enum e, Set s) { } // Single-member with default (Accept) @SingleMemberByteWithDef public UnitTest(byte b, Map m) { } @SingleMemberShortWithDef public UnitTest(short s, Map m) { } @SingleMemberIntWithDef public UnitTest(int i, Map m) { } @SingleMemberLongWithDef public UnitTest(long l, Map m) { } @SingleMemberCharWithDef public UnitTest(char c, Map m) { } @SingleMemberFloatWithDef public UnitTest(float f, Map m) { } @SingleMemberDoubleWithDef public UnitTest(double d, Map m) { } @SingleMemberBooleanWithDef public UnitTest(boolean b, Map m) { } @SingleMemberStringWithDef public UnitTest(String s, Map m) { } @SingleMemberClassWithDef public UnitTest(Class c, Map m) { } @SingleMemberEnumWithDef public UnitTest(Enum e, Map m) { } // Single member array (empty array) @SingleMemberByteArray({}) public UnitTest(byte[] b) { } @SingleMemberShortArray({}) public UnitTest(short[] s) { } @SingleMemberIntArray({}) public UnitTest(int[] i) { } @SingleMemberLongArray({}) public UnitTest(long[] l) { } @SingleMemberCharArray({}) public UnitTest(char[] c) { } @SingleMemberFloatArray({}) public UnitTest(float[] f) { } @SingleMemberDoubleArray({}) public UnitTest(double[] d) { } @SingleMemberBooleanArray({})public UnitTest(boolean[] b) { } @SingleMemberStringArray({}) public UnitTest(String[] s) { } @SingleMemberClassArray({}) public UnitTest(Class[] c) { } @SingleMemberEnumArray({}) public UnitTest(Enum[] e) { } // Single member array (one-element shorthand) @SingleMemberByteArray(1) public UnitTest(byte[] b, Set s) { } @SingleMemberShortArray(2) public UnitTest(short[] s, Set x) { } @SingleMemberIntArray(3) public UnitTest(int[] i, Set s) { } @SingleMemberLongArray(4L) public UnitTest(long[] l, Set s) { } @SingleMemberCharArray('5') public UnitTest(char[] c, Set s) { } @SingleMemberFloatArray(6.0f) public UnitTest(float[] f, Set s) { } @SingleMemberDoubleArray(7.0) public UnitTest(double[] d, Set s) { } @SingleMemberBooleanArray(true) public UnitTest(boolean[] b, Set s) { } @SingleMemberStringArray("custom") public UnitTest(String[] s, Set x) { } @SingleMemberClassArray(Map.class) public UnitTest(Class[] c, Set s) { } @SingleMemberEnumArray(Stooge.MOE) public UnitTest(Enum[] e, Set s) { } // Single member array (two elements) @SingleMemberByteArray({1, 2}) public UnitTest(byte[] b, Map m) { } @SingleMemberShortArray({2, 3}) public UnitTest(short[] s, Map m) { } @SingleMemberIntArray({3, 4}) public UnitTest(int[] i, Map m) { } @SingleMemberLongArray({4L, 5L}) public UnitTest(long[] l, Map m) { } @SingleMemberCharArray({'5', '6'}) public UnitTest(char[] c, Map m) { } @SingleMemberFloatArray({6.0f, 7.0f}) public UnitTest(float[] f, Map m) { } @SingleMemberDoubleArray({7.0, 8.0}) public UnitTest(double[] d, Map m) { } @SingleMemberBooleanArray({true, false}) public UnitTest(boolean[] b, Map m) { } @SingleMemberStringArray({"custom", "paint"}) public UnitTest(String[] s, Map m) { } @SingleMemberClassArray({Map.class,Set.class}) public UnitTest(Class[] c, Map m) { } @SingleMemberEnumArray({Stooge.MOE, Stooge.CURLY}) public UnitTest(Enum[] e, Map m) { } // Single member array with default (override) @SingleMemberByteArrayDef(1) public UnitTest(byte[] b, List l) { } @SingleMemberShortArrayDef(2) public UnitTest(short[] s, List l) { } @SingleMemberIntArrayDef(3) public UnitTest(int[] i, List l) { } @SingleMemberLongArrayDef(4L) public UnitTest(long[] l, List x) { } @SingleMemberCharArrayDef('5') public UnitTest(char[] c, List l) { } @SingleMemberFloatArrayDef(6.0f) public UnitTest(float[] f, List l) { } @SingleMemberDoubleArrayDef(7.0) public UnitTest(double[] d, List l) { } @SingleMemberBooleanArrayDef(true) public UnitTest(boolean[] b, List l) { } @SingleMemberStringArrayDef("custom") public UnitTest(String[] s, List l) { } @SingleMemberClassArrayDef(Map.class) public UnitTest(Class[] c, List l) { } @SingleMemberEnumArrayDef(Stooge.MOE) public UnitTest(Enum[] e, List l) { } // Single member array with default - accept @SingleMemberByteArrayDef public UnitTest(byte[] b, Collection c) { } @SingleMemberShortArrayDef public UnitTest(short[] s, Collection c) { } @SingleMemberIntArrayDef public UnitTest(int[] i, Collection c) { } @SingleMemberLongArrayDef public UnitTest(long[] l, Collection c) { } @SingleMemberCharArrayDef public UnitTest(char[] c, Collection x) { } @SingleMemberFloatArrayDef public UnitTest(float[] f, Collection c) { } @SingleMemberDoubleArrayDef public UnitTest(double[] d, Collection c) { } @SingleMemberBooleanArrayDef public UnitTest(boolean[] b, Collection c) { } @SingleMemberStringArrayDef public UnitTest(String[] s, Collection c) { } @SingleMemberClassArrayDef public UnitTest(Class[] c, Collection x) { } @SingleMemberEnumArrayDef public UnitTest(Enum[] e, Collection c) { } // ANNOTATED PARAMETERS public void scalarTypesParam( @ScalarTypes ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = @Point(x = 1, y = 2) ) int x) { } public void scalarTypesAcceptDefaultParam( @ScalarTypesWithDefault int x) { } public void scalarTypesOverrideDefaultParam( @ScalarTypesWithDefault ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE ) int x) { } public void emptyArrayTypesParam( @ArrayTypes ( b = { }, s = { }, i = { }, l = { }, c = { }, f = { }, d = { }, bool = { }, str = { }, cls = { }, e = { }, a = { } ) int x) { } public void singleElementArrayTypesParam( @ArrayTypes ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = @Point(x = 1, y = 2) ) int x) { } public void twoElementArrayTypesParam( @ArrayTypes ( b = { 1, 2 }, s = { 2, 3 }, i = { 3, 4 }, l = { 4L, 5L }, c = { '5', '6' }, f = { 6.0f, 7.0f }, d = { 7.0, 8.0 }, bool = { true, false }, str = { "custom", "paint" }, cls = { Map.class, Set.class }, e = { Stooge.MOE, Stooge.CURLY }, a = { @Point(x = 1, y = 2), @Point(x = 3, y = 4) } ) int x) { } public void arrayTypesAcceptDefaultParam( @ArrayTypesWithDefault int x) { } public void arrayTypesOverrideDefaultParam( @ArrayTypesWithDefault ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = { @Point(x = 1, y = 2) } ) int x) { } // Marker public void markerParam(@Marker int x) { } // Single-member (shorthand) public void SingleMemberByteParam(@SingleMemberByte(1) int x) {} public void SingleMemberShortParam(@SingleMemberShort(2) int x) {} public void SingleMemberIntParam(@SingleMemberInt(3) int x) {} public void SingleMemberLongParam(@SingleMemberLong(4L) int x) {} public void SingleMemberCharParam(@SingleMemberChar('5') int x) {} public void SingleMemberFloatParam(@SingleMemberFloat(6.0f) int x) {} public void SingleMemberDoubleParam(@SingleMemberDouble(7.0) int x) {} public void SingleMemberBooleanParam(@SingleMemberBoolean(true) int x) {} public void SingleMemberStringParam(@SingleMemberString("custom") int x) {} public void SingleMemberClassParam(@SingleMemberClass(Map.class) int x) {} public void SingleMemberEnumParam(@SingleMemberEnum(Stooge.MOE) int x) {} // Single-member with default (Override) public void SingleMemberByteOvrdDefParam(@SingleMemberByteWithDef(1) int x) {} public void SingleMemberShortOvrdDefParam(@SingleMemberShortWithDef(2) int x) {} public void SingleMemberIntOvrdDefParam(@SingleMemberIntWithDef(3) int x) {} public void SingleMemberLongOvrdDefParam(@SingleMemberLongWithDef(4L) int x) {} public void SingleMemberCharOvrdDefParam(@SingleMemberCharWithDef('5') int x) {} public void SingleMemberFloatOvrdDefParam(@SingleMemberFloatWithDef(6.0f) int x) {} public void SingleMemberDoubleOvrdDefParam(@SingleMemberDoubleWithDef(7.0) int x) {} public void SingleMemberBooleanOvrdDefParam(@SingleMemberBooleanWithDef(true) int x) {} public void SingleMemberStringOvrdDefParam(@SingleMemberStringWithDef("custom") int x) {} public void SingleMemberClassOvrdDefParam(@SingleMemberClassWithDef(Map.class) int x) {} public void SingleMemberEnumOvrdDefParam(@SingleMemberEnumWithDef(Stooge.MOE) int x) {} // Single-member with default (Accept) public void SingleMemberByteAcceptDefParam(@SingleMemberByteWithDef int x) {} public void SingleMemberShortAcceptDefParam(@SingleMemberShortWithDef int x) {} public void SingleMemberIntAcceptDefParam(@SingleMemberIntWithDef int x) {} public void SingleMemberLongAcceptDefParam(@SingleMemberLongWithDef int x) {} public void SingleMemberCharAcceptDefParam(@SingleMemberCharWithDef int x) {} public void SingleMemberFloatAcceptDefParam(@SingleMemberFloatWithDef int x) {} public void SingleMemberDoubleAcceptDefParam(@SingleMemberDoubleWithDef int x) {} public void SingleMemberBooleanAcceptDefParam(@SingleMemberBooleanWithDef int x){} public void SingleMemberStringAcceptDefParam(@SingleMemberStringWithDef int x) {} public void SingleMemberClassAcceptDefParam(@SingleMemberClassWithDef int x) {} public void SingleMemberEnumAcceptDefParam(@SingleMemberEnumWithDef int x) {} // Single member array (empty array) public void SingleMemberByteArrEmptyParam(@SingleMemberByteArray({}) int x) {} public void SingleMemberShortArrEmptyParam(@SingleMemberShortArray({}) int x) {} public void SingleMemberIntArrEmptyParam(@SingleMemberIntArray({}) int x) {} public void SingleMemberLongArrEmptyParam(@SingleMemberLongArray({}) int x) {} public void SingleMemberCharArrEmptyParam(@SingleMemberCharArray({}) int x) {} public void SingleMemberFloatArrEmptyParam(@SingleMemberFloatArray({}) int x) {} public void SingleMemberDoubleArrEmptyParam(@SingleMemberDoubleArray({}) int x) {} public void SingleMemberBooleanArrEmptyParam(@SingleMemberBooleanArray({}) int x) {} public void SingleMemberStringArrEmptyParam(@SingleMemberStringArray({}) int x) {} public void SingleMemberClassArrEmptyParam(@SingleMemberClassArray({}) int x) {} public void SingleMemberEnumArrEmptyParam(@SingleMemberEnumArray({}) int x) {} // Single member array (one-element shorthand) public void SingleMemberByteArrOneParam(@SingleMemberByteArray(1) int x) {} public void SingleMemberShortArrOneParam(@SingleMemberShortArray(2) int x) {} public void SingleMemberIntArrOneParam(@SingleMemberIntArray(3) int x) {} public void SingleMemberLongArrOneParam(@SingleMemberLongArray(4L) int x) {} public void SingleMemberCharArrOneParam(@SingleMemberCharArray('5') int x) {} public void SingleMemberFloatArrOneParam(@SingleMemberFloatArray(6.0f) int x) {} public void SingleMemberDoubleArrOneParam(@SingleMemberDoubleArray(7.0) int x) {} public void SingleMemberBooleanArrOneParam(@SingleMemberBooleanArray(true) int x) {} public void SingleMemberStringArrOneParam(@SingleMemberStringArray("custom") int x) {} public void SingleMemberClassArrOneParam(@SingleMemberClassArray(Map.class) int x) {} public void SingleMemberEnumArrOneParam(@SingleMemberEnumArray(Stooge.MOE) int x) {} // Single member array (two elements) public void SingleMemberByteArrTwoParam(@SingleMemberByteArray({1, 2}) int x) {} public void SingleMemberShortArrTwoParam(@SingleMemberShortArray({2, 3}) int x) {} public void SingleMemberIntArrTwoParam(@SingleMemberIntArray({3, 4}) int x) {} public void SingleMemberLongArrTwoParam(@SingleMemberLongArray({4L, 5L}) int x) {} public void SingleMemberCharArrTwoParam(@SingleMemberCharArray({'5', '6'}) int x) {} public void SingleMemberFloatArrTwoParam(@SingleMemberFloatArray({6.0f, 7.0f}) int x) {} public void SingleMemberDoubleArrTwoParam(@SingleMemberDoubleArray({7.0, 8.0}) int x) {} public void SingleMemberBooleanArrTwoParam(@SingleMemberBooleanArray({true, false}) int x){} public void SingleMemberStringArrTwoParam(@SingleMemberStringArray({"custom", "paint"}) int x) {} public void SingleMemberClassArrTwoParam(@SingleMemberClassArray({Map.class, Set.class}) int x) {} public void SingleMemberEnumArrTwoParam(@SingleMemberEnumArray({Stooge.MOE, Stooge.CURLY}) int x) {} // Single member array with default (override) public void SingleMemberByteArrOvrdDefParam(@SingleMemberByteArrayDef(1) int x) {} public void SingleMemberShortArrOvrdDefParam(@SingleMemberShortArrayDef(2) int x) {} public void SingleMemberIntArrOvrdDefParam(@SingleMemberIntArrayDef(3) int x) {} public void SingleMemberLongArrOvrdDefParam(@SingleMemberLongArrayDef(4L) int x) {} public void SingleMemberCharArrOvrdDefParam(@SingleMemberCharArrayDef('5') int x) {} public void SingleMemberFloatArrOvrdDefParam(@SingleMemberFloatArrayDef(6.0f) int x) {} public void SingleMemberDoubleArrOvrdDefParam(@SingleMemberDoubleArrayDef(7.0) int x) {} public void SingleMemberBooleanArrOvrdDefParam(@SingleMemberBooleanArrayDef(true) int x){} public void SingleMemberStringArrOvrdDefParam(@SingleMemberStringArrayDef("custom") int x) {} public void SingleMemberClassArrOvrdDefParam(@SingleMemberClassArrayDef(Map.class) int x) {} public void SingleMemberEnumArrOvrdDefParam(@SingleMemberEnumArrayDef(Stooge.MOE) int x) {} // Single member array with default - accept public void SingleMemberByteArrAcceptDefParam(@SingleMemberByteArrayDef int x) {} public void SingleMemberShortArrAcceptDefParam(@SingleMemberShortArrayDef int x) {} public void SingleMemberIntArrAcceptDefParam(@SingleMemberIntArrayDef int x) {} public void SingleMemberLongArrAcceptDefParam(@SingleMemberLongArrayDef int x) {} public void SingleMemberCharArrAcceptDefParam(@SingleMemberCharArrayDef int x) {} public void SingleMemberFloatArrAcceptDefParam(@SingleMemberFloatArrayDef int x) {} public void SingleMemberDoubleArrAcceptDefParam(@SingleMemberDoubleArrayDef int x) {} public void SingleMemberBooleanArrAcceptDefParam(@SingleMemberBooleanArrayDef int x){} public void SingleMemberStringArrAcceptDefParam(@SingleMemberStringArrayDef int x) {} public void SingleMemberClassArrAcceptDefParam(@SingleMemberClassArrayDef int x) {} public void SingleMemberEnumArrAcceptDefParam(@SingleMemberEnumArrayDef int x) {} } // Helper types enum Stooge { LARRY, MOE, CURLY } @Target({}) @interface Point { int x(); int y(); } // ANNOTATION TYPES @Retention(RUNTIME) @interface ScalarTypes { byte b(); short s(); int i(); long l(); char c(); float f(); double d(); boolean bool(); String str(); Class cls(); Stooge e(); Point a(); } @Retention(RUNTIME) @interface ScalarTypesWithDefault { byte b() default 11; short s() default 12; int i() default 13; long l() default 14; char c() default 'V'; float f() default 16.0f; double d() default 17.0; boolean bool() default false; String str() default "default"; Class cls() default Class.class; Stooge e() default Stooge.LARRY; Point a() default @Point(x = 11, y = 12); } @Retention(RUNTIME) @interface ArrayTypes { byte[] b(); short[] s(); int[] i(); long[] l(); char[] c(); float[] f(); double[] d(); boolean[] bool(); String[] str(); Class[] cls(); Stooge[] e(); Point[] a(); } @Retention(RUNTIME) @interface ArrayTypesWithDefault { byte[] b() default { 11 }; short[] s() default { 12 }; int[] i() default { 13 }; long[] l() default { 14L }; char[] c() default { 'V' }; float[] f() default { 16.0f }; double[] d() default { 17.0 }; boolean[] bool() default { false }; String[] str() default { "default" }; Class[] cls() default { Class.class }; Stooge[] e() default { Stooge.LARRY }; Point[] a() default { @Point(x = 11, y = 12) }; } @Retention(RUNTIME) @interface Marker { } @Retention(RUNTIME) @interface SingleMemberByte { byte value(); } @Retention(RUNTIME) @interface SingleMemberShort { short value(); } @Retention(RUNTIME) @interface SingleMemberInt { int value(); } @Retention(RUNTIME) @interface SingleMemberLong { long value(); } @Retention(RUNTIME) @interface SingleMemberChar { char value(); } @Retention(RUNTIME) @interface SingleMemberFloat { float value(); } @Retention(RUNTIME) @interface SingleMemberDouble { double value(); } @Retention(RUNTIME) @interface SingleMemberBoolean { boolean value(); } @Retention(RUNTIME) @interface SingleMemberString { String value(); } @Retention(RUNTIME) @interface SingleMemberClass { Class value(); } @Retention(RUNTIME) @interface SingleMemberEnum { Stooge value(); } @Retention(RUNTIME) @interface SingleMemberByteWithDef { byte value() default 11; } @Retention(RUNTIME) @interface SingleMemberShortWithDef { short value() default 12; } @Retention(RUNTIME) @interface SingleMemberIntWithDef { int value() default 13; } @Retention(RUNTIME) @interface SingleMemberLongWithDef { long value() default 14; } @Retention(RUNTIME) @interface SingleMemberCharWithDef { char value() default 'V'; } @Retention(RUNTIME) @interface SingleMemberFloatWithDef { float value() default 16.0f; } @Retention(RUNTIME) @interface SingleMemberDoubleWithDef { double value() default 17.0; } @Retention(RUNTIME) @interface SingleMemberBooleanWithDef { boolean value() default false; } @Retention(RUNTIME) @interface SingleMemberStringWithDef { String value() default "default"; } @Retention(RUNTIME) @interface SingleMemberClassWithDef { Class value() default Class.class; } @Retention(RUNTIME) @interface SingleMemberEnumWithDef { Stooge value() default Stooge.LARRY; } @Retention(RUNTIME) @interface SingleMemberByteArray { byte[] value(); } @Retention(RUNTIME) @interface SingleMemberShortArray { short[] value(); } @Retention(RUNTIME) @interface SingleMemberIntArray { int[] value(); } @Retention(RUNTIME) @interface SingleMemberLongArray { long[] value(); } @Retention(RUNTIME) @interface SingleMemberCharArray { char[] value(); } @Retention(RUNTIME) @interface SingleMemberFloatArray { float[] value(); } @Retention(RUNTIME) @interface SingleMemberDoubleArray { double[] value(); } @Retention(RUNTIME) @interface SingleMemberBooleanArray { boolean[] value(); } @Retention(RUNTIME) @interface SingleMemberStringArray { String[] value(); } @Retention(RUNTIME) @interface SingleMemberClassArray { Class[] value(); } @Retention(RUNTIME) @interface SingleMemberEnumArray { Stooge[] value(); } @Retention(RUNTIME) @interface SingleMemberByteArrayDef { byte[] value() default { 11 }; } @Retention(RUNTIME) @interface SingleMemberShortArrayDef { short[] value() default { 12 }; } @Retention(RUNTIME) @interface SingleMemberIntArrayDef { int[] value() default { 13 }; } @Retention(RUNTIME) @interface SingleMemberLongArrayDef { long[] value() default { 14 }; } @Retention(RUNTIME) @interface SingleMemberCharArrayDef { char[] value() default { 'V' }; } @Retention(RUNTIME) @interface SingleMemberFloatArrayDef { float[] value() default { 16.0f };} @Retention(RUNTIME) @interface SingleMemberDoubleArrayDef { double[] value() default { 17.0 }; } @Retention(RUNTIME) @interface SingleMemberBooleanArrayDef { boolean[] value() default { false };} @Retention(RUNTIME) @interface SingleMemberStringArrayDef { String[] value() default {"default"}; } @Retention(RUNTIME) @interface SingleMemberClassArrayDef { Class[] value() default {Class.class}; } @Retention(RUNTIME) @interface SingleMemberEnumArrayDef { Stooge[] value() default {Stooge.LARRY}; } // Annotation types for inheritance and declared-annotations tests @Inherited @Retention(RUNTIME) @interface Foo { } @Retention(RUNTIME) @interface Bar { } // ANNOTATED CLASSES @ScalarTypes ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = @Point(x = 1, y = 2) ) class scalarTypesClass { } @ScalarTypesWithDefault ( ) class scalarTypesAcceptDefaultClass { } @ScalarTypesWithDefault ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE ) class scalarTypesOverrideDefaultClass { } @ArrayTypes ( b = { }, s = { }, i = { }, l = { }, c = { }, f = { }, d = { }, bool = { }, str = { }, cls = { }, e = { }, a = { } ) class emptyArrayTypesClass { } @ArrayTypes ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = @Point(x = 1, y = 2) ) class singleElementArrayTypesClass { } @ArrayTypes ( b = { 1, 2 }, s = { 2, 3 }, i = { 3, 4 }, l = { 4L, 5L }, c = { '5', '6' }, f = { 6.0f, 7.0f }, d = { 7.0, 8.0 }, bool = { true, false }, str = { "custom", "paint" }, cls = { Map.class, Set.class }, e = { Stooge.MOE, Stooge.CURLY }, a = { @Point(x = 1, y = 2), @Point(x = 3, y = 4) } ) class twoElementArrayTypesClass { } @ArrayTypesWithDefault ( ) class arrayTypesAcceptDefaultClass { } @ArrayTypesWithDefault ( b = 1, s = 2, i = 3, l = 4L, c = '5', f = 6.0f, d = 7.0, bool = true, str = "custom", cls = Map.class, e = Stooge.MOE, a = { @Point(x = 1, y = 2) } ) class arrayTypesOverrideDefaultClass { } @Marker class markerClass { } // Single-member (shorthand) @SingleMemberByte(1) class SingleMemberByteClass { } @SingleMemberShort(2) class SingleMemberShortClass { } @SingleMemberInt(3) class SingleMemberIntClass { } @SingleMemberLong(4L) class SingleMemberLongClass { } @SingleMemberChar('5') class SingleMemberCharClass { } @SingleMemberFloat(6.0f) class SingleMemberFloatClass { } @SingleMemberDouble(7.0) class SingleMemberDoubleClass { } @SingleMemberBoolean(true) class SingleMemberBooleanClass { } @SingleMemberString("custom") class SingleMemberStringClass { } @SingleMemberClass(Map.class) class SingleMemberClassClass { } @SingleMemberEnum(Stooge.MOE) class SingleMemberEnumClass { } // Single-member with default (Override) @SingleMemberByteWithDef(1) class SingleMemberByteOvrdDefClass { } @SingleMemberShortWithDef(2) class SingleMemberShortOvrdDefClass { } @SingleMemberIntWithDef(3) class SingleMemberIntOvrdDefClass { } @SingleMemberLongWithDef(4L) class SingleMemberLongOvrdDefClass { } @SingleMemberCharWithDef('5') class SingleMemberCharOvrdDefClass { } @SingleMemberFloatWithDef(6.0f) class SingleMemberFloatOvrdDefClass { } @SingleMemberDoubleWithDef(7.0) class SingleMemberDoubleOvrdDefClass { } @SingleMemberBooleanWithDef(true) class SingleMemberBooleanOvrdDefClass { } @SingleMemberStringWithDef("custom") class SingleMemberStringOvrdDefClass { } @SingleMemberClassWithDef(Map.class) class SingleMemberClassOvrdDefClass { } @SingleMemberEnumWithDef(Stooge.MOE) class SingleMemberEnumOvrdDefClass { } // Single-member with default (Accept) @SingleMemberByteWithDef class SingleMemberByteAcceptDefClass { } @SingleMemberShortWithDef class SingleMemberShortAcceptDefClass { } @SingleMemberIntWithDef class SingleMemberIntAcceptDefClass { } @SingleMemberLongWithDef class SingleMemberLongAcceptDefClass { } @SingleMemberCharWithDef class SingleMemberCharAcceptDefClass { } @SingleMemberFloatWithDef class SingleMemberFloatAcceptDefClass { } @SingleMemberDoubleWithDef class SingleMemberDoubleAcceptDefClass { } @SingleMemberBooleanWithDef class SingleMemberBooleanAcceptDefClass { } @SingleMemberStringWithDef class SingleMemberStringAcceptDefClass { } @SingleMemberClassWithDef class SingleMemberClassAcceptDefClass { } @SingleMemberEnumWithDef class SingleMemberEnumAcceptDefClass { } // Single member array (empty array) @SingleMemberByteArray({}) class SingleMemberByteArrEmptyClass { } @SingleMemberShortArray({}) class SingleMemberShortArrEmptyClass { } @SingleMemberIntArray({}) class SingleMemberIntArrEmptyClass { } @SingleMemberLongArray({}) class SingleMemberLongArrEmptyClass { } @SingleMemberCharArray({}) class SingleMemberCharArrEmptyClass { } @SingleMemberFloatArray({}) class SingleMemberFloatArrEmptyClass { } @SingleMemberDoubleArray({}) class SingleMemberDoubleArrEmptyClass { } @SingleMemberBooleanArray({})class SingleMemberBooleanArrEmptyClass { } @SingleMemberStringArray({}) class SingleMemberStringArrEmptyClass { } @SingleMemberClassArray({}) class SingleMemberClassArrEmptyClass { } @SingleMemberEnumArray({}) class SingleMemberEnumArrEmptyClass { } // Single member array (one-element shorthand) @SingleMemberByteArray(1) class SingleMemberByteArrOneClass { } @SingleMemberShortArray(2) class SingleMemberShortArrOneClass { } @SingleMemberIntArray(3) class SingleMemberIntArrOneClass { } @SingleMemberLongArray(4L) class SingleMemberLongArrOneClass { } @SingleMemberCharArray('5') class SingleMemberCharArrOneClass { } @SingleMemberFloatArray(6.0f) class SingleMemberFloatArrOneClass { } @SingleMemberDoubleArray(7.0) class SingleMemberDoubleArrOneClass { } @SingleMemberBooleanArray(true) class SingleMemberBooleanArrOneClass { } @SingleMemberStringArray("custom") class SingleMemberStringArrOneClass { } @SingleMemberClassArray(Map.class) class SingleMemberClassArrOneClass { } @SingleMemberEnumArray(Stooge.MOE) class SingleMemberEnumArrOneClass { } // Single member array (two elements) @SingleMemberByteArray({1, 2}) class SingleMemberByteArrTwoClass { } @SingleMemberShortArray({2, 3}) class SingleMemberShortArrTwoClass { } @SingleMemberIntArray({3, 4}) class SingleMemberIntArrTwoClass { } @SingleMemberLongArray({4L, 5L}) class SingleMemberLongArrTwoClass { } @SingleMemberCharArray({'5', '6'}) class SingleMemberCharArrTwoClass { } @SingleMemberFloatArray({6.0f, 7.0f}) class SingleMemberFloatArrTwoClass { } @SingleMemberDoubleArray({7.0, 8.0}) class SingleMemberDoubleArrTwoClass { } @SingleMemberBooleanArray({true,false}) class SingleMemberBooleanArrTwoClass { } @SingleMemberStringArray({"custom", "paint"}) class SingleMemberStringArrTwoClass { } @SingleMemberClassArray({Map.class, Set.class}) class SingleMemberClassArrTwoClass { } @SingleMemberEnumArray({Stooge.MOE, Stooge.CURLY}) class SingleMemberEnumArrTwoClass { } // Single member array with default (override) @SingleMemberByteArrayDef(1) class SingleMemberByteArrOvrdDefClass { } @SingleMemberShortArrayDef(2) class SingleMemberShortArrOvrdDefClass { } @SingleMemberIntArrayDef(3) class SingleMemberIntArrOvrdDefClass { } @SingleMemberLongArrayDef(4L) class SingleMemberLongArrOvrdDefClass { } @SingleMemberCharArrayDef('5') class SingleMemberCharArrOvrdDefClass { } @SingleMemberFloatArrayDef(6.0f) class SingleMemberFloatArrOvrdDefClass { } @SingleMemberDoubleArrayDef(7.0) class SingleMemberDoubleArrOvrdDefClass { } @SingleMemberBooleanArrayDef(true) class SingleMemberBooleanArrOvrdDefClass { } @SingleMemberStringArrayDef("custom") class SingleMemberStringArrOvrdDefClass { } @SingleMemberClassArrayDef(Map.class) class SingleMemberClassArrOvrdDefClass { } @SingleMemberEnumArrayDef(Stooge.MOE) class SingleMemberEnumArrOvrdDefClass { } // Single member array with default - accept @SingleMemberByteArrayDef class SingleMemberByteArrAcceptDefClass { } @SingleMemberShortArrayDef class SingleMemberShortArrAcceptDefClass { } @SingleMemberIntArrayDef class SingleMemberIntArrAcceptDefClass { } @SingleMemberLongArrayDef class SingleMemberLongArrAcceptDefClass { } @SingleMemberCharArrayDef class SingleMemberCharArrAcceptDefClass { } @SingleMemberFloatArrayDef class SingleMemberFloatArrAcceptDefClass { } @SingleMemberDoubleArrayDef class SingleMemberDoubleArrAcceptDefClass { } @SingleMemberBooleanArrayDef class SingleMemberBooleanArrAcceptDefClass { } @SingleMemberStringArrayDef class SingleMemberStringArrAcceptDefClass { } @SingleMemberClassArrayDef class SingleMemberClassArrAcceptDefClass { } @SingleMemberEnumArrayDef class SingleMemberEnumArrAcceptDefClass { } // Annotated classes for inheritance and declared-annotations tests @Foo @Bar class Grandpa { } class Dad extends Grandpa { } @Bar class Son extends Dad { }