public List validateCompare()

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;

  }