From 9b94d9eb1445bfebb27ecab8840a93bd3c1553ca Mon Sep 17 00:00:00 2001
From: Jonas Blatt <jonasblatt@uni-koblenz.de>
Date: Sat, 5 Oct 2019 17:30:40 +0200
Subject: [PATCH] Add documentation for boundary creater, checker

---
 .../boundary/bicreater/BiCreaterAppend.java   | 11 +++++++
 .../boundary/bicreater/BiCreaterBetween.java  | 31 +++++++++++------
 .../boundary/bicreater/BiCreaterCombine.java  | 11 +++++++
 .../bicreater/BiCreaterIntersection.java      | 11 +++++++
 .../bicreater/BiCreaterLowerBounds.java       | 11 +++++++
 .../bicreater/BiCreaterStringAppend.java      | 11 +++++++
 .../bicreater/BiCreaterStringBetween.java     | 11 +++++++
 .../bicreater/BiCreaterStringCombine.java     | 11 +++++++
 .../BiCreaterStringIntersection.java          | 11 +++++++
 .../bicreater/BiCreaterStringLowerBounds.java | 10 ++++++
 .../bicreater/BiCreaterStringUpperBounds.java | 10 ++++++
 .../bicreater/BiCreaterUpperBounds.java       | 11 +++++++
 .../boundary/bicreater/BoundaryBiCreater.java | 18 ++++++++++
 .../bicreater/BoundaryBiCreaterType.java      | 26 ++++++++++++++-
 .../boundary/bicreater/EmptyBiCreater.java    |  8 +++++
 .../utils/boundary/checker/BoundaryCheck.java | 18 ++++++++++
 .../boundary/checker/BoundaryCheckType.java   | 26 ++++++++++++++-
 .../utils/boundary/checker/CheckEqual.java    | 17 ++++++++++
 .../boundary/checker/CheckInContact.java      | 21 ++++++++++++
 .../boundary/checker/CheckIsSubsumption.java  | 21 ++++++++++++
 .../boundary/checker/CheckNotInContact.java   | 23 +++++++++++++
 .../utils/boundary/checker/CheckOverlap.java  | 17 ++++++++++
 .../boundary/checker/CheckStringEqual.java    | 17 ++++++++++
 .../checker/CheckStringInContact.java         | 18 +++++++++-
 .../checker/CheckStringNotInContact.java      | 18 +++++++++-
 .../boundary/checker/CheckStringOverlap.java  | 17 ++++++++++
 .../boundary/checker/CheckStringSubsumes.java | 20 +++++++++++
 .../checker/CheckStringSubsumption.java       |  8 +++++
 .../utils/boundary/checker/CheckSubsumes.java | 33 +++++++++++++++----
 .../boundary/creater/BoundaryCreater.java     | 17 ++++++++++
 .../boundary/creater/BoundaryCreaterType.java | 10 +++++-
 .../utils/boundary/creater/CreaterLower.java  | 10 ++++++
 .../boundary/creater/CreaterStringLower.java  | 22 ++++++++++---
 .../boundary/creater/CreaterStringUpper.java  | 12 +++++++
 .../utils/boundary/creater/CreaterUpper.java  | 10 ++++++
 .../utils/boundary/creater/EmptyCreater.java  |  5 +++
 36 files changed, 535 insertions(+), 27 deletions(-)

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 848b72e0..0a0a56bd 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 f76d28bf..e3a18b33 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 303e7e8e..6fa9683e 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 c9774699..23f11274 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 2a385096..c4831fab 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 dc77ebb0..a4a9cae6 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 295615f5..576e8419 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 50f6c12a..dfa683e4 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 2cbe4f9f..d377c390 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 6cab93a7..3dd7e3a9 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 1f449d70..04574156 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 eec40d2a..e0c531dd 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 0a706080..2f1ad60b 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 60289a0e..b83049ef 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 e3251828..2eb770dd 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 3ba0854d..c497b4f3 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 d6d849ab..c85b15e9 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 fe5c2ac2..1f2f7791 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 c2a3fa79..bcb74f14 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 435747b3..08693638 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 21033ba9..3f8a787e 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 380531ba..0b5639ea 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 6bda6074..24b85844 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 f4f1b172..3dc1cdd1 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 2bc266af..6d0abf77 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 954d82be..9e4116f6 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 14f773f2..fe3720f0 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 6ab3e072..acd1b932 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 4ee2b429..5e74a3da 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 112582c2..e2d14c0d 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 f240c05b..90566c83 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 ce669e9f..4562f00d 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 6543901a..9c372d6d 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 00e08a00..90876e21 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 8fe0b3ca..180835e4 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 eeec9f3d..e742689b 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;
   }
-- 
GitLab