16
16
17
17
package io .spring .initializr .web .mapper ;
18
18
19
+ import java .util .List ;
19
20
import java .util .Map ;
20
21
import java .util .stream .Collectors ;
21
-
22
22
import com .fasterxml .jackson .databind .JsonNode ;
23
23
import com .fasterxml .jackson .databind .node .ArrayNode ;
24
24
import com .fasterxml .jackson .databind .node .JsonNodeFactory ;
@@ -41,21 +41,9 @@ public class DependencyMetadataV21JsonMapper implements DependencyMetadataJsonMa
41
41
public String write (DependencyMetadata metadata ) {
42
42
ObjectNode parent = nodeFactory .objectNode ();
43
43
parent .put ("bootVersion" , metadata .getBootVersion ().toString ());
44
- parent .set ("dependencies" ,
45
- mapNode (metadata .getDependencies ()
46
- .entrySet ()
47
- .stream ()
48
- .collect (Collectors .toMap (Map .Entry ::getKey , (entry ) -> mapDependency (entry .getValue ())))));
49
- parent .set ("repositories" ,
50
- mapNode (metadata .getRepositories ()
51
- .entrySet ()
52
- .stream ()
53
- .collect (Collectors .toMap (Map .Entry ::getKey , (entry ) -> mapRepository (entry .getValue ())))));
54
- parent .set ("boms" ,
55
- mapNode (metadata .getBoms ()
56
- .entrySet ()
57
- .stream ()
58
- .collect (Collectors .toMap (Map .Entry ::getKey , (entry ) -> mapBom (entry .getValue ())))));
44
+ parent .set ("dependencies" , mapDependencies (metadata .getDependencies ()));
45
+ parent .set ("repositories" , mapRepositories (metadata .getRepositories ()));
46
+ parent .set ("boms" , mapBoms (metadata .getBoms ()));
59
47
customizeParent (parent , metadata );
60
48
return parent .toString ();
61
49
}
@@ -68,50 +56,66 @@ public String write(DependencyMetadata metadata) {
68
56
protected void customizeParent (ObjectNode parent , DependencyMetadata metadata ) {
69
57
}
70
58
71
- private static JsonNode mapDependency (Dependency dep ) {
59
+ private static ObjectNode mapDependency (Dependency dep ) {
72
60
ObjectNode node = nodeFactory .objectNode ();
73
61
node .put ("groupId" , dep .getGroupId ());
74
62
node .put ("artifactId" , dep .getArtifactId ());
75
- if (dep .getVersion () != null ) {
76
- node .put ("version" , dep .getVersion ());
77
- }
78
63
node .put ("scope" , dep .getScope ());
79
- if (dep .getBom () != null ) {
80
- node .put ("bom" , dep .getBom ());
81
- }
82
- if (dep .getRepository () != null ) {
83
- node .put ("repository" , dep .getRepository ());
84
- }
64
+ addIfNotNull (node , "version" , dep .getVersion ());
65
+ addIfNotNull (node , "bom" , dep .getBom ());
66
+ addIfNotNull (node , "repository" , dep .getRepository ());
85
67
return node ;
86
68
}
87
69
70
+ private static void addIfNotNull (ObjectNode node , String key , String value ) {
71
+ if (value != null ) {
72
+ node .put (key , value );
73
+ }
74
+ }
75
+
88
76
private static JsonNode mapRepository (Repository repo ) {
89
77
ObjectNode node = nodeFactory .objectNode ();
90
78
node .put ("name" , repo .getName ())
91
- .put ("url" , (repo .getUrl () != null ) ? repo .getUrl ().toString () : null )
92
- .put ("snapshotEnabled" , repo .isSnapshotsEnabled ());
79
+ .put ("url" , (repo .getUrl () != null ) ? repo .getUrl ().toString () : null )
80
+ .put ("snapshotEnabled" , repo .isSnapshotsEnabled ());
93
81
return node ;
94
82
}
95
83
96
- private static JsonNode mapBom (BillOfMaterials bom ) {
84
+ private static ObjectNode mapBom (BillOfMaterials bom ) {
97
85
ObjectNode node = nodeFactory .objectNode ();
98
86
node .put ("groupId" , bom .getGroupId ());
99
87
node .put ("artifactId" , bom .getArtifactId ());
100
- if (bom .getVersion () != null ) {
101
- node .put ("version" , bom .getVersion ());
102
- }
103
- if (bom .getRepositories () != null ) {
104
- ArrayNode array = nodeFactory .arrayNode ();
105
- bom .getRepositories ().forEach (array ::add );
106
- node .set ("repositories" , array );
107
- }
88
+ addIfNotNull (node , "version" , bom .getVersion ());
89
+ addArrayIfNotNull (node , bom .getRepositories ());
108
90
return node ;
109
91
}
110
92
111
- private static JsonNode mapNode (Map <String , JsonNode > content ) {
93
+ private static void addArrayIfNotNull (ObjectNode node , List <String > values ) {
94
+ if (values != null && !values .isEmpty ()) {
95
+ ArrayNode arrayNode = nodeFactory .arrayNode ();
96
+ values .forEach (arrayNode ::add );
97
+ node .set ("repositories" , arrayNode );
98
+ }
99
+ }
100
+
101
+ private static ObjectNode mapNode (Map <String , JsonNode > content ) {
112
102
ObjectNode node = nodeFactory .objectNode ();
113
103
content .forEach (node ::set );
114
104
return node ;
115
105
}
116
106
117
- }
107
+ private ObjectNode mapDependencies (Map <String , Dependency > dependencies ) {
108
+ return mapNode (dependencies .entrySet ().stream ()
109
+ .collect (Collectors .toMap (Map .Entry ::getKey , entry -> mapDependency (entry .getValue ()))));
110
+ }
111
+
112
+ private ObjectNode mapRepositories (Map <String , Repository > repositories ) {
113
+ return mapNode (repositories .entrySet ().stream ()
114
+ .collect (Collectors .toMap (Map .Entry ::getKey , entry -> mapRepository (entry .getValue ()))));
115
+ }
116
+
117
+ private ObjectNode mapBoms (Map <String , BillOfMaterials > boms ) {
118
+ return mapNode (boms .entrySet ().stream ()
119
+ .collect (Collectors .toMap (Map .Entry ::getKey , entry -> mapBom (entry .getValue ()))));
120
+ }
121
+ }
0 commit comments