/*
* 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.IJavaClassTypeVariable;
import gw.lang.reflect.java.ITypeInfoResolver;
import gw.lang.reflect.java.JavaTypes;
import gw.lang.reflect.module.IModule;
public class UnparseableSourceTypeVariable implements IJavaClassTypeVariable {
private ITypeInfoResolver _owner;
public UnparseableSourceTypeVariable(ITypeInfoResolver owner) {
_owner = owner;
}
@Override
public IType getActualType(TypeVarToTypeMap typeMap) {
return JavaTypes.OBJECT();
}
@Override
public IType getActualType(TypeVarToTypeMap typeMap, boolean bKeepTypeVars) {
return JavaTypes.OBJECT();
}
@Override
public IJavaClassType getConcreteType() {
return JavaTypes.OBJECT().getBackingClassInfo();
}
@Override
public String getName() {
return "UNPARSEABLE_TYPE_PARAMETER";
}
@Override
public String getSimpleName() {
return getName();
}
@Override
public IModule getModule() {
return _owner.getModule();
}
@Override
public String getNamespace() {
return null;
}
@Override
public IJavaClassType[] getBounds() {
return new IJavaClassType[] {JavaTypes.OBJECT().getBackingClassInfo()};
}
}