/*
* Copyright 2013. Guidewire Software, Inc.
*/
package gw.internal.gosu.parser.java.classinfo;
import gw.lang.parser.TypeVarToTypeMap;
import gw.lang.reflect.IType;
import gw.lang.reflect.java.IJavaClassType;
import gw.lang.reflect.java.IJavaClassWildcardType;
import gw.lang.reflect.module.IModule;
public class JavaWildcardType implements IJavaClassWildcardType {
private IJavaClassType _bound;
private IModule _module;
public JavaWildcardType( IJavaClassType bound ) {
_bound = bound;
_module = bound.getModule();
}
@Override
public IJavaClassType getConcreteType() {
return getUpperBound();
}
@Override
public String getNamespace() {
return null;
}
@Override
public String getName() {
return "? extends " + _bound.getName();
}
@Override
public String getSimpleName() {
return getName();
}
@Override
public IModule getModule() {
return _module;
}
public String toString() {
return getName();
}
@Override
public IType getActualType( TypeVarToTypeMap typeMap) {
return _bound.getActualType(typeMap);
}
@Override
public IType getActualType( TypeVarToTypeMap typeMap, boolean bKeepTypeVars) {
return _bound.getActualType(typeMap, bKeepTypeVars);
}
@Override
public IJavaClassType getUpperBound() {
return _bound;
}
public void setBound(IJavaClassType bound) {
_bound = bound;
}
}