summaryrefslogtreecommitdiff |
diff options
-rw-r--r-- | src/hastabel/lang/Predicate.java | 46 |
1 files changed, 46 insertions, 0 deletions
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 @@ -325,6 +325,25 @@ public class Predicate public Set<List<Element>> get_relevant_members ( + final List<Type> signature + ) + { + final Set<List<Element>> result; + + result = new HashSet<List<Element>>(); + + for (final List<Element> member: members) + { + if (is_compatible_with_signature2(member, signature)) + { + result.add(member); + } + } + + return result; + } + public Set<List<Element>> get_relevant_members + ( final Set<List<Type>> relevant_signatures ) { @@ -386,6 +405,31 @@ public class Predicate return result; } + public Set<List<Element>> get_relevant_partial_members + ( + final List<Type> signature + ) + { + final Set<List<Element>> result; + + result = new HashSet<List<Element>>(); + + for (final List<Element> member: members) + { + final List<Element> 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); |