/* * Copyright 2013 Guidewire Software, Inc. */ package gw.internal.gosu.parser; import gw.lang.reflect.java.IJavaClassType; import gw.lang.reflect.java.IJavaClassParameterizedType; import gw.lang.reflect.module.IModule; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; public class ParameterizedTypeJavaClassParameterizedType extends TypeJavaClassType implements IJavaClassParameterizedType { private ParameterizedType _parameterizedType; public ParameterizedTypeJavaClassParameterizedType(ParameterizedType parameterizedType, IModule module) { super(parameterizedType, module); _parameterizedType = parameterizedType; _module = module; } @Override public IJavaClassType[] getActualTypeArguments() { Type[] rawTypes = _parameterizedType.getActualTypeArguments(); IJavaClassType[] types = new IJavaClassType[rawTypes.length]; for (int i = 0; i < rawTypes.length; i++) { types[i] = TypeJavaClassType.createType(rawTypes[i], _module); } return types; } @Override public IJavaClassType getConcreteType() { return TypeJavaClassType.createType(_parameterizedType.getRawType(), _module); } @Override public String getSimpleName() { return getName(); } }