blob: d267c99803cd28334fd3c46302ca76cefbde80a1 [file] [log] [blame]
package org.checkerframework.dataflow.cfg.block;
import org.checkerframework.dataflow.analysis.Store;
import org.checkerframework.dataflow.cfg.node.Node;
/**
* Represents a conditional basic block that contains exactly one boolean
* {@link Node}.
*
* @author Stefan Heule
*
*/
public interface ConditionalBlock extends Block {
/**
* @return The entry block of the then branch.
*/
Block getThenSuccessor();
/**
* @return The entry block of the else branch.
*/
Block getElseSuccessor();
/**
* @return The flow rule for information flowing from
* this block to its then successor.
*/
Store.FlowRule getThenFlowRule();
/**
* @return The flow rule for information flowing from
* this block to its else successor.
*/
Store.FlowRule getElseFlowRule();
/**
* Set the flow rule for information flowing from this block to
* its then successor.
*/
void setThenFlowRule(Store.FlowRule rule);
/**
* Set the flow rule for information flowing from this block to
* its else successor.
*/
void setElseFlowRule(Store.FlowRule rule);
}