{
SignatureAttribute.TypeVariable tv = (SignatureAttribute.TypeVariable)args[i].getType();
Object [] bounds = new Object[] {Object.class};
String varname = tv.getName();
Class decl = targetClass;
typeArgs[i] = new TypeVariableImpl(bounds, decl, varname);
}
else
{
throw new RuntimeException("Invalid argument type " + args[i].getType());
}
}
}
}
ParameterizedTypeImpl paramType = new ParameterizedTypeImpl(type.toString(), raw, ownerType, typeArgs);
return paramType;
}
}
else if (type instanceof SignatureAttribute.TypeVariable)
{
SignatureAttribute.TypeVariable tv = (SignatureAttribute.TypeVariable)type;
Object [] bounds = new Object[]{Object.class};
String varname = tv.getName();
Class decl = targetClass;
return new TypeVariableImpl(bounds, decl, varname);
}
else if (type instanceof SignatureAttribute.ArrayType)
{
SignatureAttribute.ArrayType arrayType = (SignatureAttribute.ArrayType)type;
return new GenericArrayTypeImpl(arrayType.getComponentType(), arrayType.getDimension(), arrayType.toString());