All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.linkedin.restli.tools.compatibility.CompatibilityReport Maven / Gradle / Ivy

package com.linkedin.restli.tools.compatibility;


import com.linkedin.restli.tools.idlcheck.CompatibilityInfo;
import com.linkedin.restli.tools.idlcheck.CompatibilityLevel;

import java.util.Arrays;
import java.util.stream.Collectors;


public class CompatibilityReport
{
  private final CompatibilityInfoMap _infoMap;
  private final CompatibilityLevel _compatibilityLevel;

  public CompatibilityReport(CompatibilityInfoMap infoMap, CompatibilityLevel compatibilityLevel)
  {
    _infoMap = infoMap;
    _compatibilityLevel = compatibilityLevel;
  }

  /**
   * Returns a report of the compatibility info map based on the compatibility level. Each line is prefixed with
   * a line type enclosed in []. Supported report line types are:
   * 
    *
  • [RS-C] - String describing a restspec change that is backward compatible.
  • *
  • [RS-I] - String describing a restspec change that is backward incompatible.
  • *
  • [MD-C] - String describing a model(PDSC) change that is backward compatible.
  • *
  • [MD-C] - String describing a model(PDSC) change that is backward incompatible.
  • *
  • [RS-COMPAT] - Boolean indicating if the full compatibility check was restspec backward compatible for the provided compatibilityLevel
  • *
  • [MD-COMPAT] - Boolean indicating if the full compatibility check was model backward compatible for the provided compatibilityLevel
  • *
* * This report will then be parsed by {@code CompatibilityLogChecker} to provide results to the pegasus gradle plugin. */ public String createReport() { String restSpecCompat = _infoMap.getRestSpecInfo(CompatibilityInfo.Level.COMPATIBLE) .stream() .map(it -> "[RS-C]:" + it) .collect(Collectors.joining("\n")); String restSpecIncompat = _infoMap.getRestSpecInfo(CompatibilityInfo.Level.INCOMPATIBLE) .stream() .map(it -> "[RS-I]:" + it) .collect(Collectors.joining("\n")); String modelCompat = _infoMap.getModelInfo(CompatibilityInfo.Level.COMPATIBLE) .stream() .map(it -> "[MD-C]:" + it) .collect(Collectors.joining("\n")); String modelIncompat = _infoMap.getModelInfo(CompatibilityInfo.Level.INCOMPATIBLE) .stream() .map(it -> "[MD-I]:" + it) .collect(Collectors.joining("\n")); String restSpecIsCompat = String.format("[RS-COMPAT]: %b", _infoMap.isRestSpecCompatible(_compatibilityLevel)); String modelIsCompat = String.format("[MD-COMPAT]: %b", _infoMap.isModelCompatible(_compatibilityLevel)); return Arrays.asList(restSpecIsCompat, modelIsCompat, restSpecCompat, restSpecIncompat, modelCompat, modelIncompat) .stream() .filter(it -> !it.isEmpty()) .collect(Collectors.joining("\n")) + '\n'; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy