src/share/classes/sun/reflect/generics/reflectiveObjects/ParameterizedTypeImpl.java

Print this page

        

*** 1,7 **** /* ! * 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. Oracle designates this --- 1,7 ---- /* ! * 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 * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 31,41 **** import java.lang.reflect.Method; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; import java.util.Arrays; ! /** Implementing class for ParameterizedType interface. */ public class ParameterizedTypeImpl implements ParameterizedType { private Type[] actualTypeArguments; --- 31,41 ---- import java.lang.reflect.Method; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; import java.util.Arrays; ! import java.util.Objects; /** Implementing class for ParameterizedType interface. */ public class ParameterizedTypeImpl implements ParameterizedType { private Type[] actualTypeArguments;
*** 45,57 **** private ParameterizedTypeImpl(Class<?> rawType, Type[] actualTypeArguments, Type ownerType) { this.actualTypeArguments = actualTypeArguments; this.rawType = rawType; ! if (ownerType != null) { ! this.ownerType = ownerType; ! } else { this.ownerType = rawType.getDeclaringClass();} validateConstructorArguments(); } private void validateConstructorArguments() { TypeVariable/*<?>*/[] formals = rawType.getTypeParameters(); --- 45,55 ---- private ParameterizedTypeImpl(Class<?> rawType, Type[] actualTypeArguments, Type ownerType) { this.actualTypeArguments = actualTypeArguments; this.rawType = rawType; ! this.ownerType = (ownerType != null) ? ownerType : rawType.getDeclaringClass(); validateConstructorArguments(); } private void validateConstructorArguments() { TypeVariable/*<?>*/[] formals = rawType.getTypeParameters();
*** 60,70 **** throw new MalformedParameterizedTypeException(); } for (int i = 0; i < actualTypeArguments.length; i++) { // check actuals against formals' bounds } - } /** * Static factory. Given a (generic) class, actual type arguments * and an owner type, creates a parameterized type. --- 58,67 ----
*** 187,216 **** System.out.printf("\towner %s\traw %s\ttypeArg %s%n", ownerEquality, rawEquality, typeArgEquality); return ownerEquality && rawEquality && typeArgEquality; } - return ! (ownerType == null ? ! thatOwner == null : ! ownerType.equals(thatOwner)) && ! (rawType == null ? ! thatRawType == null : ! rawType.equals(thatRawType)) && Arrays.equals(actualTypeArguments, // avoid clone that.getActualTypeArguments()); } else return false; } @Override public int hashCode() { return Arrays.hashCode(actualTypeArguments) ^ ! (ownerType == null ? 0 : ownerType.hashCode() ) ^ ! (rawType == null ? 0 : rawType.hashCode() ); } public String toString() { StringBuilder sb = new StringBuilder(); --- 184,208 ---- System.out.printf("\towner %s\traw %s\ttypeArg %s%n", ownerEquality, rawEquality, typeArgEquality); return ownerEquality && rawEquality && typeArgEquality; } return ! Objects.equals(ownerType, thatOwner) && ! Objects.equals(rawType, thatRawType) && Arrays.equals(actualTypeArguments, // avoid clone that.getActualTypeArguments()); } else return false; } @Override public int hashCode() { return Arrays.hashCode(actualTypeArguments) ^ ! Objects.hashCode(ownerType) ^ ! Objects.hashCode(rawType); } public String toString() { StringBuilder sb = new StringBuilder();
*** 237,250 **** sb.append("<"); boolean first = true; for(Type t: actualTypeArguments) { if (!first) sb.append(", "); ! if (t instanceof Class) ! sb.append(((Class)t).getName()); ! else ! sb.append(t.toString()); first = false; } sb.append(">"); } --- 229,239 ---- sb.append("<"); boolean first = true; for(Type t: actualTypeArguments) { if (!first) sb.append(", "); ! sb.append(t.getTypeName()); first = false; } sb.append(">"); }