in oas-validator/oas-validator-core/src/main/java/org/apache/servicecomb/toolkit/oasv/diffvalidation/skeleton/pathitem/PathItemOperationsDiffValidator.java [44:116]
public List<OasDiffViolation> validateCompare(OasDiffValidationContext context,
OasObjectPropertyLocation leftLocation, PathItem leftOasObject,
OasObjectPropertyLocation rightLocation, PathItem rightOasObject) {
Map<PathItem.HttpMethod, Operation> leftOperationMap = leftOasObject.readOperationsMap();
Map<PathItem.HttpMethod, Operation> rightOperationMap = rightOasObject.readOperationsMap();
List<OasDiffViolation> violations = new ArrayList<>();
for (Map.Entry<PathItem.HttpMethod, Operation> entry : leftOperationMap.entrySet()) {
PathItem.HttpMethod leftMethod = entry.getKey();
Operation leftOperation = entry.getValue();
OasObjectPropertyLocation leftOperationLoc = leftLocation
.property(leftMethod.toString().toLowerCase(), OPERATION);
Operation rightOperation = rightOperationMap.get(leftMethod);
if (rightOperation == null) {
violations.addAll(
doDiffValidateProperty(
context,
leftOperationLoc,
leftOperation,
null,
null,
operationValidators
)
);
} else {
OasObjectPropertyLocation rightOperationLoc = rightLocation
.property(leftMethod.toString().toLowerCase(), OPERATION);
violations.addAll(
doDiffValidateProperty(
context,
leftOperationLoc,
leftOperation,
rightOperationLoc,
rightOperation,
operationValidators
)
);
}
}
for (Map.Entry<PathItem.HttpMethod, Operation> entry : rightOperationMap.entrySet()) {
PathItem.HttpMethod rightMethod = entry.getKey();
if (leftOperationMap.containsKey(rightMethod)) {
continue;
}
Operation rightOperation = rightOperationMap.get(rightMethod);
OasObjectPropertyLocation rightOperationLoc = rightLocation
.property(rightMethod.toString().toLowerCase(), OPERATION);
violations.addAll(
doDiffValidateProperty(
context,
null,
null,
rightOperationLoc,
rightOperation,
operationValidators
)
);
}
return violations;
}