From 2fd21e8d8d47fe948d191f3e5366b510b0f4d1dd Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Thu, 2 Feb 2023 18:59:17 +0100 Subject: refactor: do not allow Symbol in CallAtom --- .../store/src/main/java/tools/refinery/store/query/DNF.java | 3 +-- .../main/java/tools/refinery/store/query/RelationLike.java | 11 +++++++++++ .../main/java/tools/refinery/store/query/atom/CallAtom.java | 4 ++-- .../java/tools/refinery/store/query/view/AnyRelationView.java | 4 ++-- .../java/tools/refinery/store/representation/AnySymbol.java | 6 +++++- .../java/tools/refinery/store/representation/SymbolLike.java | 11 ----------- 6 files changed, 21 insertions(+), 18 deletions(-) create mode 100644 subprojects/store/src/main/java/tools/refinery/store/query/RelationLike.java delete mode 100644 subprojects/store/src/main/java/tools/refinery/store/representation/SymbolLike.java (limited to 'subprojects/store/src') diff --git a/subprojects/store/src/main/java/tools/refinery/store/query/DNF.java b/subprojects/store/src/main/java/tools/refinery/store/query/DNF.java index 3ce4eed9..95c5d787 100644 --- a/subprojects/store/src/main/java/tools/refinery/store/query/DNF.java +++ b/subprojects/store/src/main/java/tools/refinery/store/query/DNF.java @@ -1,11 +1,10 @@ package tools.refinery.store.query; -import tools.refinery.store.representation.SymbolLike; import tools.refinery.store.query.atom.DNFAtom; import java.util.*; -public final class DNF implements SymbolLike { +public final class DNF implements RelationLike { private final String name; private final String uniqueName; diff --git a/subprojects/store/src/main/java/tools/refinery/store/query/RelationLike.java b/subprojects/store/src/main/java/tools/refinery/store/query/RelationLike.java new file mode 100644 index 00000000..8c784d8b --- /dev/null +++ b/subprojects/store/src/main/java/tools/refinery/store/query/RelationLike.java @@ -0,0 +1,11 @@ +package tools.refinery.store.query; + +public interface RelationLike { + String name(); + + int arity(); + + default boolean invalidIndex(int i) { + return i < 0 || i >= arity(); + } +} diff --git a/subprojects/store/src/main/java/tools/refinery/store/query/atom/CallAtom.java b/subprojects/store/src/main/java/tools/refinery/store/query/atom/CallAtom.java index 6de5cd08..47121870 100644 --- a/subprojects/store/src/main/java/tools/refinery/store/query/atom/CallAtom.java +++ b/subprojects/store/src/main/java/tools/refinery/store/query/atom/CallAtom.java @@ -1,13 +1,13 @@ package tools.refinery.store.query.atom; import tools.refinery.store.query.Variable; -import tools.refinery.store.representation.SymbolLike; +import tools.refinery.store.query.RelationLike; import java.util.List; import java.util.Objects; import java.util.Set; -public abstract class CallAtom implements DNFAtom { +public abstract class CallAtom implements DNFAtom { private final CallPolarity polarity; private final T target; private final List substitution; diff --git a/subprojects/store/src/main/java/tools/refinery/store/query/view/AnyRelationView.java b/subprojects/store/src/main/java/tools/refinery/store/query/view/AnyRelationView.java index eb64b589..328cde3a 100644 --- a/subprojects/store/src/main/java/tools/refinery/store/query/view/AnyRelationView.java +++ b/subprojects/store/src/main/java/tools/refinery/store/query/view/AnyRelationView.java @@ -3,11 +3,11 @@ package tools.refinery.store.query.view; import tools.refinery.store.model.Model; import tools.refinery.store.query.FunctionalDependency; import tools.refinery.store.representation.AnySymbol; -import tools.refinery.store.representation.SymbolLike; +import tools.refinery.store.query.RelationLike; import java.util.Set; -public sealed interface AnyRelationView extends SymbolLike permits RelationView { +public sealed interface AnyRelationView extends RelationLike permits RelationView { AnySymbol getSymbol(); default Set> getFunctionalDependencies() { diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/AnySymbol.java b/subprojects/store/src/main/java/tools/refinery/store/representation/AnySymbol.java index 12a45bed..20b9eead 100644 --- a/subprojects/store/src/main/java/tools/refinery/store/representation/AnySymbol.java +++ b/subprojects/store/src/main/java/tools/refinery/store/representation/AnySymbol.java @@ -1,5 +1,9 @@ package tools.refinery.store.representation; -public sealed interface AnySymbol extends SymbolLike permits Symbol { +public sealed interface AnySymbol permits Symbol { + String name(); + + int arity(); + Class valueType(); } diff --git a/subprojects/store/src/main/java/tools/refinery/store/representation/SymbolLike.java b/subprojects/store/src/main/java/tools/refinery/store/representation/SymbolLike.java deleted file mode 100644 index 30a892ae..00000000 --- a/subprojects/store/src/main/java/tools/refinery/store/representation/SymbolLike.java +++ /dev/null @@ -1,11 +0,0 @@ -package tools.refinery.store.representation; - -public interface SymbolLike { - String name(); - - int arity(); - - default boolean invalidIndex(int i) { - return i < 0 || i >= arity(); - } -} -- cgit v1.2.3-70-g09d2