/* * Copyright (c) 2003, 2022, 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
*/
// 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 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);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.