org.eclipse.viatra.query.runtime.matchers.util

## Class Sets

- java.lang.Object
- - org.eclipse.viatra.query.runtime.matchers.util.Sets

-     public final class Sets
      extends java.lang.Object

  This class was motivated by the similar Sets class from Guava to provide simple set manipulation functionality. However, as starting with version 2.3 the runtime of VIATRA Query should not depend on Guava, not even internally, the relevant subset of Sets methods will be reimplemented here.

  The current approach is to delegate to Eclipse Collections wherever possible. Such glue methods are useful so that downstream clients can avoid directly depending on Eclipse Collections.

  Without an equivalent from Eclipse Collections, `cartesianProduct(List)` is implemented here from scratch.

  Since:
    2.3

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Sets()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static <A> java.util.Set<java.util.List<A>>` | `cartesianProduct(java.util.List<? extends java.util.Set<? extends A>> setsList)`
    `static <A> java.util.Set<A>` | `difference(java.util.Set<A> left, java.util.Set<A> right)`
    `static <A> java.util.Set<A>` | `intersection(java.util.Set<A> left, java.util.Set<A> right)`
    `static <A> java.util.Set<A>` | `newSet(java.lang.Iterable<A> elements)`
    `static <A> java.util.Set<? extends java.util.Set<A>>` | `powerSet(java.util.Set<A> set)`
    `static <A> java.util.Set<A>` | `union(java.util.Set<A> left, java.util.Set<A> right)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Sets

          public Sets()

  - ### Method Detail

    - #### newSet

          public static <A> java.util.Set<A> newSet(java.lang.Iterable<A> elements)

      Since:
        2.4

    - #### intersection

          public static <A> java.util.Set<A> intersection(java.util.Set<A> left,
                                                          java.util.Set<A> right)

    - #### difference

          public static <A> java.util.Set<A> difference(java.util.Set<A> left,
                                                        java.util.Set<A> right)

    - #### union

          public static <A> java.util.Set<A> union(java.util.Set<A> left,
                                                   java.util.Set<A> right)

    - #### powerSet

          public static <A> java.util.Set<? extends java.util.Set<A>> powerSet(java.util.Set<A> set)

    - #### cartesianProduct

          public static <A> java.util.Set<java.util.List<A>> cartesianProduct(java.util.List<? extends java.util.Set<? extends A>> setsList)