From 52203a9697d55e47e297f6a39a7b8e470f7ca60d Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Mon, 22 Jul 2013 23:19:59 +0000 Subject: [PATCH] Remove pesky +/-1 offsets in Prism.java needed for choice settings in PrismSettings. git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@7126 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/src/prism/Prism.java | 42 +++++++++++++++--------------- prism/src/prism/PrismSettings.java | 22 ++++++++++++++++ 2 files changed, 43 insertions(+), 21 deletions(-) diff --git a/prism/src/prism/Prism.java b/prism/src/prism/Prism.java index f88acfbe..20271107 100644 --- a/prism/src/prism/Prism.java +++ b/prism/src/prism/Prism.java @@ -347,7 +347,7 @@ public class Prism extends PrismComponent implements PrismSettingsListener public void setEngine(int e) throws PrismException { - settings.set(PrismSettings.PRISM_ENGINE, e - 1); // note index offset correction + settings.setChoice(PrismSettings.PRISM_ENGINE, e); } public void setVerbose(boolean b) throws PrismException @@ -392,7 +392,7 @@ public class Prism extends PrismComponent implements PrismSettingsListener public void setLinEqMethod(int i) throws PrismException { - settings.set(PrismSettings.PRISM_LIN_EQ_METHOD, i - 1); // note index offset correction + settings.setChoice(PrismSettings.PRISM_LIN_EQ_METHOD, i); } public void setLinEqMethodParam(double d) throws PrismException @@ -402,17 +402,17 @@ public class Prism extends PrismComponent implements PrismSettingsListener public void setMDPSolnMethod(int i) throws PrismException { - settings.set(PrismSettings.PRISM_MDP_SOLN_METHOD, i - 1); // note index offset correction + settings.setChoice(PrismSettings.PRISM_MDP_SOLN_METHOD, i); } public void setMDPMultiSolnMethod(int i) throws PrismException { - settings.set(PrismSettings.PRISM_MDP_MULTI_SOLN_METHOD, i - 1); // note index offset correction + settings.setChoice(PrismSettings.PRISM_MDP_MULTI_SOLN_METHOD, i); } public void setTermCrit(int i) throws PrismException { - settings.set(PrismSettings.PRISM_TERM_CRIT, i - 1); // note index offset correction + settings.setChoice(PrismSettings.PRISM_TERM_CRIT, i); } public void setTermCritParam(double d) throws PrismException @@ -472,12 +472,12 @@ public class Prism extends PrismComponent implements PrismSettingsListener public void setSCCMethod(int i) throws PrismException { - settings.set(PrismSettings.PRISM_SCC_METHOD, i - 1); // note index offset correction + settings.setChoice(PrismSettings.PRISM_SCC_METHOD, i); } public void setExportAdv(int i) throws PrismException { - settings.set(PrismSettings.PRISM_EXPORT_ADV, i - 1); // note index offset correction + settings.setChoice(PrismSettings.PRISM_EXPORT_ADV, i); } public void setExportAdvFilename(String s) throws PrismException @@ -648,8 +648,8 @@ public class Prism extends PrismComponent implements PrismSettingsListener public int getEngine() { - return settings.getInteger(PrismSettings.PRISM_ENGINE) + 1; - } //note the correction + return settings.getInteger(PrismSettings.PRISM_ENGINE); + } /** * Is the current engine "Explicit"? @@ -671,8 +671,8 @@ public class Prism extends PrismComponent implements PrismSettingsListener public int getLinEqMethod() { - return settings.getInteger(PrismSettings.PRISM_LIN_EQ_METHOD) + 1; - } //NOTE THE CORRECTION for the ChoiceSetting index + return settings.getChoice(PrismSettings.PRISM_LIN_EQ_METHOD); + } public double getLinEqMethodParam() { @@ -681,18 +681,18 @@ public class Prism extends PrismComponent implements PrismSettingsListener public int getMDPSolnMethod() { - return settings.getInteger(PrismSettings.PRISM_MDP_SOLN_METHOD) + 1; - } //NOTE THE CORRECTION for the ChoiceSetting index + return settings.getChoice(PrismSettings.PRISM_MDP_SOLN_METHOD); + } public int getMDPMultiSolnMethod() { - return settings.getInteger(PrismSettings.PRISM_MDP_MULTI_SOLN_METHOD) + 1; - } //NOTE THE CORRECTION for the ChoiceSetting index + return settings.getChoice(PrismSettings.PRISM_MDP_MULTI_SOLN_METHOD); + } public int getTermCrit() { - return settings.getInteger(PrismSettings.PRISM_TERM_CRIT) + 1; - } //NOTE THE CORRECTION for the ChoiceSetting index + return settings.getChoice(PrismSettings.PRISM_TERM_CRIT); + } public double getTermCritParam() { @@ -781,13 +781,13 @@ public class Prism extends PrismComponent implements PrismSettingsListener public int getSCCMethod() { - return settings.getInteger(PrismSettings.PRISM_SCC_METHOD) + 1; - } //NOTE THE CORRECTION for the ChoiceSetting index + return settings.getChoice(PrismSettings.PRISM_SCC_METHOD); + } public int getExportAdv() { - return settings.getInteger(PrismSettings.PRISM_EXPORT_ADV) + 1; - } //NOTE THE CORRECTION for the ChoiceSetting index + return settings.getChoice(PrismSettings.PRISM_EXPORT_ADV); + } public String getExportAdvFilename() { diff --git a/prism/src/prism/PrismSettings.java b/prism/src/prism/PrismSettings.java index 1397a61f..9ea255f4 100644 --- a/prism/src/prism/PrismSettings.java +++ b/prism/src/prism/PrismSettings.java @@ -1495,6 +1495,17 @@ public class PrismSettings implements Observer } } + /** + * Set the value for an option of type CHOICE_TYPE, + * with the option key given as a String, and the value as an integer index. + * This method exists to allow setting directly using 1-indexed values. + */ + public synchronized void setChoice(String key, int value) throws PrismException + { + // Adjust by 1 + set(key, value - 1); + } + public synchronized void setFileSelector(String key, FileSelector select) { Setting set = settingFromHash(key); @@ -1556,6 +1567,17 @@ public class PrismSettings implements Observer else return DEFAULT_BOOLEAN; } + public synchronized int getChoice(String key) + { + Setting set = settingFromHash(key); + if(set instanceof ChoiceSetting) + { + // Adjust by 1 + return ((ChoiceSetting)set).getCurrentIndex() + 1; + } + else return DEFAULT_INT; + } + public synchronized Color getColor(String key) { Setting set = settingFromHash(key);