public void provideType(String typeName, ImRecordType type) {
providedTypes.put(typeName, type);
}
public ImRecordType resolveStruct(GimpleRecordType recordType) {
ImRecordType type = map.get(recordType.getId());
if(type != null) {
return type;
} else {
GimpleRecordTypeDef def = defs.get(recordType.getId());
if(def == null) {
throw new RuntimeException("Can't find record type definition for " + recordType);
}
if(providedTypes.containsKey(def.getName())) {
ImRecordType providedType = providedTypes.get(def.getName());
map.put(recordType.getId(), providedType);
return providedType;
} else {