Class ContainerUtil

java.lang.Object
com.kamikazejam.kamicommon.util.collections.ContainerUtil

public class ContainerUtil extends Object
The ContainerUtil provides an imaginary super class to Collection and Map. In Java they do not have a common interface yet many methods are similar and exists in both. This some times results in twice the amount of source code, which we aim to remedy with this utility class.
We take an approach where we largely see a Map as a Collection of entries. The "Container" class is simply an Object. The return values are auto cast generics.
We have also added some information gatherers related to sorting and order.
  • Constructor Details

    • ContainerUtil

      public ContainerUtil()
  • Method Details

    • isContainer

      @Contract(value="null -> false", pure=true) public static boolean isContainer(Object container)
    • isCollection

      @Contract(value="null -> false", pure=true) public static boolean isCollection(Object container)
    • isMap

      @Contract(value="null -> false", pure=true) public static boolean isMap(Object container)
    • isList

      @Contract(value="null -> false", pure=true) public static boolean isList(Object container)
    • isSet

      @Contract(value="null -> false", pure=true) public static boolean isSet(Object container)
    • isIndexed

      @Contract(value="null -> false", pure=true) public static boolean isIndexed(Object container)
    • isOrdered

      @Contract(value="null -> false", pure=true) public static boolean isOrdered(Object container)
    • isSorted

      @Contract(value="null -> false", pure=true) public static boolean isSorted(Object container)
    • asCollection

      @Contract(pure=true) @Nullable public static <C extends Collection<?>> C asCollection(@Nullable @Nullable Object container)
    • asMap

      @Contract(pure=true) @Nullable public static <M extends Map<?, ?>> M asMap(@Nullable @Nullable Object container)
    • asSet

      @Contract(pure=true) @Nullable public static <S extends Set<?>> S asSet(@Nullable @Nullable Object container)
    • asList

      @Contract(pure=true) @Nullable public static <L extends List<?>> L asList(@Nullable @Nullable Object container)
    • isEmpty

      @Contract("null -> fail") public static boolean isEmpty(Object container)
    • size

      @Contract("null -> fail") public static @org.jetbrains.annotations.Range(from=0L, to=2147483647L) int size(Object container)
    • getElements

      @Contract("null -> fail") @NotNull public static <E> @NotNull Collection<E> getElements(Object container)
    • clear

      @Contract(value="null -> fail", mutates="param1") public static void clear(Object container)
    • setElements

      @Contract(mutates="param1") public static void setElements(@NotNull @NotNull Object container, @NotNull @NotNull Iterable<?> elements)
    • addElement

      @Contract(value="null, _ -> fail", mutates="param1") public static boolean addElement(Object container, Object element)
    • addElements

      @Contract(value="null, _ -> fail; !null, null -> fail", mutates="param1") public static void addElements(Object container, Iterable<?> elements)
    • getAdditions

      @NotNull public static <E> @NotNull Collection<E> getAdditions(@NotNull @NotNull Object before, @NotNull @NotNull Object after)
    • getDeletions

      @NotNull public static <E> @NotNull Collection<E> getDeletions(@NotNull @NotNull Object before, @NotNull @NotNull Object after)
    • getCopy

      @Nullable public static <V> V getCopy(@Nullable V container)