|
10 | 10 | import java.nio.charset.StandardCharsets; |
11 | 11 | import java.util.Objects; |
12 | 12 | import java.util.Set; |
| 13 | +import java.util.function.Predicate; |
13 | 14 | import java.util.regex.Pattern; |
14 | 15 | import java.util.stream.Collectors; |
15 | 16 | import software.amazon.smithy.java.logging.InternalLogger; |
@@ -54,6 +55,24 @@ protected static Model cleanAndFilterModel( |
54 | 55 | Set<String> blockedOperations, |
55 | 56 | Set<String> allowedWords, |
56 | 57 | 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 |
57 | 76 | ) { |
58 | 77 | var allowedService = model.expectShape(allowedServiceId, ServiceShape.class); |
59 | 78 | var serviceBuilder = allowedService.toBuilder(); |
@@ -81,7 +100,8 @@ protected static Model cleanAndFilterModel( |
81 | 100 | builder.addShape(service); |
82 | 101 | cleanDocumentation(service, builder); |
83 | 102 | var transformer = ModelTransformer.create(); |
84 | | - return transformer.removeUnreferencedShapes(transformer.removeUnreferencedTraitDefinitions(builder.build())); |
| 103 | + return transformer.removeUnreferencedShapes(transformer.removeUnreferencedTraitDefinitions(builder.build()), |
| 104 | + unreferencedShapeKeepFilter); |
85 | 105 | } |
86 | 106 |
|
87 | 107 | static boolean isAllowed( |
|
0 commit comments