in codegen/src/main/java/software/amazon/awssdk/codegen/customization/processors/ShapeModifiersProcessor.java [173:216]
private void preprocessModifyShapeMembers(ServiceModel serviceModel, Shape shape, ShapeModifier modifier) {
if (modifier.getModify() != null) {
for (Map<String, ModifyModelShapeModifier> modifies : modifier.getModify()) {
for (Entry<String, ModifyModelShapeModifier> entry : modifies.entrySet()) {
String memberToModify = entry.getKey();
ModifyModelShapeModifier modifyModel = entry.getValue();
doModifyShapeMembers(serviceModel, shape, memberToModify, modifyModel);
}
}
}
if (modifier.getExclude() != null) {
for (String memberToExclude : modifier.getExclude()) {
if (shape.getRequired() != null &&
shape.getRequired().contains(memberToExclude)) {
throw new IllegalStateException(
"ShapeModifier.exclude customization found for "
+ memberToExclude
+ ", but this member is marked as required in the model!");
}
if (shape.getMembers() != null) {
shape.getMembers().remove(memberToExclude);
}
}
}
if (modifier.getInject() != null) {
for (Map<String, Member> injects : modifier.getInject()) {
if (shape.getMembers() == null) {
shape.setMembers(new HashMap<>());
}
shape.getMembers().putAll(injects);
}
}
if (modifier.isUnion() != null) {
shape.setUnion(modifier.isUnion());
}
}