Stack<QName> seenTypes) {
TypeCode tc = getAnonTypeCode(orb, type, obj, typeMap, seenTypes);
if (tc == null) {
if (obj instanceof Alias) {
Alias aliasType = (Alias)obj;
tc = orb.create_alias_tc(aliasType.getRepositoryID(),
getTypeCodeName(aliasType.getName()),
getTypeCode(orb, aliasType.getBasetype(), typeMap, seenTypes));
} else if (obj instanceof Array) {
Array arrayType = (Array)obj;
tc = orb.create_array_tc((int) arrayType.getBound(),
getTypeCode(orb, arrayType.getElemtype(), typeMap, seenTypes));
} else if (obj instanceof Enum) {