Browse Source

More classes switched to PrismComponent.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@7245 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 13 years ago
parent
commit
c7ee82d4bc
  1. 13
      prism/src/explicit/PrismSTPGAbstractRefine.java
  2. 9
      prism/src/explicit/QuantAbstractRefine.java
  3. 11
      prism/src/explicit/QuantAbstractRefineExample.java
  4. 4
      prism/src/pta/PTAAbstractRefine.java
  5. 3
      prism/src/pta/PTAModelChecker.java
  6. 2
      prism/src/pta/PTAModelCheckerCL.java

13
prism/src/explicit/PrismSTPGAbstractRefine.java

@ -29,6 +29,7 @@ package explicit;
import java.util.*; import java.util.*;
import prism.ModelType; import prism.ModelType;
import prism.PrismComponent;
import prism.PrismException; import prism.PrismException;
public class PrismSTPGAbstractRefine extends QuantAbstractRefine public class PrismSTPGAbstractRefine extends QuantAbstractRefine
@ -58,6 +59,14 @@ public class PrismSTPGAbstractRefine extends QuantAbstractRefine
// Map from abstract P1 choices to concrete state sets // Map from abstract P1 choices to concrete state sets
protected List<List<Set<Integer>>> abstractToConcrete; protected List<List<Set<Integer>>> abstractToConcrete;
/**
* Default constructor.
*/
public PrismSTPGAbstractRefine(PrismComponent parent) throws PrismException
{
super(parent);
}
// Implementation of initialise() for abstraction-refinement loop; see superclass for details // Implementation of initialise() for abstraction-refinement loop; see superclass for details
protected void initialise() throws PrismException protected void initialise() throws PrismException
@ -447,8 +456,9 @@ public class PrismSTPGAbstractRefine extends QuantAbstractRefine
String s, sw, sOpt, filenameBase; String s, sw, sOpt, filenameBase;
int i, j; int i, j;
try {
// Create abstraction-refinement engine // Create abstraction-refinement engine
abstractRefine = new PrismSTPGAbstractRefine();
abstractRefine = new PrismSTPGAbstractRefine(null);
abstractRefine.sanityChecks = true; abstractRefine.sanityChecks = true;
// Parse command line args // Parse command line args
@ -456,7 +466,6 @@ public class PrismSTPGAbstractRefine extends QuantAbstractRefine
System.err.println("Usage: java ... [options] <tra file> <lab file> <target label>"); System.err.println("Usage: java ... [options] <tra file> <lab file> <target label>");
System.exit(1); System.exit(1);
} }
try {
nonSwitches = new ArrayList<String>(); nonSwitches = new ArrayList<String>();
for (i = 0; i < args.length; i++) { for (i = 0; i < args.length; i++) {
s = args[i]; s = args[i];

9
prism/src/explicit/QuantAbstractRefine.java

@ -50,10 +50,8 @@ import explicit.ProbModelChecker.ValIterDir;
* <br><br> * <br><br>
* The abstraction-refinement loop can then be started with {@link #abstractRefine}. * The abstraction-refinement loop can then be started with {@link #abstractRefine}.
*/ */
public abstract class QuantAbstractRefine
public abstract class QuantAbstractRefine extends PrismComponent
{ {
// Log for output (default: just send to stdout)
protected PrismLog mainLog = new PrismPrintStreamLog(System.out);
// Model checker // Model checker
protected ProbModelChecker mc; protected ProbModelChecker mc;
// Dummy model checker to store options // Dummy model checker to store options
@ -147,10 +145,9 @@ public abstract class QuantAbstractRefine
/** /**
* Default constructor. * Default constructor.
*/ */
public QuantAbstractRefine()
public QuantAbstractRefine(PrismComponent parent) throws PrismException
{ {
// By default, log output goes to System.out.
setLog(new PrismPrintStreamLog(System.out));
super(parent);
// Create dummy model checker to store options // Create dummy model checker to store options
try { try {
mcOptions = new ProbModelChecker(null); mcOptions = new ProbModelChecker(null);

11
prism/src/explicit/QuantAbstractRefineExample.java

@ -34,6 +34,7 @@ import parser.State;
import parser.ast.*; import parser.ast.*;
import prism.ModelType; import prism.ModelType;
import prism.Prism; import prism.Prism;
import prism.PrismComponent;
import prism.PrismException; import prism.PrismException;
import prism.PrismLog; import prism.PrismLog;
import prism.PrismPrintStreamLog; import prism.PrismPrintStreamLog;
@ -58,6 +59,14 @@ public class QuantAbstractRefineExample extends QuantAbstractRefine
// Map from abstract P1 choices to concrete state sets // Map from abstract P1 choices to concrete state sets
protected List<List<Set<Integer>>> abstractToConcrete; protected List<List<Set<Integer>>> abstractToConcrete;
/**
* Default constructor.
*/
public QuantAbstractRefineExample(PrismComponent parent) throws PrismException
{
super(parent);
}
// Implementation of initialise() for abstraction-refinement loop; see superclass for details // Implementation of initialise() for abstraction-refinement loop; see superclass for details
@Override @Override
@ -322,7 +331,7 @@ public class QuantAbstractRefineExample extends QuantAbstractRefine
model.exportToPrismExplicitTra(args[1]); model.exportToPrismExplicitTra(args[1]);
// Create/initialise abstraction-refinement engine // Create/initialise abstraction-refinement engine
QuantAbstractRefineExample abstractRefine = new QuantAbstractRefineExample();
QuantAbstractRefineExample abstractRefine = new QuantAbstractRefineExample(prism);
abstractRefine.setModelType(ModelType.MDP); abstractRefine.setModelType(ModelType.MDP);
abstractRefine.setPropertyType(PropertyType.PROB_REACH); abstractRefine.setPropertyType(PropertyType.PROB_REACH);
abstractRefine.sanityChecks = true; abstractRefine.sanityChecks = true;

4
prism/src/pta/PTAAbstractRefine.java

@ -29,6 +29,7 @@ package pta;
import java.util.*; import java.util.*;
import prism.ModelType; import prism.ModelType;
import prism.PrismComponent;
import prism.PrismException; import prism.PrismException;
import explicit.*; import explicit.*;
@ -55,8 +56,9 @@ public class PTAAbstractRefine extends QuantAbstractRefine
/** /**
* Default constructor. * Default constructor.
*/ */
public PTAAbstractRefine()
public PTAAbstractRefine(PrismComponent parent) throws PrismException
{ {
super(parent);
// Just do basic config for QuantAbstractRefine // Just do basic config for QuantAbstractRefine
setModelType(ModelType.MDP); setModelType(ModelType.MDP);
setPropertyType(QuantAbstractRefine.PropertyType.PROB_REACH); setPropertyType(QuantAbstractRefine.PropertyType.PROB_REACH);

3
prism/src/pta/PTAModelChecker.java

@ -306,9 +306,8 @@ public class PTAModelChecker extends PrismComponent
// Do probability computation through abstraction/refinement/stochastic games // Do probability computation through abstraction/refinement/stochastic games
if (ptaMethod.equals("Stochastic games")) { if (ptaMethod.equals("Stochastic games")) {
PTAAbstractRefine ptaAR; PTAAbstractRefine ptaAR;
ptaAR = new PTAAbstractRefine();
ptaAR = new PTAAbstractRefine(this);
String arOptions = settings.getString(PrismSettings.PRISM_AR_OPTIONS); String arOptions = settings.getString(PrismSettings.PRISM_AR_OPTIONS);
ptaAR.setLog(mainLog);
ptaAR.parseOptions(arOptions.split(",")); ptaAR.parseOptions(arOptions.split(","));
return ptaAR.forwardsReachAbstractRefine(pta, targetLocs, null, min); return ptaAR.forwardsReachAbstractRefine(pta, targetLocs, null, min);
} }

2
prism/src/pta/PTAModelCheckerCL.java

@ -83,7 +83,7 @@ public class PTAModelCheckerCL
try { try {
// Build PTAAbstractRefine object // Build PTAAbstractRefine object
abstractRefine = new PTAAbstractRefine();
abstractRefine = new PTAAbstractRefine(null);
// Parse command-line arguments // Parse command-line arguments
parseCommandLineArgs(args); parseCommandLineArgs(args);

Loading…
Cancel
Save