/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.internal.gosu.parser;
import gw.lang.reflect.java.IJavaClassType;
import gw.lang.reflect.java.IJavaClassWildcardType;
import gw.lang.reflect.module.IModule;
import java.lang.reflect.WildcardType;
import java.lang.reflect.Type;
public class WildcardTypeJavaClassWildcardType extends TypeJavaClassType implements IJavaClassWildcardType {
private WildcardType _wildcardType;
public WildcardTypeJavaClassWildcardType(WildcardType wildcardType, IModule module) {
super(wildcardType, module);
_wildcardType = wildcardType;
}
@Override
public IJavaClassType getUpperBound() {
// we only support one bound in Gosu
Type rawType = _wildcardType.getUpperBounds()[0];
return TypeJavaClassType.createType(rawType, _module);
}
@Override
public IJavaClassType getConcreteType() {
return getUpperBound();
}
@Override
public String getSimpleName() {
return getName();
}
@Override
public IModule getModule() {
return _module;
}
}