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 1e253dafd1feee21a329b2a2f65b4cb47488627f..f822c7e6a7791f728c5f94f91aaf6a22faa28260 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 307be52e0fd959130a523989774d0b760d9067db..66dd11b53153f816b1090fa6b92f73adca600e76 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 f3b82c38ec96c6dc3345c68ba93920a89a6d9ea6..9ccf55fde4ea80eebbeb477d1e64881b071a4da5 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 e4b1b816ce20b12ab24af04a07f6315c16c8ef45..d287d1d5c2a47576bf6a7e4b567c879eb513565a 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. *