/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.internal.gosu.parser;
import gw.lang.reflect.java.IJavaClassType;
import gw.lang.reflect.java.IJavaClassTypeVariable;
import gw.lang.reflect.module.IModule;
import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
public class TypeVariableJavaTypeVariable extends TypeJavaClassType implements IJavaClassTypeVariable {
private TypeVariable _typeParameter;
private IModule _module;
public TypeVariableJavaTypeVariable(TypeVariable typeParameter, IModule module) {
super(typeParameter, module);
_typeParameter = typeParameter;
_module = module;
}
@Override
public IJavaClassType getConcreteType() {
throw new RuntimeException("if called, fix it");
}
@Override
public String getName() {
return _typeParameter.getName();
}
@Override
public String getSimpleName() {
return getName();
}
@Override
public IJavaClassType[] getBounds() {
Type[] rawBounds = _typeParameter.getBounds();
IJavaClassType[] bounds = new IJavaClassType[rawBounds.length];
for (int i = 0; i < bounds.length; i++) {
bounds[i] = TypeJavaClassType.createType(rawBounds[i], _module);
}
return bounds;
}
}