Class IfStatement

  • All Implemented Interfaces:
    Cloneable, LanguageObject

    public class IfStatement
    extends Statement

    This class represents an if-else statement in the storedprocedure language. It extends the Statement that could part of a block. This statement has an IF block and an optional ELSE block, it also holds reference to the criteria that determines which block should be executed..

    • Constructor Detail

      • IfStatement

        public IfStatement()
        Constructor for IfStatement.
      • IfStatement

        public IfStatement​(Criteria criteria,
                           Block ifBlock,
                           Block elseBlock)
        Constructor for IfStatement.
        Parameters:
        criteria - The criteria determining which block should be executed
        ifBlock - The IF Block object.
        elseBlock - The ELSE Block object.
      • IfStatement

        public IfStatement​(Criteria criteria,
                           Block ifBlock)
        Constructor for IfStatement.
        Parameters:
        criteria - The criteria determining which block should be executed
        ifBlock - The IF Block object.
    • Method Detail

      • getIfBlock

        public Block getIfBlock()
        Get the statement's IF block.
        Returns:
        The IF Block object.
      • setIfBlock

        public void setIfBlock​(Block block)
        Set the statement's IF block.
        Parameters:
        block - The IF Block object.
      • getElseBlock

        public Block getElseBlock()
        Get the statement's ELSE block.
        Returns:
        The ELSE Block object.
      • setElseBlock

        public void setElseBlock​(Block block)
        Set the statement's ELSE block.
        Parameters:
        block - The ELSE Block object.
      • hasElseBlock

        public boolean hasElseBlock()
        Return a boolean indicating if the statement has an else block.
        Returns:
        A boolean indicating if the statement has an else block
      • getCondition

        public Criteria getCondition()
        Get the condition that determines which block needs to be executed.
        Returns:
        The Criteria to determine block execution
      • setCondition

        public void setCondition​(Criteria criteria)
        Set the condition that determines which block needs to be executed.
        Parameters:
        criteria - The Criteria to determine block execution
      • getType

        public int getType()
        Return the type for this statement, this is one of the types defined on the statement object.
        Specified by:
        getType in class Statement
        Returns:
        The statement type
      • acceptVisitor

        public void acceptVisitor​(LanguageVisitor visitor)
        Description copied from interface: LanguageObject
        Method for accepting a visitor. It is the responsibility of the language object to call back on the visitor.
        Parameters:
        visitor - Visitor being used
      • clone

        public Object clone()
        Deep clone statement to produce a new identical statement.
        Specified by:
        clone in interface LanguageObject
        Specified by:
        clone in class Statement
        Returns:
        Deep clone
      • equals

        public boolean equals​(Object obj)
        Compare two IfStatements for equality. They will only evaluate to equal if they are IDENTICAL: their if, else blocks are same and the condition on the ifBlock is same.
        Overrides:
        equals in class Object
        Parameters:
        obj - Other object
        Returns:
        True if equal
      • hashCode

        public int hashCode()
        Get hashcode for IfStatement. WARNING: This hash code relies on the hash codes of the if-else blocks anf the criteria determining the block on this statement. Hash code is only valid after the block has been completely constructed.
        Overrides:
        hashCode in class Object
        Returns:
        Hash code