/*
* 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.IJavaClassGenericArrayType;
import gw.lang.reflect.java.IJavaClassInfo;
import gw.lang.reflect.java.IJavaClassType;
import gw.lang.reflect.module.IModule;
public class JavaSourceArrayType implements IJavaClassGenericArrayType {
private IJavaClassType _componentType;
public JavaSourceArrayType(IJavaClassType componentType) {
_componentType = componentType;
}
@Override
public IJavaClassType getGenericComponentType() {
return _componentType;
}
@Override
public IType getActualType(TypeVarToTypeMap typeMap) {
return getGenericComponentType().getActualType(typeMap).getArrayType();
}
@Override
public IType getActualType(TypeVarToTypeMap typeMap, boolean bKeepTypeVars) {
return getGenericComponentType().getActualType(typeMap, bKeepTypeVars).getArrayType();
}
@Override
public IJavaClassType getConcreteType() {
return new JavaArrayClassInfo((IJavaClassInfo) _componentType.getConcreteType());
}
@Override
public String getName() {
return _componentType.getName() + "[]";
}
@Override
public String getSimpleName() {
return getName();
}
@Override
public IModule getModule() {
return _componentType.getModule();
}
@Override
public String getNamespace() {
return _componentType.getNamespace();
}
public String toString() {
return _componentType.getName() + "[]";
}
}