CommonCIVLStatePredicate.java

package dev.civl.mc.predicate.common;

import dev.civl.mc.log.IF.CIVLExecutionException;
import dev.civl.mc.predicate.IF.CIVLStatePredicate;
import dev.civl.mc.semantics.IF.SymbolicAnalyzer;
import dev.civl.sarl.IF.SymbolicUniverse;

public abstract class CommonCIVLStatePredicate implements CIVLStatePredicate {

	/**
	 * If violation is found it is cached here.
	 */
	protected CIVLExecutionException violation = null;

	protected SymbolicUniverse universe;

	/**
	 * The symbolic analyzer for operations on symbolic expressions and states,
	 * used in this class for printing states.
	 */
	protected SymbolicAnalyzer symbolicAnalyzer;

	@Override
	public CIVLExecutionException getViolation() {
		return this.violation;
	}

	@Override
	public CIVLExecutionException getUnreportedViolation() {
		if (this.violation != null && !this.violation.isReported())
			return this.violation;
		return null;
	}

	@Override
	public boolean isAndPredicate() {
		return false;
	}
}