JDK 8 code review request for 8014836: Have GenericDeclaration extend AnnotatedElement (original) (raw)
Joe Darcy joe.darcy at oracle.com
Mon May 20 21:10:13 UTC 2013
- Previous message: RFR (JAXP) : 8014891 : incorrect handling FEATURE_SECURE_PROCESSING in jdk xerces
- Next message: JDK 8 code review request for 8014836: Have GenericDeclaration extend AnnotatedElement
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello,
Please review the patch below which implements
8014836: Have GenericDeclaration extend AnnotatedElement
All the existing implementations of GenericDeclaration in the JDK already implement AnnotatedElement. Some code in java.lang.Class needed to be adjusted slightly since AnnotatedElement declares a default method and calling an interface's default method in an implementing class has to go through the direct interface type.
Thanks,
-Joe
--- a/src/share/classes/java/lang/Class.java Mon May 20 11:56:46 2013 -0700 +++ b/src/share/classes/java/lang/Class.java Mon May 20 14:07:15 2013 -0700 @@ -28,6 +28,7 @@ import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Array; import java.lang.reflect.GenericArrayType; +import java.lang.reflect.GenericDeclaration; import java.lang.reflect.Member; import java.lang.reflect.Field; import java.lang.reflect.Executable; @@ -115,9 +116,9 @@
- @since JDK1.0 */ public final class Class implements java.io.Serializable,
java.lang.reflect.GenericDeclaration,
java.lang.reflect.Type,
java.lang.reflect.AnnotatedElement {
GenericDeclaration,
Type,
AnnotatedElement { private static final int ANNOTATION= 0x00002000; private static final int ENUM = 0x00004000; private static final int SYNTHETIC = 0x00001000;
@@ -3182,7 +3183,7 @@ */ @Override public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) {
return AnnotatedElement.super.isAnnotationPresent(annotationClass);
return
GenericDeclaration.super.isAnnotationPresent(annotationClass); }
/**
diff -r 6a9148865139 src/share/classes/java/lang/reflect/GenericDeclaration.java --- a/src/share/classes/java/lang/reflect/GenericDeclaration.java Mon May 20 11:56:46 2013 -0700 +++ b/src/share/classes/java/lang/reflect/GenericDeclaration.java Mon May 20 14:07:15 2013 -0700 @@ -1,5 +1,5 @@ /*
- Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
- Copyright (c) 2003, 2013, 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 @@ -30,7 +30,7 @@
- @since 1.5
/
-public interface GenericDeclaration {
+public interface GenericDeclaration extends AnnotatedElement {
/*
- Returns an array of {@code TypeVariable} objects that
- represent the type variables declared by the generic
- Previous message: RFR (JAXP) : 8014891 : incorrect handling FEATURE_SECURE_PROCESSING in jdk xerces
- Next message: JDK 8 code review request for 8014836: Have GenericDeclaration extend AnnotatedElement
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]