@SuppressWarnings({"rawtypes", "unchecked" })
private static ComputationTargetType decodeNestedType(final ComputationTargetType outer, final FudgeField field) throws Exception {
if (field.getValue() instanceof String) {
final String name = (String) field.getValue();
final ComputationTargetType common = CommonByName.get(name);
if (common != null) {
if (outer == null) {
return common;
} else {
return outer.containing(common);
}
} else {
final Class clazz = ClassUtils.loadClass(name);
if (outer == null) {
return ComputationTargetType.of(clazz);
} else {
return outer.containing(clazz);
}
}
} else if (field.getValue() instanceof FudgeMsg) {
ComputationTargetType type = null;
for (final FudgeField field2 : (FudgeMsg) field.getValue()) {
type = decodeAlternativeType(type, field2);
}
if (type != null) {
if (outer == null) {