ArgumentChecks.ensureNonNull("memberTypes", memberTypes);
memberTypes = new LinkedHashMap<MemberName,Type>(memberTypes);
memberTypes.remove(null);
for (final Map.Entry<MemberName,Type> entry : memberTypes.entrySet()) {
final MemberName name = entry.getKey();
final Type type = entry.getValue();
if (type == null || !name.getAttributeType().equals(type.getTypeName())) {
throw new IllegalArgumentException(Errors.format(Errors.Keys.IllegalMemberType_2, name, type));
}
}
this.typeName = typeName;
this.container = container;