Skip to content

Commit c326e27

Browse files
adwsinghrhernandez35
authored andcommitted
Allow passing a unreferenced shapes keep filter
1 parent 56a5f24 commit c326e27

File tree

1 file changed

+21
-1
lines changed
  • model-bundle/model-bundle-api/src/main/java/software/amazon/smithy/modelbundle/api

1 file changed

+21
-1
lines changed

model-bundle/model-bundle-api/src/main/java/software/amazon/smithy/modelbundle/api/ModelBundler.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.nio.charset.StandardCharsets;
1111
import java.util.Objects;
1212
import java.util.Set;
13+
import java.util.function.Predicate;
1314
import java.util.regex.Pattern;
1415
import java.util.stream.Collectors;
1516
import software.amazon.smithy.java.logging.InternalLogger;
@@ -54,6 +55,24 @@ protected static Model cleanAndFilterModel(
5455
Set<String> blockedOperations,
5556
Set<String> allowedWords,
5657
Set<String> blockedWords
58+
) {
59+
return cleanAndFilterModel(model,
60+
allowedServiceId,
61+
allowedOperations,
62+
blockedOperations,
63+
allowedWords,
64+
blockedWords,
65+
s -> true);
66+
}
67+
68+
protected static Model cleanAndFilterModel(
69+
Model model,
70+
ShapeId allowedServiceId,
71+
Set<String> allowedOperations,
72+
Set<String> blockedOperations,
73+
Set<String> allowedWords,
74+
Set<String> blockedWords,
75+
Predicate<Shape> unreferencedShapeKeepFilter
5776
) {
5877
var allowedService = model.expectShape(allowedServiceId, ServiceShape.class);
5978
var serviceBuilder = allowedService.toBuilder();
@@ -81,7 +100,8 @@ protected static Model cleanAndFilterModel(
81100
builder.addShape(service);
82101
cleanDocumentation(service, builder);
83102
var transformer = ModelTransformer.create();
84-
return transformer.removeUnreferencedShapes(transformer.removeUnreferencedTraitDefinitions(builder.build()));
103+
return transformer.removeUnreferencedShapes(transformer.removeUnreferencedTraitDefinitions(builder.build()),
104+
unreferencedShapeKeepFilter);
85105
}
86106

87107
static boolean isAllowed(

0 commit comments

Comments
 (0)