com.qdesrame.openapi.diff.compare.ContentDiff Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of openapi-diff Show documentation
Show all versions of openapi-diff Show documentation
Utility for comparing two OpenAPI specifications.
The newest version!
package com.qdesrame.openapi.diff.compare;
import com.qdesrame.openapi.diff.model.ChangedContent;
import com.qdesrame.openapi.diff.model.ChangedMediaType;
import io.swagger.v3.oas.models.media.Content;
import io.swagger.v3.oas.models.media.MediaType;
import java.util.*;
public class ContentDiff implements Comparable {
private OpenApiDiff openApiDiff;
public ContentDiff(OpenApiDiff openApiDiff) {
this.openApiDiff = openApiDiff;
}
@Override
public boolean compare(Content left, Content right) {
return false;
}
public Optional diff(Content left, Content right) {
ChangedContent changedContent = new ChangedContent(left, right);
MapKeyDiff mediaTypeDiff = MapKeyDiff.diff(left, right);
changedContent.setIncreased(mediaTypeDiff.getIncreased());
changedContent.setMissing(mediaTypeDiff.getMissing());
List sharedMediaTypes = mediaTypeDiff.getSharedKey();
Map changedMediaTypes = new HashMap<>();
for (String mediaTypeKey : sharedMediaTypes) {
MediaType oldMediaType = left.get(mediaTypeKey);
MediaType newMediaType = right.get(mediaTypeKey);
ChangedMediaType changedMediaType = new ChangedMediaType(oldMediaType.getSchema(), newMediaType.getSchema());
openApiDiff.getSchemaDiff().diff(new HashSet<>(), oldMediaType.getSchema(), newMediaType.getSchema()).ifPresent(changedMediaType::setChangedSchema);
if (changedMediaType.isDiff()) {
changedMediaTypes.put(mediaTypeKey, changedMediaType);
}
}
changedContent.setChanged(changedMediaTypes);
return changedContent.isDiff() ? Optional.of(changedContent) : Optional.empty();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy