View Javadoc

1   package com.atlassian.vcache.internal.core.service;
2   
3   import com.atlassian.vcache.VCacheException;
4   
5   import java.util.Map;
6   import java.util.Set;
7   
8   /**
9    * Provides common functionality for factories.
10   *
11   * @since 1.9.0
12   */
13  public class FactoryUtils {
14      public static <K, V> void verifyFactoryResult(Map<K, V> factoryResult, Set<K> expectedKeys) {
15          // Easy, look for a mismatch
16          if (expectedKeys.size() != factoryResult.size()) {
17              throw new VCacheException("Factory returned " + factoryResult.size()
18                      + " entries when " + expectedKeys.size() + " were expected. Expected keys "
19                      + expectedKeys + " but got " + factoryResult.keySet() + ".");
20          }
21  
22          // Now ensure that the keys align
23          final long numberOfUnknownKeys = factoryResult.keySet().stream()
24                  .filter(k -> !expectedKeys.contains(k))
25                  .count();
26          if (numberOfUnknownKeys > 0) {
27              throw new VCacheException("Factory returned the keys " + factoryResult.keySet()
28                      + " when expected " + expectedKeys + ".");
29          }
30      }
31  }