On 00:00 Wed 12 Oct , Pekka Enberg wrote: > This patch converts AnnotationInvoncationHandler to use parametrized types for > Class, Map, and Iterator which kills few compilation warnings during build. > > Signed-off-by: Pekka Enberg <penb...@kernel.org> > --- > ChangeLog | 10 ++++++ > .../annotation/AnnotationInvocationHandler.java | 31 +++++++++++-------- > 2 files changed, 28 insertions(+), 13 deletions(-) > > diff --git a/ChangeLog b/ChangeLog > index 7f57a9e..cf728f4 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,3 +1,13 @@ > +2011-10-11 Pekka Enberg <penb...@kernel.org> > + > + * sun/reflect/annotation/AnnotationInvocationHandler.java: > + (AnnotationInvocationHandler): Parametrize raw types. > + (create): Parametrize raw types. > + (equals): Parametrize raw types. > + (hashCode): Parametrize raw types. > + (toString): Parametrize raw types. > + (getBoxedReturnType): Parametrize raw types. > + > 2011-09-09 Andrew John Hughes <ahug...@redhat.com> > > PR classpath/45526: Produce header files for > diff --git a/sun/reflect/annotation/AnnotationInvocationHandler.java > b/sun/reflect/annotation/AnnotationInvocationHandler.java > index 909e7ae..7d585a9 100644 > --- a/sun/reflect/annotation/AnnotationInvocationHandler.java > +++ b/sun/reflect/annotation/AnnotationInvocationHandler.java > @@ -62,21 +62,23 @@ public final class AnnotationInvocationHandler > implements InvocationHandler, Serializable > { > private static final long serialVersionUID = 6182022883658399397L; > - private final Class type; > - private final Map memberValues; > + private final Class<? extends Annotation> type; > + private final Map<String, Object> memberValues; > > /** > * Construct a new invocation handler for an annotation proxy. > * Note that the VM is responsible for filling the memberValues map > * with the default values of all the annotation members. > */ > - public AnnotationInvocationHandler(Class type, Map memberValues) > + public AnnotationInvocationHandler(Class<? extends Annotation> type, > + Map<String, Object> memberValues) > { > this.type = type; > this.memberValues = memberValues; > } > > - public static Annotation create(Class type, Map memberValues) > + public static Annotation create(Class<? extends Annotation> type, > + Map<String, Object> memberValues) > { > for (Method m : type.getDeclaredMethods()) > { > @@ -106,7 +108,8 @@ public final class AnnotationInvocationHandler > * (can) use different representations of annotations that reuse this > * method. > */ > - public static boolean equals(Class type, Map memberValues, Object other) > + public static boolean equals(Class<? extends Annotation> type, > + Map<String, Object> memberValues, Object > other) > { > if (type.isInstance(other)) > { > @@ -217,13 +220,14 @@ public final class AnnotationInvocationHandler > * (can) use different representations of annotations that reuse this > * method. > */ > - public static int hashCode(Class type, Map memberValues) > + public static int hashCode(Class<? extends Annotation> type, > + Map<String, Object> memberValues) > { > int h = 0; > - Iterator iter = memberValues.keySet().iterator(); > + Iterator<String> iter = memberValues.keySet().iterator(); > while (iter.hasNext()) > { > - Object key = iter.next(); > + String key = iter.next(); > Object val = memberValues.get(key); > h += deepHashCode(val) ^ 127 * key.hashCode(); > } > @@ -267,15 +271,16 @@ public final class AnnotationInvocationHandler > * (can) use different representations of annotations that reuse this > * method. > */ > - public static String toString(Class type, Map memberValues) > + public static String toString(Class<? extends Annotation> type, > + Map<String, Object> memberValues) > { > StringBuffer sb = new StringBuffer(); > sb.append('@').append(type.getName()).append('('); > String sep = ""; > - Iterator iter = memberValues.keySet().iterator(); > + Iterator<String> iter = memberValues.keySet().iterator(); > while (iter.hasNext()) > { > - Object key = iter.next(); > + String key = iter.next(); > Object val = memberValues.get(key); > sb.append(sep).append(key).append('=').append(deepToString(val)); > sep = ", "; > @@ -284,9 +289,9 @@ public final class AnnotationInvocationHandler > return sb.toString(); > } > > - private static Class getBoxedReturnType(Method method) > + private static Class<?> getBoxedReturnType(Method method) > { > - Class returnType = method.getReturnType(); > + Class<?> returnType = method.getReturnType(); > > if (returnType == boolean.class) > return Boolean.class; > -- > 1.7.6.4 > >
We can't do this. This class is part of the VM interface and the VM interface is meant to work with < 1.5. If we're going to change that, it should happen after the next release and with plenty of discussion / heads up for VMs. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and IcedTea http://www.gnu.org/software/classpath http://icedtea.classpath.org PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07