From 1a17950debd260f611f7d66f3e55db5a24aaea34 Mon Sep 17 00:00:00 2001 From: Joachim Klein Date: Thu, 20 Aug 2015 06:26:06 +0000 Subject: [PATCH] AcceptanceGeneric: add getLoafNodes() helper git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10529 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/src/acceptance/AcceptanceGeneric.java | 26 +++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/prism/src/acceptance/AcceptanceGeneric.java b/prism/src/acceptance/AcceptanceGeneric.java index 5aa92458..91020a4d 100644 --- a/prism/src/acceptance/AcceptanceGeneric.java +++ b/prism/src/acceptance/AcceptanceGeneric.java @@ -27,7 +27,10 @@ package acceptance; +import java.util.ArrayList; import java.util.BitSet; +import java.util.Collections; +import java.util.List; import prism.PrismException; import prism.PrismNotSupportedException; @@ -156,6 +159,29 @@ public class AcceptanceGeneric implements AcceptanceOmega { return false; } + /** Get a list of all the (non-true/false) leaf nodes in this acceptance condition */ + public List getLeafNodes() + { + switch (getKind()) { + case AND: + case OR: { + List result = new ArrayList(); + result.addAll(left.getLeafNodes()); + result.addAll(right.getLeafNodes()); + return result; + } + case TRUE: + case FALSE: + return Collections.emptyList(); + case FIN: + case FIN_NOT: + case INF: + case INF_NOT: + return Collections.singletonList(this); + } + throw new UnsupportedOperationException("Unknown kind"); + } + @Override public String getSignatureForState(int i) { return "";