diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterAppend.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterAppend.java
index 848b72e07bd3b28bc20ff332514615e18a490667..0a0a56bdf2d4807b7f54627c9c4ef487b9d349bf 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterAppend.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterAppend.java
@@ -9,6 +9,12 @@ import de.unikoblenz.fgbks.base.utils.boundary.impl.IntegerBoundary;
 import de.unikoblenz.fgbks.base.utils.boundary.impl.LongBoundary;
 import java.util.Optional;
 
+/**
+ * The combine creator implementation of {@link BoundaryBiCreaterType#APPEND} for {@link
+ * AbstractGrowingBoundary}. <br> The result is a new boundary with the combined range of both
+ * boundaries, or an empty optional, if the creation is not possible. Both boundaries are not in
+ * contact. <br> In: {@code b1: [10..30[; b2: [30..50]} <br> Out: {@code ]10..50[} <br>
+ */
 public class BiCreaterAppend extends AbstractBoundaryBiCreater<AbstractGrowingBoundary> {
 
   private static final BiCreaterAppend instance = new BiCreaterAppend();
@@ -17,6 +23,11 @@ public class BiCreaterAppend extends AbstractBoundaryBiCreater<AbstractGrowingBo
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static BiCreaterAppend getInstance() {
     return instance;
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterBetween.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterBetween.java
index f76d28bf2934960b912339a5032fc4dc1595761c..e3a18b33524abd2d8ef8bc837126293ef3994ff3 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterBetween.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterBetween.java
@@ -9,6 +9,12 @@ import de.unikoblenz.fgbks.base.utils.boundary.impl.DoubleBoundary;
 import de.unikoblenz.fgbks.base.utils.boundary.impl.IntegerBoundary;
 import java.util.Optional;
 
+/**
+ * The between creator implementation of {@link BoundaryBiCreaterType#BETWEEN} for {@link
+ * AbstractGrowingBoundary}. <br> The result is a new boundary with boundary between the both
+ * boundaries, or an empty optional, if the creation is not possible. <br> In: {@code b1: [10..20];
+ * b2: [30..50]} <br> Out: {@code ]20..30[} <br>
+ */
 public class BiCreaterBetween extends AbstractBoundaryBiCreater<AbstractGrowingBoundary> {
 
   private static final BiCreaterBetween instance = new BiCreaterBetween();
@@ -17,6 +23,11 @@ public class BiCreaterBetween extends AbstractBoundaryBiCreater<AbstractGrowingB
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static BiCreaterBetween getInstance() {
     return instance;
   }
@@ -34,9 +45,9 @@ public class BiCreaterBetween extends AbstractBoundaryBiCreater<AbstractGrowingB
     }
     // no space between the two bounds
     if (b1.getUpperBound().equals(b2.getLowerBound())
-            && !b1.getUpperBound().equals(b2.getLowerBound())
+        && !b1.getUpperBound().equals(b2.getLowerBound())
         || b2.getUpperBound().equals(b1.getLowerBound())
-            && !b2.getUpperBound().equals(b1.getLowerBound())) {
+        && !b2.getUpperBound().equals(b1.getLowerBound())) {
       return Optional.empty();
     }
     if (b1 instanceof IntegerBoundary) {
@@ -45,11 +56,11 @@ public class BiCreaterBetween extends AbstractBoundaryBiCreater<AbstractGrowingB
       int b2L = (int) b1.getLowerBound();
       int b2U = (int) b1.getUpperBound();
       if (b1U + 1 == b2L
-              && b1.getUpperBoundType() == INCLUSIVE
-              && b2.getLowerBoundType() == INCLUSIVE
+          && b1.getUpperBoundType() == INCLUSIVE
+          && b2.getLowerBoundType() == INCLUSIVE
           || b2U + 1 == b1L
-              && b2.getUpperBoundType() == INCLUSIVE
-              && b1.getLowerBoundType() == INCLUSIVE) {
+          && b2.getUpperBoundType() == INCLUSIVE
+          && b1.getLowerBoundType() == INCLUSIVE) {
         return Optional.empty();
       }
     }
@@ -59,11 +70,11 @@ public class BiCreaterBetween extends AbstractBoundaryBiCreater<AbstractGrowingB
       long b2L = (long) b1.getLowerBound();
       long b2U = (long) b1.getUpperBound();
       if (b1U + 1 == b2L
-              && b1.getUpperBoundType() == INCLUSIVE
-              && b2.getLowerBoundType() == INCLUSIVE
+          && b1.getUpperBoundType() == INCLUSIVE
+          && b2.getLowerBoundType() == INCLUSIVE
           || b2U + 1 == b1L
-              && b2.getUpperBoundType() == INCLUSIVE
-              && b1.getLowerBoundType() == INCLUSIVE) {
+          && b2.getUpperBoundType() == INCLUSIVE
+          && b1.getLowerBoundType() == INCLUSIVE) {
         return Optional.empty();
       }
     }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterCombine.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterCombine.java
index 303e7e8ec104582cc2f81571dc80403ecb2784a2..6fa9683ee39029fd3e48792baf07ae7d9feac46e 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterCombine.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterCombine.java
@@ -8,6 +8,12 @@ import static de.unikoblenz.fgbks.base.utils.boundary.checker.BoundaryCheckType.
 import de.unikoblenz.fgbks.base.utils.boundary.AbstractGrowingBoundary;
 import java.util.Optional;
 
+/**
+ * The combine creator implementation of {@link BoundaryBiCreaterType#COMBINE} for {@link
+ * AbstractGrowingBoundary}. <br> The result is a new boundary with the combined range of both
+ * boundaries, or an empty optional, if the creation is not possible. <br> In: {@code b1: [10..20];
+ * b2: [15..30]} <br> Out: {@code [10..30]} <br>
+ */
 public class BiCreaterCombine extends AbstractBoundaryBiCreater<AbstractGrowingBoundary> {
 
   private static final BiCreaterCombine instance = new BiCreaterCombine();
@@ -16,6 +22,11 @@ public class BiCreaterCombine extends AbstractBoundaryBiCreater<AbstractGrowingB
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static BiCreaterCombine getInstance() {
     return instance;
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterIntersection.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterIntersection.java
index c9774699f80ef0c0fb2f14b12a825ab020af7a85..23f11274b327e0e781d2dad573202095d9bd1e95 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterIntersection.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterIntersection.java
@@ -6,6 +6,12 @@ import static de.unikoblenz.fgbks.base.utils.boundary.checker.BoundaryCheckType.
 import de.unikoblenz.fgbks.base.utils.boundary.AbstractGrowingBoundary;
 import java.util.Optional;
 
+/**
+ * The intersection creator implementation of {@link BoundaryBiCreaterType#INTERSECTION} for {@link
+ * AbstractGrowingBoundary}. <br> The result is a new boundary with intersection of both boundaries,
+ * or an empty optional, if the creation is not possible. <br> In: {@code b1: [10..20]; b2:
+ * [15..30]} <br> Out: {@code [15..20]} <br>
+ */
 public class BiCreaterIntersection extends AbstractBoundaryBiCreater<AbstractGrowingBoundary> {
 
   private static final BiCreaterIntersection instance = new BiCreaterIntersection();
@@ -14,6 +20,11 @@ public class BiCreaterIntersection extends AbstractBoundaryBiCreater<AbstractGro
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static BiCreaterIntersection getInstance() {
     return instance;
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterLowerBounds.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterLowerBounds.java
index 2a385096e0747be737aba0d310e3a50384a023eb..c4831fab730f7c9587cb2616c8dfc1dd69176383 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterLowerBounds.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterLowerBounds.java
@@ -9,6 +9,12 @@ import de.unikoblenz.fgbks.base.utils.boundary.impl.IntegerBoundary;
 import de.unikoblenz.fgbks.base.utils.boundary.impl.LongBoundary;
 import java.util.Optional;
 
+/**
+ * The lower bound creator implementation of {@link BoundaryBiCreaterType#LOWER_BOUNDS} for {@link
+ * AbstractGrowingBoundary}. <br> The result is a new boundary with the lower bounds, or an empty
+ * optional, if the creation is not possible. <br> In: {@code b1: [10..20]; b2: [15..30]} <br> Out:
+ * {@code [10..15[} <br>
+ */
 public class BiCreaterLowerBounds extends AbstractBoundaryBiCreater<AbstractGrowingBoundary> {
 
   private static final BiCreaterLowerBounds instance = new BiCreaterLowerBounds();
@@ -17,6 +23,11 @@ public class BiCreaterLowerBounds extends AbstractBoundaryBiCreater<AbstractGrow
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static BiCreaterLowerBounds getInstance() {
     return instance;
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringAppend.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringAppend.java
index dc77ebb0d91992476773725c481b478e1c0ccea5..a4a9cae687bbb1ef2c8b5676590c428bd75b2acd 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringAppend.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringAppend.java
@@ -7,6 +7,12 @@ import de.unikoblenz.fgbks.base.utils.boundary.Boundary;
 import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
 import java.util.Optional;
 
+/**
+ * The between creator implementation of {@link BoundaryBiCreaterType#BETWEEN} for {@link
+ * StringBoundary}. <br> The result is a new boundary with boundary between the both boundaries, or
+ * an empty optional, if the creation is not possible. The boundaries are not in contact. <br> In:
+ * {@code b1: "a"; b2: "b"} <br> Out: {@code not("a","b")} <br>
+ */
 public class BiCreaterStringAppend extends AbstractBoundaryBiCreater<StringBoundary> {
 
   private static final BiCreaterStringAppend instance = new BiCreaterStringAppend();
@@ -15,6 +21,11 @@ public class BiCreaterStringAppend extends AbstractBoundaryBiCreater<StringBound
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static BiCreaterStringAppend getInstance() {
     return instance;
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringBetween.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringBetween.java
index 295615f5e00d0d2705940e33a8cbdf799dbb719c..576e841937526af9659bf210868a3e86a2bff1c1 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringBetween.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringBetween.java
@@ -6,6 +6,12 @@ import java.util.HashSet;
 import java.util.Optional;
 import java.util.Set;
 
+/**
+ * The between creator implementation of {@link BoundaryBiCreaterType#BETWEEN} for {@link
+ * StringBoundary}. <br> The result is a new boundary with boundary between the both boundaries, or
+ * an empty optional, if the creation is not possible. <br> In: {@code b1: "a"; b2: "b"} <br> Out:
+ * {@code not("a","b")} <br>
+ */
 public class BiCreaterStringBetween extends AbstractBoundaryBiCreater<StringBoundary> {
 
   private static final BiCreaterStringBetween instance = new BiCreaterStringBetween();
@@ -14,6 +20,11 @@ public class BiCreaterStringBetween extends AbstractBoundaryBiCreater<StringBoun
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static BiCreaterStringBetween getInstance() {
     return instance;
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringCombine.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringCombine.java
index 50f6c12a1e985afc397b8f8f9abdc43cc4359dd3..dfa683e434b8562adb8b469cbeac7539c6d5d66e 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringCombine.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringCombine.java
@@ -6,6 +6,12 @@ import java.util.HashSet;
 import java.util.Optional;
 import java.util.Set;
 
+/**
+ * The combine creator implementation of {@link BoundaryBiCreaterType#COMBINE} for {@link
+ * StringBoundary}. <br> The result is a new boundary with the combined range of both boundaries, or
+ * an empty optional, if the creation is not possible. <br> In: {@code b1: "a"; b2: "b"} <br> Out:
+ * {@code "a","b"} <br>
+ */
 public class BiCreaterStringCombine extends AbstractBoundaryBiCreater<StringBoundary> {
 
   private static final BiCreaterStringCombine instance = new BiCreaterStringCombine();
@@ -14,6 +20,11 @@ public class BiCreaterStringCombine extends AbstractBoundaryBiCreater<StringBoun
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static BiCreaterStringCombine getInstance() {
     return instance;
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringIntersection.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringIntersection.java
index 2cbe4f9f21c27cfa5c17f3ec1cac6f30e42e3ce2..d377c390f6feb0817543253a2d574cd11bc4558a 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringIntersection.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringIntersection.java
@@ -10,6 +10,12 @@ import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
 
+/**
+ * The intersection creator implementation of {@link BoundaryBiCreaterType#INTERSECTION} for {@link
+ * StringBoundary}. <br> The result is a new boundary with intersection of both boundaries, or an
+ * empty optional, if the creation is not possible. <br> In: {@code b1: "a" b2: "a","b"} <br> Out:
+ * {@code "a"} <br>
+ */
 public class BiCreaterStringIntersection extends AbstractBoundaryBiCreater<StringBoundary> {
 
   private static final BiCreaterStringIntersection instance = new BiCreaterStringIntersection();
@@ -18,6 +24,11 @@ public class BiCreaterStringIntersection extends AbstractBoundaryBiCreater<Strin
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static BiCreaterStringIntersection getInstance() {
     return instance;
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringLowerBounds.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringLowerBounds.java
index 6cab93a7e80749fc6dc4fe8bf9b5ee56c3cdb2f5..3dd7e3a9923298b5149e47687c6834962f3c3eba 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringLowerBounds.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringLowerBounds.java
@@ -9,6 +9,11 @@ import java.util.HashSet;
 import java.util.Optional;
 import java.util.Set;
 
+/**
+ * The lower bound creator implementation of {@link BoundaryBiCreaterType#LOWER_BOUNDS} for {@link
+ * StringBoundary}. <br> The result is a new boundary with the lower bounds, or an empty optional,
+ * if the creation is not possible. <br> In: {@code b1: "a","b"; b2: "a"}<br> Out: {@code "b"} <br>
+ */
 public class BiCreaterStringLowerBounds extends AbstractBoundaryBiCreater<StringBoundary> {
 
   private static final BiCreaterStringLowerBounds instance = new BiCreaterStringLowerBounds();
@@ -17,6 +22,11 @@ public class BiCreaterStringLowerBounds extends AbstractBoundaryBiCreater<String
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static BiCreaterStringLowerBounds getInstance() {
     return instance;
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringUpperBounds.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringUpperBounds.java
index 1f449d7026741e5904c719a24d9c8b6d071cbf0b..04574156ce1fff94a3204ec3fba58ef5c7693906 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringUpperBounds.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringUpperBounds.java
@@ -3,6 +3,11 @@ package de.unikoblenz.fgbks.base.utils.boundary.bicreater;
 import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
 import java.util.Optional;
 
+/**
+ * The upper bound creator implementation of {@link BoundaryBiCreaterType#UPPER_BOUNDS} for {@link
+ * StringBoundary}. <br> The result is a new boundary is always empty. See {@link
+ * BiCreaterStringLowerBounds} instead.
+ */
 public class BiCreaterStringUpperBounds extends AbstractBoundaryBiCreater<StringBoundary> {
 
   private static final BiCreaterStringUpperBounds instance = new BiCreaterStringUpperBounds();
@@ -11,6 +16,11 @@ public class BiCreaterStringUpperBounds extends AbstractBoundaryBiCreater<String
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static BiCreaterStringUpperBounds getInstance() {
     return instance;
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterUpperBounds.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterUpperBounds.java
index eec40d2a27ef23632f14ee15fd7df309b8cc003b..e0c531ddf0d08e2fea53f79845a2bf7df184eca4 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterUpperBounds.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterUpperBounds.java
@@ -9,6 +9,12 @@ import de.unikoblenz.fgbks.base.utils.boundary.impl.IntegerBoundary;
 import de.unikoblenz.fgbks.base.utils.boundary.impl.LongBoundary;
 import java.util.Optional;
 
+/**
+ * The upper bound creator implementation of {@link BoundaryBiCreaterType#UPPER_BOUNDS} for {@link
+ * AbstractGrowingBoundary}. <br> The result is a new boundary with the upper bounds, or an empty
+ * optional, if the creation is not possible. <br> In: {@code b1: [10..20]; b2: [15..30]} <br> Out:
+ * {@code ]20..30]} <br>
+ */
 public class BiCreaterUpperBounds extends AbstractBoundaryBiCreater<AbstractGrowingBoundary> {
 
   private static final BiCreaterUpperBounds instance = new BiCreaterUpperBounds();
@@ -17,6 +23,11 @@ public class BiCreaterUpperBounds extends AbstractBoundaryBiCreater<AbstractGrow
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static BiCreaterUpperBounds getInstance() {
     return instance;
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BoundaryBiCreater.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BoundaryBiCreater.java
index 0a70608094ba2ce3c596d7f7fb50c69afd6ab537..2f1ad60b79b9edeaf0cd2981cf740e67fddc6b25 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BoundaryBiCreater.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BoundaryBiCreater.java
@@ -3,9 +3,27 @@ package de.unikoblenz.fgbks.base.utils.boundary.bicreater;
 import de.unikoblenz.fgbks.base.utils.boundary.Boundary;
 import java.util.Optional;
 
+/**
+ * The biCreater interface. Used to create a new Boundary of a given one and an other boundary with
+ * a modification, specified by the {@link BoundaryBiCreaterType}.
+ *
+ * @param <T> the boundary type
+ */
 public interface BoundaryBiCreater<T extends Boundary> {
 
+  /**
+   * Get the {@link BoundaryBiCreaterType}.
+   *
+   * @return the {@link BoundaryBiCreaterType}
+   */
   BoundaryBiCreaterType getType();
 
+  /**
+   * Perform the creation of a new boundary with the given two boundaries.
+   *
+   * @param b1 one boundary
+   * @param b2 the other boundary
+   * @return An optional with a new boundary or an empty optional, if the creation fails.
+   */
   Optional<T> create(T b1, T b2);
 }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BoundaryBiCreaterType.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BoundaryBiCreaterType.java
index 60289a0e48596474a7177a6f9f578cb0f6fbe53a..b83049ef6ae5626927b43b4f5ba0b8381667e96c 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BoundaryBiCreaterType.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BoundaryBiCreaterType.java
@@ -1,10 +1,34 @@
 package de.unikoblenz.fgbks.base.utils.boundary.bicreater;
 
 public enum BoundaryBiCreaterType {
+  /**
+   * Type, that indicates, that the creater should create a new boundary, which is the intersection
+   * of the two boundaries.
+   */
   INTERSECTION,
+  /**
+   * Type, that indicates, that the creater should create a new boundary with the lower bounds of
+   * both boundaries.
+   */
   LOWER_BOUNDS,
+  /**
+   * Type, that indicates, that the creater should create a new boundary with the upper bounds of
+   * both boundaries.
+   */
   UPPER_BOUNDS,
+  /**
+   * Type, that indicates, that the creater should create a new boundary, which is between the both
+   * boundaries.
+   */
   BETWEEN,
+  /**
+   * Type, that indicates, that the creater should create a new boundary, which is a combination of
+   * the both boundaries. However, both boundaries are not in contact.
+   */
   APPEND,
-  COMBINE;
+  /**
+   * Type, that indicates, that the creater should create a new boundary, which is a combination of
+   * the both boundaries. Both boundaries can be in contact. (UNION)
+   */
+  COMBINE
 }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/EmptyBiCreater.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/EmptyBiCreater.java
index e3251828d1bcc378014d1b719b5aafd40c5f820b..2eb770dda2535ef402950932b7bb38da8880b87b 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/EmptyBiCreater.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/EmptyBiCreater.java
@@ -3,6 +3,9 @@ package de.unikoblenz.fgbks.base.utils.boundary.bicreater;
 import de.unikoblenz.fgbks.base.utils.boundary.Boundary;
 import java.util.Optional;
 
+/**
+ * The empty bi creater returns always an empty optional.
+ */
 public class EmptyBiCreater extends AbstractBoundaryBiCreater<Boundary> {
 
   private static final EmptyBiCreater instance = new EmptyBiCreater();
@@ -11,6 +14,11 @@ public class EmptyBiCreater extends AbstractBoundaryBiCreater<Boundary> {
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static EmptyBiCreater getInstance() {
     return instance;
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/BoundaryCheck.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/BoundaryCheck.java
index 3ba0854d00f40cc8bfb511a10768be02487538be..c497b4f33f8faf5120373d6bbd5d4d1066f5b873 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/BoundaryCheck.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/BoundaryCheck.java
@@ -2,9 +2,27 @@ package de.unikoblenz.fgbks.base.utils.boundary.checker;
 
 import de.unikoblenz.fgbks.base.utils.boundary.Boundary;
 
+/**
+ * The checker interface. Used to check something between two boundaries, specified by the {@link
+ * BoundaryCheckType}.
+ *
+ * @param <T> the boundary type
+ */
 public interface BoundaryCheck<T extends Boundary> {
 
+  /**
+   * Get the {@link BoundaryCheckType}.
+   *
+   * @return the {@link BoundaryCheckType}
+   */
   BoundaryCheckType getType();
 
+  /**
+   * Perform the check between the two boundaries.
+   *
+   * @param b1 one boundary
+   * @param b2 the other boundary
+   * @return true, if the check return true.
+   */
   boolean check(T b1, T b2);
 }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/BoundaryCheckType.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/BoundaryCheckType.java
index d6d849ab833e113a7e42406708e3dc6ae15d1ffc..c85b15e99a7a466ae6ea18ca6d01107ea24ded2c 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/BoundaryCheckType.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/BoundaryCheckType.java
@@ -1,10 +1,34 @@
 package de.unikoblenz.fgbks.base.utils.boundary.checker;
 
 public enum BoundaryCheckType {
+  /**
+   * Type, that indicates, that the checker should check, if one boundary is equal to the other
+   * boundary.
+   */
   IS_EQUAL,
+  /**
+   * Type, that indicates, that the checker should check, if one boundary subsumes the other
+   * boundary or the other boundary subsumes the first boundary.
+   */
   IS_SUBSUMPTION,
+  /**
+   * Type, that indicates, that the checker should check, if one boundary subsumes the other
+   * boundary.
+   */
   SUBSUMES,
+  /**
+   * Type, that indicates, that the checker should check, if one boundary is in contact to the other
+   * boundary.
+   */
   IS_IN_CONTACT,
+  /**
+   * Type, that indicates, that the checker should check, if one boundary is not in contact to the
+   * other boundary.
+   */
   IS_NOT_IN_CONTACT,
-  IS_OVERLAPPING;
+  /**
+   * Type, that indicates, that the checker should check, if one boundary is overlapping with the
+   * other boundary.
+   */
+  IS_OVERLAPPING
 }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckEqual.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckEqual.java
index fe5c2ac2c70953c5c15143ba931e7bae4524123f..1f2f77912cac6d1084d507cb45e2651ee0829cc3 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckEqual.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckEqual.java
@@ -2,6 +2,17 @@ package de.unikoblenz.fgbks.base.utils.boundary.checker;
 
 import de.unikoblenz.fgbks.base.utils.boundary.AbstractGrowingBoundary;
 
+/**
+ * The equal checker implementation of {@link BoundaryCheckType#IS_EQUAL} for {@link
+ * AbstractGrowingBoundary}. <br> The check returns true, if the first boundary is equal to the
+ * other boundary. <br> E.g: <br>
+ *
+ * <ul>
+ *   <li>b1 = "= 1"; b2 = "= 1" -> true
+ *   <li>b1 = "<= 1"; b2 = "< 2" -> true (Integer or Long) / false (others)
+ *   <li>b1 = "[0..20]"; b2 = "[4..22]" -> false
+ * </ul>
+ */
 public class CheckEqual extends AbstractBoundaryCheck<AbstractGrowingBoundary> {
 
   private static final CheckEqual instance = new CheckEqual();
@@ -10,6 +21,11 @@ public class CheckEqual extends AbstractBoundaryCheck<AbstractGrowingBoundary> {
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CheckEqual getInstance() {
     return instance;
   }
@@ -24,6 +40,7 @@ public class CheckEqual extends AbstractBoundaryCheck<AbstractGrowingBoundary> {
     return checkEqual(b1, b2);
   }
 
+  /** see {@link CheckEqual} */
   public static boolean checkEqual(AbstractGrowingBoundary b1, AbstractGrowingBoundary b2) {
     if (b1 == b2) {
       return true;
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckInContact.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckInContact.java
index c2a3fa790cc8f62951c961c803185bf65c4bbf0b..bcb74f14d8c3d264d7e39b083c7ad085badb781b 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckInContact.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckInContact.java
@@ -4,6 +4,19 @@ import static de.unikoblenz.fgbks.base.utils.boundary.BoundType.INCLUSIVE;
 
 import de.unikoblenz.fgbks.base.utils.boundary.AbstractGrowingBoundary;
 
+/**
+ * The in contact checker implementation of {@link BoundaryCheckType#IS_IN_CONTACT} for {@link
+ * AbstractGrowingBoundary}. <br> The check returns true, if the first boundary is in contact with
+ * the other boundary.
+ * <br>
+ * E.g: <br>
+ *
+ * <ul>
+ *   <li>b1 = "= 1"; b2 = "= 1" -> true
+ *   <li>b1 = "<= 1"; b2 = "< 2" -> true
+ *   <li>b1 = "[0..20]"; b2 = "]20..22]" -> false
+ * </ul>
+ */
 public class CheckInContact extends AbstractBoundaryCheck<AbstractGrowingBoundary> {
 
   private static final CheckInContact instance = new CheckInContact();
@@ -12,6 +25,11 @@ public class CheckInContact extends AbstractBoundaryCheck<AbstractGrowingBoundar
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CheckInContact getInstance() {
     return instance;
   }
@@ -26,6 +44,9 @@ public class CheckInContact extends AbstractBoundaryCheck<AbstractGrowingBoundar
     return checkInContact(b1, b2);
   }
 
+  /**
+   * see {@link CheckInContact}
+   */
   public static boolean checkInContact(AbstractGrowingBoundary b1, AbstractGrowingBoundary b2) {
     // TODO: check raw types
     if (b1.getLowerBound().compareTo(b2.getLowerBound()) <= 0) {
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckIsSubsumption.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckIsSubsumption.java
index 435747b3f5fbb1e11717c57fb21273b4c2973621..086936383ba90fd1fe7a77955f4f9aa0b3cabc70 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckIsSubsumption.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckIsSubsumption.java
@@ -2,6 +2,19 @@ package de.unikoblenz.fgbks.base.utils.boundary.checker;
 
 import de.unikoblenz.fgbks.base.utils.boundary.AbstractGrowingBoundary;
 
+/**
+ * The subsumes checker implementation of {@link BoundaryCheckType#IS_SUBSUMPTION} for {@link
+ * AbstractGrowingBoundary}. <br> The check returns true, if the first boundary completely subsumes
+ * (not equal) the other boundary or the other way around.
+ * <br>
+ * E.g: <br>
+ *
+ * <ul>
+ *   <li>b1 = "[0..20]"; b2 = "[4..19]" -> true
+ *   <li>b1 = "[4..19]"; b2 = "[1..19]" -> true
+ *   <li>b1 = "[0..20]"; b2 = "[4..22]" -> false
+ * </ul>
+ */
 public class CheckIsSubsumption extends AbstractBoundaryCheck<AbstractGrowingBoundary> {
 
   private static final CheckIsSubsumption instance = new CheckIsSubsumption();
@@ -10,6 +23,11 @@ public class CheckIsSubsumption extends AbstractBoundaryCheck<AbstractGrowingBou
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CheckIsSubsumption getInstance() {
     return instance;
   }
@@ -24,6 +42,9 @@ public class CheckIsSubsumption extends AbstractBoundaryCheck<AbstractGrowingBou
     return checkIsSubsumption(b1, b2);
   }
 
+  /**
+   * see {@link CheckIsSubsumption}
+   */
   public static boolean checkIsSubsumption(AbstractGrowingBoundary b1, AbstractGrowingBoundary b2) {
     return CheckSubsumes.checkSubsumes(b1, b2) || CheckSubsumes.checkSubsumes(b2, b1);
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckNotInContact.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckNotInContact.java
index 21033ba96fef360a1848cb8c1aedda73eac5a754..3f8a787eb0a6a3f56c25c964193fbf5fed5ddef4 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckNotInContact.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckNotInContact.java
@@ -2,6 +2,17 @@ package de.unikoblenz.fgbks.base.utils.boundary.checker;
 
 import de.unikoblenz.fgbks.base.utils.boundary.AbstractGrowingBoundary;
 
+/**
+ * The not in contact checker implementation of {@link BoundaryCheckType#IS_NOT_IN_CONTACT} for
+ * {@link AbstractGrowingBoundary}. <br> The check returns true, if the first boundary is not in
+ * contact with the other boundary. <br> E.g: <br>
+ *
+ * <ul>
+ *   <li>b1 = "= 1"; b2 = "= 1" -> false
+ *   <li>b1 = "<= 1"; b2 = "< 2" -> false
+ *   <li>b1 = "[0..20]"; b2 = "]20..22]" -> true
+ * </ul>
+ */
 public class CheckNotInContact extends AbstractBoundaryCheck<AbstractGrowingBoundary> {
 
   private static final CheckNotInContact instance = new CheckNotInContact();
@@ -10,6 +21,11 @@ public class CheckNotInContact extends AbstractBoundaryCheck<AbstractGrowingBoun
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CheckNotInContact getInstance() {
     return instance;
   }
@@ -23,4 +39,11 @@ public class CheckNotInContact extends AbstractBoundaryCheck<AbstractGrowingBoun
   public boolean check(AbstractGrowingBoundary b1, AbstractGrowingBoundary b2) {
     return !CheckInContact.checkInContact(b1, b2);
   }
+
+  /**
+   * see {@link CheckNotInContact}
+   */
+  public static boolean checkNotInContact(AbstractGrowingBoundary b1, AbstractGrowingBoundary b2) {
+    return !CheckInContact.checkInContact(b1, b2);
+  }
 }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckOverlap.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckOverlap.java
index 380531ba3705abc01a3d6a45b73e66ee18d6c096..0b5639eaea96c745056835c7344274eec64550e6 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckOverlap.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckOverlap.java
@@ -2,6 +2,17 @@ package de.unikoblenz.fgbks.base.utils.boundary.checker;
 
 import de.unikoblenz.fgbks.base.utils.boundary.AbstractGrowingBoundary;
 
+/**
+ * The overlap checker implementation of {@link BoundaryCheckType#IS_OVERLAPPING} for {@link
+ * AbstractGrowingBoundary}. <br> The check returns true, if the first boundary is overlapping the
+ * other boundary (not equal and no subsumption). <br> E.g: <br>
+ *
+ * <ul>
+ *   <li>b1 = "<= 1"; b2 = ">= 0" -> true
+ *   <li>b1 = "<= 1"; b2 = "< 2" -> false (for integer/long) / true for double
+ *   <li>b1 = "[0..20]"; b2 = "[4..22]" -> true
+ * </ul>
+ */
 public class CheckOverlap extends AbstractBoundaryCheck<AbstractGrowingBoundary> {
 
   private static final CheckOverlap instance = new CheckOverlap();
@@ -10,6 +21,11 @@ public class CheckOverlap extends AbstractBoundaryCheck<AbstractGrowingBoundary>
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CheckOverlap getInstance() {
     return instance;
   }
@@ -24,6 +40,7 @@ public class CheckOverlap extends AbstractBoundaryCheck<AbstractGrowingBoundary>
     return checkOverlapping(b1, b2);
   }
 
+  /** see {@link CheckOverlap} */
   public static boolean checkOverlapping(AbstractGrowingBoundary b1, AbstractGrowingBoundary b2) {
     return CheckInContact.checkInContact(b1, b2)
         && !CheckEqual.checkEqual(b1, b2)
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringEqual.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringEqual.java
index 6bda6074c68ffdbba387af4b05781ff4a22448b4..24b85844675e0eb6e8f4ea0313fb3639cb688586 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringEqual.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringEqual.java
@@ -2,6 +2,17 @@ package de.unikoblenz.fgbks.base.utils.boundary.checker;
 
 import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
 
+/**
+ * The equal checker implementation of {@link BoundaryCheckType#IS_EQUAL} for {@link
+ * StringBoundary}. <br> The check returns true, if the first boundary is equal to the other
+ * boundary. <br> E.g: <br>
+ *
+ * <ul>
+ *   <li>b1 = "a"; b2 = "a" -> true
+ *   <li>b1 = "not("a","b"); b2 = "not("a","b")" -> true
+ *   <li>b1 = "a","b"; b2 = "a" -> false
+ * </ul>
+ */
 public class CheckStringEqual extends AbstractBoundaryCheck<StringBoundary> {
 
   private static CheckStringEqual instance = new CheckStringEqual();
@@ -10,6 +21,11 @@ public class CheckStringEqual extends AbstractBoundaryCheck<StringBoundary> {
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CheckStringEqual getInstance() {
     return instance;
   }
@@ -24,6 +40,7 @@ public class CheckStringEqual extends AbstractBoundaryCheck<StringBoundary> {
     return checkEqual(b1, b2);
   }
 
+  /** see {@link CheckStringEqual} */
   public static boolean checkEqual(StringBoundary b1, StringBoundary b2) {
     if (b1 == b2 || b1.getText().equals(b2.getText()) || b1.matchesAny() && b2.matchesAny()) {
       return true;
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringInContact.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringInContact.java
index f4f1b1725a35d51f80cb7b53ff958e12588d03f2..3dc1cdd19c4b91b316ee6bd16c3814daa1a7a7f8 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringInContact.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringInContact.java
@@ -2,6 +2,17 @@ package de.unikoblenz.fgbks.base.utils.boundary.checker;
 
 import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
 
+/**
+ * The in contact checker implementation of {@link BoundaryCheckType#IS_IN_CONTACT} for {@link
+ * StringBoundary}. <br> The check returns true, if the first boundary is in contact with the other
+ * boundary. <br> E.g: <br>
+ *
+ * <ul>
+ *   <li>b1 = "a"; b2 = "a" -> true
+ *   <li>b1 = "not("a","b"); b2 = "not("a","b")" -> true
+ *   <li>b1 = "a","b"; b2 = "c" -> false
+ * </ul>
+ */
 public class CheckStringInContact extends AbstractBoundaryCheck<StringBoundary> {
 
   private static CheckStringInContact instance = new CheckStringInContact();
@@ -10,6 +21,11 @@ public class CheckStringInContact extends AbstractBoundaryCheck<StringBoundary>
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CheckStringInContact getInstance() {
     return instance;
   }
@@ -23,7 +39,7 @@ public class CheckStringInContact extends AbstractBoundaryCheck<StringBoundary>
   public boolean check(StringBoundary b1, StringBoundary b2) {
     return checkInContact(b1, b2);
   }
-
+  /** see {@link CheckStringInContact} */
   public static boolean checkInContact(StringBoundary b1, StringBoundary b2) {
     if (b1.matchesAny()
         || b2.matchesAny()
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringNotInContact.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringNotInContact.java
index 2bc266afd92ef184c495398bcbef4be32b68ebf1..6d0abf7749fbc449bbcebbf09fe4f41c2fb21136 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringNotInContact.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringNotInContact.java
@@ -2,6 +2,17 @@ package de.unikoblenz.fgbks.base.utils.boundary.checker;
 
 import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
 
+/**
+ * The not in contact checker implementation of {@link BoundaryCheckType#IS_NOT_IN_CONTACT} for
+ * {@link StringBoundary}. <br> The check returns true, if the first boundary is not in contact with
+ * the other boundary. <br> E.g: <br>
+ *
+ * <ul>
+ *   <li>b1 = "a"; b2 = "a" -> false
+ *   <li>b1 = "not("a","b"); b2 = "not("a","b")" -> false
+ *   <li>b1 = "a","b"; b2 = "c" -> true
+ * </ul>
+ */
 public class CheckStringNotInContact extends AbstractBoundaryCheck<StringBoundary> {
 
   private static CheckStringNotInContact instance = new CheckStringNotInContact();
@@ -10,6 +21,11 @@ public class CheckStringNotInContact extends AbstractBoundaryCheck<StringBoundar
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CheckStringNotInContact getInstance() {
     return instance;
   }
@@ -23,7 +39,7 @@ public class CheckStringNotInContact extends AbstractBoundaryCheck<StringBoundar
   public boolean check(StringBoundary b1, StringBoundary b2) {
     return checkNotInContact(b1, b2);
   }
-
+  /** see {@link CheckStringNotInContact} */
   public static boolean checkNotInContact(StringBoundary b1, StringBoundary b2) {
     return !CheckStringInContact.checkInContact(b1, b2);
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringOverlap.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringOverlap.java
index 954d82beaab50ab6a163656756aa94980d6bf1c9..9e4116f66c1d20b856f97cc87a5c8a249117e363 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringOverlap.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringOverlap.java
@@ -2,6 +2,17 @@ package de.unikoblenz.fgbks.base.utils.boundary.checker;
 
 import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
 
+/**
+ * The overlap checker implementation of {@link BoundaryCheckType#IS_OVERLAPPING} for {@link
+ * StringBoundary}. <br> The check returns true, if the first boundary is overlapping with the other
+ * boundary (not equal and no subsumption). <br> E.g: <br>
+ *
+ * <ul>
+ *   <li>b1 = "a"; b2 = "a" -> false
+ *   <li>b1 = "not("a","b"); b2 = "not("a","b")" -> false
+ *   <li>b1 = "a","b"; b2 = "b" -> true
+ * </ul>
+ */
 public class CheckStringOverlap extends AbstractBoundaryCheck<StringBoundary> {
 
   private static CheckStringOverlap instance = new CheckStringOverlap();
@@ -10,6 +21,11 @@ public class CheckStringOverlap extends AbstractBoundaryCheck<StringBoundary> {
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CheckStringOverlap getInstance() {
     return instance;
   }
@@ -24,6 +40,7 @@ public class CheckStringOverlap extends AbstractBoundaryCheck<StringBoundary> {
     return checkSubsumption(b1, b2);
   }
 
+  /** see {@link CheckStringOverlap} */
   public static boolean checkSubsumption(StringBoundary b1, StringBoundary b2) {
     return CheckStringInContact.checkInContact(b1, b2)
         && !CheckStringEqual.checkEqual(b1, b2)
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringSubsumes.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringSubsumes.java
index 14f773f2e7f6b4f34cf2bdf441eb7ca166d1831a..fe3720f0556d4b94a4066b5dbfa84cb3851cef3d 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringSubsumes.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringSubsumes.java
@@ -2,6 +2,18 @@ package de.unikoblenz.fgbks.base.utils.boundary.checker;
 
 import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
 
+/**
+ * The subsumes checker implementation of {@link BoundaryCheckType#SUBSUMES} for {@link
+ * StringBoundary}. <br> The check returns true, if the first boundary completely subsumes (not
+ * equal) the other boundary.
+ * <br>
+ * E.g: <br>
+ *
+ * <ul>
+ *   <li>b1 = "a","b"; b2 = "a" -> true
+ *   <li>b1 = "a"; b2 = "b" -> false
+ * </ul>
+ */
 public class CheckStringSubsumes extends AbstractBoundaryCheck<StringBoundary> {
 
   private static CheckStringSubsumes instance = new CheckStringSubsumes();
@@ -10,6 +22,11 @@ public class CheckStringSubsumes extends AbstractBoundaryCheck<StringBoundary> {
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CheckStringSubsumes getInstance() {
     return instance;
   }
@@ -24,6 +41,9 @@ public class CheckStringSubsumes extends AbstractBoundaryCheck<StringBoundary> {
     return checkSubsumes(b1, b2);
   }
 
+  /**
+   * see {@link CheckStringSubsumes}
+   */
   public static boolean checkSubsumes(StringBoundary b1, StringBoundary b2) {
     if (b1.matchesAny() && !b2.matchesAny()) {
       return true;
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringSubsumption.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringSubsumption.java
index 6ab3e0727401d7b08bb5ab853ce6fe46717a66f2..acd1b9329c5df2c73f5af7492e3c745dbf3a6c4f 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringSubsumption.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckStringSubsumption.java
@@ -10,6 +10,11 @@ public class CheckStringSubsumption extends AbstractBoundaryCheck<StringBoundary
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CheckStringSubsumption getInstance() {
     return instance;
   }
@@ -24,6 +29,9 @@ public class CheckStringSubsumption extends AbstractBoundaryCheck<StringBoundary
     return checkSubsumption(b1, b2);
   }
 
+  /**
+   * see {@link CheckStringSubsumption}
+   */
   public static boolean checkSubsumption(StringBoundary b1, StringBoundary b2) {
     return CheckStringSubsumes.checkSubsumes(b1, b2) || CheckStringSubsumes.checkSubsumes(b2, b1);
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckSubsumes.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckSubsumes.java
index 4ee2b429bc6b19c3b0684060735f42fb421069e7..5e74a3da0b0dcd90dc402aca92608292b5a2e442 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckSubsumes.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/checker/CheckSubsumes.java
@@ -5,6 +5,19 @@ import static de.unikoblenz.fgbks.base.utils.boundary.BoundType.INCLUSIVE;
 
 import de.unikoblenz.fgbks.base.utils.boundary.AbstractGrowingBoundary;
 
+/**
+ * The subsumes checker implementation of {@link BoundaryCheckType#SUBSUMES} for {@link
+ * AbstractGrowingBoundary}. <br> The check returns true, if the first boundary completely subsumes
+ * (not equal) the other boundary.
+ * <br>
+ * E.g: <br>
+ *
+ * <ul>
+ *   <li>b1 = "[0..20]"; b2 = "[4..19]" -> true
+ *   <li>b1 = "[4..19]"; b2 = "[1..19]" -> false
+ *   <li>b1 = "[0..20]"; b2 = "[4..22]" -> false
+ * </ul>
+ */
 public class CheckSubsumes extends AbstractBoundaryCheck<AbstractGrowingBoundary> {
 
   private static final CheckSubsumes instance = new CheckSubsumes();
@@ -13,6 +26,11 @@ public class CheckSubsumes extends AbstractBoundaryCheck<AbstractGrowingBoundary
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CheckSubsumes getInstance() {
     return instance;
   }
@@ -27,6 +45,9 @@ public class CheckSubsumes extends AbstractBoundaryCheck<AbstractGrowingBoundary
     return checkSubsumes(b1, b2);
   }
 
+  /**
+   * see {@link CheckSubsumes}
+   */
   public static boolean checkSubsumes(AbstractGrowingBoundary b1, AbstractGrowingBoundary b2) {
     // TODO: check raw types
     int compLo = b1.getLowerBound().compareTo(b2.getLowerBound());
@@ -37,20 +58,18 @@ public class CheckSubsumes extends AbstractBoundaryCheck<AbstractGrowingBoundary
     if (compLo > 0
         || compUp < 0
         || (compLo == 0
-            && b1.getLowerBoundType() == EXCLUSIVE
-            && b2.getLowerBoundType() == INCLUSIVE)
+        && b1.getLowerBoundType() == EXCLUSIVE
+        && b2.getLowerBoundType() == INCLUSIVE)
         || (compUp == 0
-            && b1.getUpperBoundType() == EXCLUSIVE
-            && b2.getUpperBoundType() == INCLUSIVE)) {
+        && b1.getUpperBoundType() == EXCLUSIVE
+        && b2.getUpperBoundType() == INCLUSIVE)) {
       return false;
     }
     if (compLo == 0 && b1.getLowerBoundType() != b2.getLowerBoundType()
         || compUp == 0 && b1.getUpperBoundType() != b2.getUpperBoundType()) {
       return true;
-    } else if ((compLo + compUp) == 0) {
-      return false;
     } else {
-      return true;
+      return (compLo + compUp) != 0;
     }
   }
 }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/BoundaryCreater.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/BoundaryCreater.java
index 112582c2c8e7fec9fef8da5b7e5e643424818bea..e2d14c0d53cb47000462f3e21a149d3a114d03e5 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/BoundaryCreater.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/BoundaryCreater.java
@@ -3,9 +3,26 @@ package de.unikoblenz.fgbks.base.utils.boundary.creater;
 import de.unikoblenz.fgbks.base.utils.boundary.Boundary;
 import java.util.Optional;
 
+/**
+ * The creater interface. Used to create a new Boundary of a given one with a modification,
+ * specified by the {@link BoundaryCreaterType}.
+ *
+ * @param <T> the boundary type
+ */
 public interface BoundaryCreater<T extends Boundary> {
 
+  /**
+   * Get the {@link BoundaryCreaterType}.
+   *
+   * @return the {@link BoundaryCreaterType}
+   */
   BoundaryCreaterType getType();
 
+  /**
+   * Perform the creation of a new boundary with the given boundary.
+   *
+   * @param b the boundary
+   * @return An optional with a new boundary or an empty optional, if the creation fails.
+   */
   Optional<T> create(T b);
 }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/BoundaryCreaterType.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/BoundaryCreaterType.java
index f240c05bb00a0e8bcefc18c15664f4f48d54a0cf..90566c8349ba38e8e3440a291d1a326a3e62bf25 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/BoundaryCreaterType.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/BoundaryCreaterType.java
@@ -1,6 +1,14 @@
 package de.unikoblenz.fgbks.base.utils.boundary.creater;
 
 public enum BoundaryCreaterType {
+  /**
+   * Type, that indicates, that the creator should build a new boundary, which is lower than the
+   * current boundary.
+   */
   LOWER,
-  UPPER;
+  /**
+   * Type, that indicates, that the creator should build a new boundary, which is higher than the
+   * current boundary.
+   */
+  UPPER
 }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterLower.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterLower.java
index ce669e9f43cdf4c0c9c3b39c6e7120e942173768..4562f00d4520cbdc45f5c101bccbef452aecf53b 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterLower.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterLower.java
@@ -4,6 +4,11 @@ import de.unikoblenz.fgbks.base.utils.boundary.AbstractGrowingBoundary;
 import de.unikoblenz.fgbks.base.utils.boundary.BoundType;
 import java.util.Optional;
 
+/**
+ * The upper creator implementation of {@link BoundaryCreaterType#LOWER} for {@link
+ * AbstractGrowingBoundary}. <br> The result is the complete range of values, which are lower than
+ * the current boundary.<br> In: {@code >5} <br> Out: {@code <=5} <br>
+ */
 public class CreaterLower extends AbstractBoundaryCreater<AbstractGrowingBoundary> {
 
   private static final CreaterLower instance = new CreaterLower();
@@ -12,6 +17,11 @@ public class CreaterLower extends AbstractBoundaryCreater<AbstractGrowingBoundar
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CreaterLower getInstance() {
     return instance;
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterStringLower.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterStringLower.java
index 6543901acbe17bc6f2ecdf2670de93b91cc0d12b..9c372d6dc85b410c19f7296a4c33520ac685d535 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterStringLower.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterStringLower.java
@@ -3,6 +3,12 @@ package de.unikoblenz.fgbks.base.utils.boundary.creater;
 import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
 import java.util.Optional;
 
+/**
+ * The upper creator implementation of {@link BoundaryCreaterType#LOWER} for {@link
+ * StringBoundary}.
+ * <br>
+ * The result is the set of all strings which are NOT the current StringBoundary.
+ */
 public class CreaterStringLower extends AbstractBoundaryCreater<StringBoundary> {
 
   private static final CreaterStringLower instance = new CreaterStringLower();
@@ -11,6 +17,11 @@ public class CreaterStringLower extends AbstractBoundaryCreater<StringBoundary>
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CreaterStringLower getInstance() {
     return instance;
   }
@@ -22,10 +33,11 @@ public class CreaterStringLower extends AbstractBoundaryCreater<StringBoundary>
 
   @Override
   public Optional<StringBoundary> create(StringBoundary b) {
-    return Optional.of(StringBoundary.getBuilder()
-        .addValues(b.getValues())
-        .matchesNoneOfValues(!b.matchesNoneOfValues())
-        .matchesAny(b.getAmountOfElements() == 0)
-        .build());
+    return Optional.of(
+        StringBoundary.getBuilder()
+            .addValues(b.getValues())
+            .matchesNoneOfValues(!b.matchesNoneOfValues())
+            .matchesAny(b.getAmountOfElements() == 0)
+            .build());
   }
 }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterStringUpper.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterStringUpper.java
index 00e08a004bc68dcb6183ffcedfb2f7749e4f90f7..90876e2147a1d691a38da461cc2485216f810baf 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterStringUpper.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterStringUpper.java
@@ -3,6 +3,13 @@ package de.unikoblenz.fgbks.base.utils.boundary.creater;
 import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
 import java.util.Optional;
 
+/**
+ * The upper creator implementation of {@link BoundaryCreaterType#UPPER} for {@link
+ * StringBoundary}.
+ * <br>
+ * For the String creater this result is always empty. Use {@link BoundaryCreaterType#LOWER} and
+ * {@link CreaterStringLower}.
+ */
 public class CreaterStringUpper extends AbstractBoundaryCreater<StringBoundary> {
 
   private static final CreaterStringUpper instance = new CreaterStringUpper();
@@ -11,6 +18,11 @@ public class CreaterStringUpper extends AbstractBoundaryCreater<StringBoundary>
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CreaterStringUpper getInstance() {
     return instance;
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterUpper.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterUpper.java
index 8fe0b3cacda630eb6b593acd03a3e8b08ad106ca..180835e41a77c507acc085e5c1c99d8b9d87cd23 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterUpper.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/CreaterUpper.java
@@ -4,6 +4,11 @@ import de.unikoblenz.fgbks.base.utils.boundary.AbstractGrowingBoundary;
 import de.unikoblenz.fgbks.base.utils.boundary.BoundType;
 import java.util.Optional;
 
+/**
+ * The upper creator implementation of {@link BoundaryCreaterType#UPPER} for {@link
+ * AbstractGrowingBoundary}. <br> The result is the complete range of values, which are higher than
+ * the current boundary.<br> In: {@code <=5} <br> Out: {@code >5} <br>
+ */
 public class CreaterUpper extends AbstractBoundaryCreater<AbstractGrowingBoundary> {
 
   private static final CreaterUpper instance = new CreaterUpper();
@@ -12,6 +17,11 @@ public class CreaterUpper extends AbstractBoundaryCreater<AbstractGrowingBoundar
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static CreaterUpper getInstance() {
     return instance;
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/EmptyCreater.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/EmptyCreater.java
index eeec9f3d27e5095fe9d650c84555ffa154baa12e..e742689b548631009103bf5ebd1573cdac1b00ce 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/EmptyCreater.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/creater/EmptyCreater.java
@@ -11,6 +11,11 @@ public class EmptyCreater extends AbstractBoundaryCreater<Boundary> {
     super();
   }
 
+  /**
+   * Get the current instance of this class.
+   *
+   * @return the singleton instance
+   */
   public static EmptyCreater getInstance() {
     return instance;
   }