@@ -24,8 +24,10 @@ public abstract class SnapshotResources<T extends Message> {
2424 public static <T extends Message > SnapshotResources <T > create (
2525 Iterable <?> resources ,
2626 String version ) {
27+ ImmutableMap <String , VersionedResource <T >> versionedResourcesMap = createVersionedResourcesMap (resources );
2728 return new AutoValue_SnapshotResources <>(
28- resourcesMap (resources ),
29+ versionedResourcesMap ,
30+ createResourcesMap (versionedResourcesMap ),
2931 (r ) -> version
3032 );
3133 }
@@ -41,18 +43,19 @@ public static <T extends Message> SnapshotResources<T> create(
4143 public static <T extends Message > SnapshotResources <T > create (
4244 Iterable <VersionedResource <T >> resources ,
4345 ResourceVersionResolver versionResolver ) {
46+ ImmutableMap <String , VersionedResource <T >> versionedResourcesMap = createVersionedResourcesMap (resources );
4447 return new AutoValue_SnapshotResources <>(
45- resourcesMap (resources ),
48+ versionedResourcesMap ,
49+ createResourcesMap (versionedResourcesMap ),
4650 versionResolver );
4751 }
4852
49- private static <T extends Message > ImmutableMap <String , VersionedResource <T >> resourcesMap (
53+ private static <T extends Message > ImmutableMap <String , VersionedResource <T >> createVersionedResourcesMap (
5054 Iterable <?> resources ) {
5155 List <?> resourcesList = StreamSupport .stream (resources .spliterator (), false )
5256 .collect (Collectors .toList ());
5357 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 ()
5659 .collect (
5760 Collector .of (
5861 Builder <String , VersionedResource <T >>::new ,
@@ -77,16 +80,9 @@ private static <T extends Message> ImmutableMap<String, VersionedResource<T>> re
7780 }
7881 }
7982
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 (
9086 Collector .of (
9187 Builder <String , T >::new ,
9288 (b , e ) -> {
@@ -96,6 +92,16 @@ public Map<String, T> resources() {
9692 Builder ::build ));
9793 }
9894
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+
99105 /**
100106 * Returns the version associated with this all resources in this collection.
101107 */
0 commit comments