From 4b39d99c23fcf2bd13ec4e8cfa028845325921c1 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Fri, 25 May 2018 15:09:17 +0200 Subject: Fixes partial signature mixing up with normal ones. --- src/hastabel/lang/Predicate.java | 46 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/src/hastabel/lang/Predicate.java b/src/hastabel/lang/Predicate.java index f68c8d8..0100daf 100644 --- a/src/hastabel/lang/Predicate.java +++ b/src/hastabel/lang/Predicate.java @@ -323,6 +323,25 @@ public class Predicate return result; } + public Set> get_relevant_members + ( + final List signature + ) + { + final Set> result; + + result = new HashSet>(); + + for (final List member: members) + { + if (is_compatible_with_signature2(member, signature)) + { + result.add(member); + } + } + + return result; + } public Set> get_relevant_members ( final Set> relevant_signatures @@ -386,6 +405,31 @@ public class Predicate return result; } + public Set> get_relevant_partial_members + ( + final List signature + ) + { + final Set> result; + + result = new HashSet>(); + + for (final List member: members) + { + final List potential_member; + + potential_member = + mask_through_partial_signature(member, signature); + + if (potential_member != null) + { + result.add(member); + } + } + + return result; + } + public Predicate shallow_copy () { return new Predicate(signatures, partial_signatures, function_type, name); @@ -476,6 +520,8 @@ public class Predicate + " support partial signature." ); } + + return new PredicateFormula(this, partial_signature, params); } return as_formula(params); -- cgit v1.2.3-70-g09d2