7
7
import io .swagger .v3 .oas .models .security .SecurityScheme ;
8
8
import java .util .*;
9
9
import org .openapitools .openapidiff .core .model .ChangedSecurityRequirement ;
10
- import org .openapitools .openapidiff .core .model .ChangedSecurityScheme ;
11
10
import org .openapitools .openapidiff .core .model .DiffContext ;
12
11
13
12
/** Created by adarsh.sharma on 07/01/18. */
14
13
public class SecurityRequirementDiff {
15
- private OpenApiDiff openApiDiff ;
16
- private Components leftComponents ;
17
- private Components rightComponents ;
14
+ private final OpenApiDiff openApiDiff ;
15
+ private final Components leftComponents ;
16
+ private final Components rightComponents ;
18
17
19
18
public SecurityRequirementDiff (OpenApiDiff openApiDiff ) {
20
19
this .openApiDiff = openApiDiff ;
@@ -30,8 +29,7 @@ public SecurityRequirementDiff(OpenApiDiff openApiDiff) {
30
29
31
30
public static SecurityRequirement getCopy (LinkedHashMap <String , List <String >> right ) {
32
31
SecurityRequirement newSecurityRequirement = new SecurityRequirement ();
33
- right .entrySet ().stream ()
34
- .forEach (e -> newSecurityRequirement .put (e .getKey (), new ArrayList <>(e .getValue ())));
32
+ right .forEach ((key , value ) -> newSecurityRequirement .put (key , new ArrayList <>(value )));
35
33
return newSecurityRequirement ;
36
34
}
37
35
@@ -68,29 +66,31 @@ public Optional<ChangedSecurityRequirement> diff(
68
66
ChangedSecurityRequirement changedSecurityRequirement =
69
67
new ChangedSecurityRequirement (left , right != null ? getCopy (right ) : null );
70
68
71
- left = left == null ? new SecurityRequirement () : left ;
72
- right = right == null ? new SecurityRequirement () : right ;
69
+ SecurityRequirement leftRequirement = left == null ? new SecurityRequirement () : left ;
70
+ SecurityRequirement rightRequirement = right == null ? new SecurityRequirement () : right ;
73
71
74
- for (String leftSchemeRef : left . keySet ()) {
75
- LinkedHashMap <String , List <String >> rightSec = contains (right , leftSchemeRef );
72
+ for (Map . Entry < String , List < String >> leftEntry : leftRequirement . entrySet ()) {
73
+ LinkedHashMap <String , List <String >> rightSec = contains (rightRequirement , leftEntry . getKey () );
76
74
if (rightSec .isEmpty ()) {
77
- changedSecurityRequirement .addMissing (leftSchemeRef , left . get ( leftSchemeRef ));
75
+ changedSecurityRequirement .addMissing (leftEntry . getKey (), leftEntry . getValue ( ));
78
76
} else {
79
- String rightSchemeRef = rightSec .keySet ().stream ().findFirst ().get ();
80
- right .remove (rightSchemeRef );
81
- Optional <ChangedSecurityScheme > diff =
82
- openApiDiff
83
- .getSecuritySchemeDiff ()
84
- .diff (
85
- leftSchemeRef ,
86
- left .get (leftSchemeRef ),
87
- rightSchemeRef ,
88
- rightSec .get (rightSchemeRef ),
89
- context );
90
- diff .ifPresent (changedSecurityRequirement ::addChanged );
77
+ Optional <String > rightSchemeRef = rightSec .keySet ().stream ().findFirst ();
78
+ rightSchemeRef .ifPresent (rightRequirement ::remove );
79
+ rightSchemeRef
80
+ .flatMap (
81
+ rightScheme ->
82
+ openApiDiff
83
+ .getSecuritySchemeDiff ()
84
+ .diff (
85
+ leftEntry .getKey (),
86
+ leftEntry .getValue (),
87
+ rightScheme ,
88
+ rightSec .get (rightScheme ),
89
+ context ))
90
+ .ifPresent (changedSecurityRequirement ::addChanged );
91
91
}
92
92
}
93
- right .forEach (changedSecurityRequirement ::addIncreased );
93
+ rightRequirement .forEach (changedSecurityRequirement ::addIncreased );
94
94
95
95
return isChanged (changedSecurityRequirement );
96
96
}
0 commit comments