@@ -24,8 +24,10 @@ public abstract class SnapshotResources<T extends Message> {
24
24
public static <T extends Message > SnapshotResources <T > create (
25
25
Iterable <?> resources ,
26
26
String version ) {
27
+ ImmutableMap <String , VersionedResource <T >> versionedResourcesMap = createVersionedResourcesMap (resources );
27
28
return new AutoValue_SnapshotResources <>(
28
- resourcesMap (resources ),
29
+ versionedResourcesMap ,
30
+ createResourcesMap (versionedResourcesMap ),
29
31
(r ) -> version
30
32
);
31
33
}
@@ -41,18 +43,19 @@ public static <T extends Message> SnapshotResources<T> create(
41
43
public static <T extends Message > SnapshotResources <T > create (
42
44
Iterable <VersionedResource <T >> resources ,
43
45
ResourceVersionResolver versionResolver ) {
46
+ ImmutableMap <String , VersionedResource <T >> versionedResourcesMap = createVersionedResourcesMap (resources );
44
47
return new AutoValue_SnapshotResources <>(
45
- resourcesMap (resources ),
48
+ versionedResourcesMap ,
49
+ createResourcesMap (versionedResourcesMap ),
46
50
versionResolver );
47
51
}
48
52
49
- private static <T extends Message > ImmutableMap <String , VersionedResource <T >> resourcesMap (
53
+ private static <T extends Message > ImmutableMap <String , VersionedResource <T >> createVersionedResourcesMap (
50
54
Iterable <?> resources ) {
51
55
List <?> resourcesList = StreamSupport .stream (resources .spliterator (), false )
52
56
.collect (Collectors .toList ());
53
57
if (resourcesList .stream ().allMatch (Predicates .instanceOf (VersionedResource .class )::apply )) {
54
- ImmutableMap <String , VersionedResource <T >> result = StreamSupport
55
- .stream (resourcesList .spliterator (), false )
58
+ ImmutableMap <String , VersionedResource <T >> result = resourcesList .stream ()
56
59
.collect (
57
60
Collector .of (
58
61
Builder <String , VersionedResource <T >>::new ,
@@ -77,16 +80,9 @@ private static <T extends Message> ImmutableMap<String, VersionedResource<T>> re
77
80
}
78
81
}
79
82
80
- /**
81
- * Returns a map of the resources in this collection, where the key is the name of the resource.
82
- */
83
- public abstract Map <String , VersionedResource <T >> versionedResources ();
84
-
85
- /**
86
- * Returns a map of the resources in this collection, where the key is the name of the resource.
87
- */
88
- public Map <String , T > resources () {
89
- return versionedResources ().values ().stream ().collect (
83
+ private static <T extends Message > ImmutableMap <String , T > createResourcesMap (
84
+ ImmutableMap <String , VersionedResource <T >> versionedResources ) {
85
+ return versionedResources .values ().stream ().collect (
90
86
Collector .of (
91
87
Builder <String , T >::new ,
92
88
(b , e ) -> {
@@ -96,6 +92,16 @@ public Map<String, T> resources() {
96
92
Builder ::build ));
97
93
}
98
94
95
+ /**
96
+ * Returns a map of the resources in this collection, where the key is the name of the resource.
97
+ */
98
+ public abstract Map <String , VersionedResource <T >> versionedResources ();
99
+
100
+ /**
101
+ * Returns a map of the resources in this collection, where the key is the name of the resource.
102
+ */
103
+ public abstract Map <String , T > resources ();
104
+
99
105
/**
100
106
* Returns the version associated with this all resources in this collection.
101
107
*/
0 commit comments