From 6ae4346b6248198cb687a9cbbeba3bfb9c37c4b5 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Fri, 7 Apr 2023 19:49:23 +0200 Subject: refactor: remove TupleLike * Directly transform VIATRA tuples into Refinery tuples, since creating the additional wrapper object doesn't save any memory. * Adds static arity Tuple3 and Tuple4 implementations to be more aligned with VIATRA internals and save memory for queries with up to 4 parameters. * Makes sure no new objects are allocated (for varargs handling) when a static arity tuple is hashed. --- .../tools/refinery/store/reasoning/rule/RuleActionExecutor.java | 4 ++-- .../java/tools/refinery/store/reasoning/rule/RuleExecutor.java | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) (limited to 'subprojects/store-reasoning') diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleActionExecutor.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleActionExecutor.java index 80bfa6f8..7c51e3df 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleActionExecutor.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleActionExecutor.java @@ -1,9 +1,9 @@ package tools.refinery.store.reasoning.rule; import tools.refinery.store.reasoning.MergeResult; -import tools.refinery.store.tuple.TupleLike; +import tools.refinery.store.tuple.Tuple; @FunctionalInterface public interface RuleActionExecutor { - MergeResult execute(TupleLike activationTuple); + MergeResult execute(Tuple activationTuple); } diff --git a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleExecutor.java b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleExecutor.java index 1e5322b4..c20645fc 100644 --- a/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleExecutor.java +++ b/subprojects/store-reasoning/src/main/java/tools/refinery/store/reasoning/rule/RuleExecutor.java @@ -1,8 +1,8 @@ package tools.refinery.store.reasoning.rule; -import tools.refinery.store.reasoning.MergeResult; import tools.refinery.store.model.Model; -import tools.refinery.store.tuple.TupleLike; +import tools.refinery.store.reasoning.MergeResult; +import tools.refinery.store.tuple.Tuple; import java.util.List; @@ -24,7 +24,8 @@ public final class RuleExecutor { public Model getModel() { return model; } - public MergeResult execute(TupleLike activationTuple) { + + public MergeResult execute(Tuple activationTuple) { MergeResult mergeResult = MergeResult.UNCHANGED; for (var actionExecutor : actionExecutors) { mergeResult = mergeResult.andAlso(actionExecutor.execute(activationTuple)); -- cgit v1.2.3-70-g09d2