Class BambooMaps

java.lang.Object
com.atlassian.bamboo.util.BambooMaps

public class BambooMaps extends Object
  • Method Details

    • newLinkedHashMapWithLimitedSize

      public static <K, V> Map<K,V> newLinkedHashMapWithLimitedSize(int maxSize)
    • putAll

      public static <K, V> void putAll(Map<K,? super V> map, Iterable<Pair<K,V>> iterable)
    • mutableUniqueIndex

      public static <K, V> Map<K,V> mutableUniqueIndex(Iterable<? extends V> values, Function<? super V,? extends K> indexGenerator)
    • mutableLinkedUniqueIndex

      public static <K, V> LinkedHashMap<K,V> mutableLinkedUniqueIndex(Iterable<? extends V> values, Function<? super V,? extends K> indexGenerator)
    • populateMap

      public static <K, V> V populateMap(@NotNull @NotNull Map<K,V> map, @NotNull V input, @NotNull @NotNull Function<? super V,? extends K> indexGenerator)
      Add entry to the map using Function to generate a key
      Parameters:
      map - map that will get an extra element
      input - element to be added to map
      indexGenerator - function that will generate key for a given element
      Returns:
      same behavior as Map.put(Object, Object)
    • nullMasquingLoader

      @NotNull public static <K, V> @NotNull com.google.common.cache.CacheLoader<? super K,io.atlassian.fugue.Option<V>> nullMasquingLoader(com.google.common.cache.CacheLoader<? super K,? extends V> nullReturningLoader)
    • generateMap

      public static <K, V> Map<K,V> generateMap(@NotNull @NotNull Set<K> keys, @NotNull @NotNull Function<K,V> generator)
      Convenience method for generating map out of set of keys, and value generator. Should be used for small maps. For more sophisticated uses consider using Guava's CacheBuilder.
    • prune

      public static <K, V> void prune(@NotNull @NotNull Map<K,V> map, @NotNull @NotNull Predicate<Map.Entry<K,V>> predicate)
      Removes entries that match the supplied predicate