From 430678dbbc5eedf601c2c0ed21e5a412159dfb92 Mon Sep 17 00:00:00 2001
From: Chrissi <christopher@hbsc-werner.de>
Date: Tue, 6 Aug 2019 13:16:42 +0200
Subject: [PATCH] make keep expression list to none final list

---
 .../grammar/CompoundKeepExpression.java       | 25 +++++++++++++------
 .../grammar/KeepReferenceExpression.java      | 15 +----------
 .../grammar/KeepSubTypeExpression.java        | 15 +----------
 .../grammar/KeepSuperTypeExpression.java      |  5 +---
 4 files changed, 21 insertions(+), 39 deletions(-)

diff --git a/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/CompoundKeepExpression.java b/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/CompoundKeepExpression.java
index 1e253da..f822c7e 100644
--- a/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/CompoundKeepExpression.java
+++ b/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/CompoundKeepExpression.java
@@ -1,20 +1,31 @@
 package org.rosi_project.model_sync.model_join.representation.grammar;
 
+import java.util.ArrayList;
 import java.util.List;
 import javax.annotation.Nonnull;
 
 /**
- * A {@code CompoundKeepExpression} is a special kind of {@code KeepExpression} which in turn may
- * contain a number of other {@code KeepExpression}s.
+ * A {@code CompoundKeepExpression} is a special kind of {@code KeepExpression}
+ * which in turn may contain a number of other {@code KeepExpression}s.
  *
  * @author Rico Bergmann
  */
 public abstract class CompoundKeepExpression extends KeepExpression {
 
-  /**
-   * Provides all the keep expressions that this expression is build of.
-   */
-  @Nonnull
-  public abstract List<KeepExpression> getKeeps();
+	@Nonnull
+	protected List<KeepExpression> keeps;
 
+	/**
+	 * Provides all {@code KeepExpression keep expressions} that should be used
+	 * to build the Join for the instances of the subclass, superclass or
+	 * referenced instances.
+	 */
+	@Nonnull
+	public List<KeepExpression> getKeeps() {
+		return new ArrayList<>(keeps);
+	}
+
+	public boolean addKeepExpression(KeepExpression keepExpression) {
+		return keeps.add(keepExpression);
+	}
 }
diff --git a/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/KeepReferenceExpression.java b/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/KeepReferenceExpression.java
index 307be52..66dd11b 100644
--- a/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/KeepReferenceExpression.java
+++ b/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/KeepReferenceExpression.java
@@ -108,13 +108,10 @@ public class KeepReferenceExpression extends CompoundKeepExpression {
 
   @Nonnull
   private final ReferenceDirection referenceDirection;
-
+  
   @Nonnull
   private final ClassResource target;
 
-  @Nonnull
-  private final List<KeepExpression> keeps;
-
   /**
    * Full constructor.
    *
@@ -161,16 +158,6 @@ public class KeepReferenceExpression extends CompoundKeepExpression {
     return target;
   }
 
-  /**
-   * Provides all {@code KeepExpression keep expressions} that should be used to build the Join for
-   * the referenced instances.
-   */
-  @Nonnull
-  @Override
-  public List<KeepExpression> getKeeps() {
-    return new ArrayList<>(keeps);
-  }
-
   @Override
   public void accept(@Nonnull KeepExpressionVisitor visitor) {
     visitor.visit(this);
diff --git a/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/KeepSubTypeExpression.java b/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/KeepSubTypeExpression.java
index f3b82c3..9ccf55f 100644
--- a/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/KeepSubTypeExpression.java
+++ b/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/KeepSubTypeExpression.java
@@ -66,13 +66,10 @@ public class KeepSubTypeExpression extends CompoundKeepExpression {
 
   @Nonnull
   private final ClassResource typeToKeep;
-
+  
   @Nonnull
   private final ClassResource target;
 
-  @Nonnull
-  private final List<KeepExpression> keeps;
-
   /**
    * Full constructor.
    *
@@ -106,16 +103,6 @@ public class KeepSubTypeExpression extends CompoundKeepExpression {
     return target;
   }
 
-  /**
-   * Provides all {@code KeepExpression keep expressions} that should be used to build the Join for
-   * the instances of the subclass instances.
-   */
-  @Nonnull
-  @Override
-  public List<KeepExpression> getKeeps() {
-    return new ArrayList<>(keeps);
-  }
-
   @Override
   public void accept(@Nonnull KeepExpressionVisitor visitor) {
     visitor.visit(this);
diff --git a/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/KeepSuperTypeExpression.java b/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/KeepSuperTypeExpression.java
index e4b1b81..d287d1d 100644
--- a/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/KeepSuperTypeExpression.java
+++ b/src/main/java/org/rosi_project/model_sync/model_join/representation/grammar/KeepSuperTypeExpression.java
@@ -65,13 +65,10 @@ public class KeepSuperTypeExpression extends CompoundKeepExpression {
 
   @Nonnull
   private final ClassResource typeToKeep;
-
+  
   @Nonnull
   private final ClassResource target;
 
-  @Nonnull
-  private final List<KeepExpression> keeps;
-
   /**
    * Full constructor.
    *
-- 
GitLab