ASTAssertStatement.java

package edu.udel.cis.vsl.tass.front.minimp.ast.statement;

import edu.udel.cis.vsl.tass.front.minimp.ast.expression.ASTExpressionIF;
import edu.udel.cis.vsl.tass.front.minimp.ast.misc.ASTIdentifier;

public class ASTAssertStatement extends ASTStatement {
  private ASTExpressionIF assertion;
  
  private String message = "";
  
  private boolean isCollective = false;
  
  private boolean isJoint = false;
  
  private boolean isInvariant = false;
  
  private ASTIdentifier id = null;

  public ASTAssertStatement(ASTExpressionIF assertion) {
    this.assertion = assertion;
  }
  
  public ASTAssertStatement(ASTExpressionIF assertion, String comment) {
	  this.assertion = assertion;
	  this.message = comment;
  }
  
  public ASTAssertStatement(ASTExpressionIF assertion, ASTIdentifier id) {
	  this.assertion = assertion;
	  this.id = id;
  }
  
  public ASTIdentifier id() {
	  return id;
  }
  
  public void setCollective(boolean collective) {
	  isCollective = collective;
  }
  
  public void setJoint(boolean joint) {
	  isJoint = joint;
  }
  
  public void setInvariant(boolean invariant) {
	  isInvariant = invariant;
  }

  public ASTExpressionIF getAssertion() {
    return this.assertion;
  }
  
  public String getMessage() {
	  return this.message;
  }
  
  public boolean isCollective() {
	  return isCollective;
  }
  
  public boolean isJoint() {
	  return isJoint;
  }
  
  public boolean isInvariant() {
	  return isInvariant;
  }

  public String toString() {
	  String result = "assert "+ this.assertion.toString() + ";";
	  if (isCollective) {
		  result = "collective " + result;
	  }
	  return result; 
  }
}