Skip to content

Commit de07dc2

Browse files
committed
Add default impl for AbstractProver#getStatistics to perform common checks and a delegate method that can be implemented by the solvers
1 parent 5e65df3 commit de07dc2

5 files changed

Lines changed: 17 additions & 11 deletions

File tree

src/org/sosy_lab/java_smt/basicimpl/AbstractProver.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,19 @@ public final <R> R allSat(AllSatCallback<R> callback, List<BooleanFormula> impor
376376
protected abstract <R> R allSatImpl(AllSatCallback<R> callback, List<BooleanFormula> important)
377377
throws InterruptedException, SolverException;
378378

379+
@Override
380+
public final ImmutableMap<String, String> getStatistics() {
381+
Preconditions.checkState(!closed);
382+
return getStatisticsImpl();
383+
}
384+
385+
/**
386+
* @implSpec override and implement for solvers that provide statistics.
387+
*/
388+
protected ImmutableMap<String, String> getStatisticsImpl() {
389+
return ImmutableMap.of();
390+
}
391+
379392
@Override
380393
public void close() {
381394
assertedFormulas.clear();

src/org/sosy_lab/java_smt/solvers/mathsat5/Mathsat5AbstractProver.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,9 +211,8 @@ private List<BooleanFormula> encapsulate(long[] terms) {
211211
}
212212

213213
@Override
214-
public ImmutableMap<String, String> getStatistics() {
214+
public ImmutableMap<String, String> getStatisticsImpl() {
215215
// Mathsat sigsevs if you try to get statistics for closed environments
216-
Preconditions.checkState(!closed);
217216
final String stats = msat_get_search_stats(curEnv);
218217
return ImmutableMap.copyOf(
219218
Splitter.on("\n").trimResults().omitEmptyStrings().withKeyValueSeparator(" ").split(stats));

src/org/sosy_lab/java_smt/solvers/smtinterpol/SmtInterpolAbstractProver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ protected Optional<List<BooleanFormula>> unsatCoreOverAssumptionsImpl(
201201
}
202202

203203
@Override
204-
public ImmutableMap<String, String> getStatistics() {
204+
public ImmutableMap<String, String> getStatisticsImpl() {
205205
ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
206206
SmtInterpolSolverContext.flatten(builder, "", env.getInfo(":all-statistics"));
207207
return builder.buildOrThrow();

src/org/sosy_lab/java_smt/solvers/z3/Z3AbstractProver.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -207,10 +207,7 @@ protected Optional<List<BooleanFormula>> unsatCoreOverAssumptionsImpl(
207207
protected abstract long getStatistics0();
208208

209209
@Override
210-
public ImmutableMap<String, String> getStatistics() {
211-
// Z3 sigsevs if you try to get statistics for closed environments
212-
Preconditions.checkState(!closed);
213-
210+
public ImmutableMap<String, String> getStatisticsImpl() {
214211
ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
215212
Set<String> seenKeys = new HashSet<>();
216213

src/org/sosy_lab/java_smt/solvers/z3legacy/Z3LegacyAbstractProver.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -327,10 +327,7 @@ protected Optional<List<BooleanFormula>> unsatCoreOverAssumptionsImpl(
327327
}
328328

329329
@Override
330-
public ImmutableMap<String, String> getStatistics() {
331-
// Z3 sigsevs if you try to get statistics for closed environments
332-
Preconditions.checkState(!closed);
333-
330+
public ImmutableMap<String, String> getStatisticsImpl() {
334331
ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
335332
Set<String> seenKeys = new HashSet<>();
336333

0 commit comments

Comments
 (0)