in oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/validation/util/OasObjectValidatorUtils.java [103:130]
public static <T> List<OasViolation> doValidateMapPropertyKeys(
OasObjectPropertyLocation ownerLocation,
String mapPropertyName,
Map<String, T> mapProperty,
Predicate<String> keyPredicate,
Function<String, String> errorMessage
) {
if (MapUtils.isEmpty(mapProperty)) {
return emptyList();
}
List<OasViolation> violations = new ArrayList<>();
for (Map.Entry<String, T> entry : mapProperty.entrySet()) {
String key = entry.getKey();
String keyName = mapPropertyName + ".'" + key + "'";
OasObjectPropertyLocation keyLoc = ownerLocation.property(keyName);
if (!keyPredicate.test(key)) {
violations.add(new OasViolation(keyLoc, errorMessage.apply(key)));
}
}
return violations;
}