2
2
3
3
import com .qdesrame .openapi .diff .model .ChangedParameter ;
4
4
import com .qdesrame .openapi .diff .model .ChangedSchema ;
5
+ import com .qdesrame .openapi .diff .model .DiffContext ;
5
6
import com .qdesrame .openapi .diff .utils .RefPointer ;
6
7
import com .qdesrame .openapi .diff .utils .RefType ;
7
8
import io .swagger .v3 .oas .models .Components ;
11
12
import java .util .Objects ;
12
13
import java .util .Optional ;
13
14
15
+ import static com .qdesrame .openapi .diff .utils .ChangedUtils .isChanged ;
16
+
14
17
public class ParameterDiff extends ReferenceDiffCache <Parameter , ChangedParameter > {
15
18
16
19
private Components leftComponents ;
@@ -24,13 +27,13 @@ public ParameterDiff(OpenApiDiff openApiDiff) {
24
27
this .rightComponents = openApiDiff .getNewSpecOpenApi () != null ? openApiDiff .getNewSpecOpenApi ().getComponents () : null ;
25
28
}
26
29
27
- public Optional <ChangedParameter > diff (Parameter left , Parameter right ) {
28
- return cachedDiff (new HashSet <>(), left , right , left .get$ref (), right .get$ref ());
30
+ public Optional <ChangedParameter > diff (Parameter left , Parameter right , DiffContext context ) {
31
+ return cachedDiff (new HashSet <>(), left , right , left .get$ref (), right .get$ref (), context );
29
32
}
30
33
31
34
@ Override
32
- protected Optional <ChangedParameter > computeDiff (HashSet <String > refSet , Parameter left , Parameter right ) {
33
- ChangedParameter changedParameter = new ChangedParameter (right .getName (), right .getIn ());
35
+ protected Optional <ChangedParameter > computeDiff (HashSet <String > refSet , Parameter left , Parameter right , DiffContext context ) {
36
+ ChangedParameter changedParameter = new ChangedParameter (right .getName (), right .getIn (), context );
34
37
left = refPointer .resolveRef (this .leftComponents , left , left .get$ref ());
35
38
right = refPointer .resolveRef (this .rightComponents , right , right .get$ref ());
36
39
@@ -43,14 +46,14 @@ protected Optional<ChangedParameter> computeDiff(HashSet<String> refSet, Paramet
43
46
changedParameter .setChangeAllowEmptyValue (getBooleanDiff (left .getAllowEmptyValue (), right .getAllowEmptyValue ()));
44
47
changedParameter .setChangeStyle (!Objects .equals (left .getStyle (), right .getStyle ()));
45
48
changedParameter .setChangeExplode (getBooleanDiff (left .getExplode (), right .getExplode ()));
46
- Optional <ChangedSchema > changedSchema = openApiDiff .getSchemaDiff ().diff (refSet , left .getSchema (), right .getSchema ());
49
+ Optional <ChangedSchema > changedSchema = openApiDiff .getSchemaDiff ().diff (refSet , left .getSchema (), right .getSchema (), context );
47
50
if (changedSchema .isPresent ()) {
48
51
changedParameter .setChangedSchema (changedSchema .get ());
49
52
}
50
- openApiDiff .getContentDiff ().diff (left .getContent (), right .getContent ())
53
+ openApiDiff .getContentDiff ().diff (left .getContent (), right .getContent (), context )
51
54
.ifPresent (changedParameter ::setChangedContent );
52
55
53
- return changedParameter . isDiff () ? Optional . of ( changedParameter ) : Optional . empty ( );
56
+ return isChanged ( changedParameter );
54
57
}
55
58
56
59
private boolean getBooleanDiff (Boolean left , Boolean right ) {
0 commit comments