All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.checkerframework.dataflow.cfg.block.ConditionalBlock Maven / Gradle / Ivy

Go to download

The Checker Framework enhances Java's type system to make it more powerful and useful. This lets software developers detect and prevent errors in their Java programs. The Checker Framework includes compiler plug-ins ("checkers") that find bugs or verify their absence. It also permits you to write your own compiler plug-ins.

There is a newer version: 3.44.0
Show newest version
package org.checkerframework.dataflow.cfg.block;

import org.checkerframework.dataflow.analysis.Store.FlowRule;

// Werner believes that a ConditionalBlock has to have exactly one RegularBlock (?) predecessor and
// the last node of that predecessor has to be a node of boolean type. He's not totally sure,
// though.  We should check whether that property holds.

/** Represents a conditional basic block. */
public interface ConditionalBlock extends Block {

  /**
   * Returns the entry block of the then branch.
   *
   * @return the entry block of the then branch
   */
  Block getThenSuccessor();

  /**
   * Returns the entry block of the else branch.
   *
   * @return the entry block of the else branch
   */
  Block getElseSuccessor();

  /**
   * Returns the flow rule for information flowing from this block to its then successor.
   *
   * @return the flow rule for information flowing from this block to its then successor
   */
  FlowRule getThenFlowRule();

  /**
   * Returns the flow rule for information flowing from this block to its else successor.
   *
   * @return the flow rule for information flowing from this block to its else successor
   */
  FlowRule getElseFlowRule();

  /**
   * Set the flow rule for information flowing from this block to its then successor.
   *
   * @param rule the new flow rule for information flowing from this block to its then successor
   */
  void setThenFlowRule(FlowRule rule);

  /**
   * Set the flow rule for information flowing from this block to its else successor.
   *
   * @param rule the new flow rule for information flowing from this block to its else successor
   */
  void setElseFlowRule(FlowRule rule);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy