From f2ab0e12838efe5a23abb79fd7228f89dc3ba8ef Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Thu, 22 Jun 2023 21:52:53 +0200 Subject: fix: FilteredView default value The filer can't return true for the default value, because tuples with default value cannot be enumerated. --- .../translator/typehierarchy/InferredMayTypeView.java | 18 +++++++++++++++++- .../translator/typehierarchy/InferredMustTypeView.java | 18 +++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) (limited to 'subprojects/store-reasoning') diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMayTypeView.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMayTypeView.java index ce2d6ff3..40de4644 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMayTypeView.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMayTypeView.java @@ -9,6 +9,8 @@ import tools.refinery.store.reasoning.representation.PartialRelation; import tools.refinery.store.query.view.TuplePreservingView; import tools.refinery.store.tuple.Tuple; +import java.util.Objects; + class InferredMayTypeView extends TuplePreservingView { private final PartialRelation type; @@ -18,7 +20,21 @@ class InferredMayTypeView extends TuplePreservingView { } @Override - public boolean filter(Tuple key, InferredType value) { + protected boolean doFilter(Tuple key, InferredType value) { return value.mayConcreteTypes().contains(type); } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + if (!super.equals(o)) return false; + InferredMayTypeView that = (InferredMayTypeView) o; + return Objects.equals(type, that.type); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), type); + } } diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMustTypeView.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMustTypeView.java index beda1796..1a121547 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMustTypeView.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/translator/typehierarchy/InferredMustTypeView.java @@ -9,6 +9,8 @@ import tools.refinery.store.reasoning.representation.PartialRelation; import tools.refinery.store.query.view.TuplePreservingView; import tools.refinery.store.tuple.Tuple; +import java.util.Objects; + class InferredMustTypeView extends TuplePreservingView { private final PartialRelation type; @@ -18,7 +20,21 @@ class InferredMustTypeView extends TuplePreservingView { } @Override - public boolean filter(Tuple key, InferredType value) { + protected boolean doFilter(Tuple key, InferredType value) { return value.mustTypes().contains(type); } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + if (!super.equals(o)) return false; + InferredMustTypeView that = (InferredMustTypeView) o; + return Objects.equals(type, that.type); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), type); + } } -- cgit v1.2.3-70-g09d2