org.problets.domain.model.control.selection
Class CaseModel

java.lang.Object
  extended by org.problets.domain.model.DomainModel
      extended by org.problets.domain.model.control.ControlModel
          extended by org.problets.domain.model.control.ConditionControl
              extended by org.problets.domain.model.control.selection.Selection
                  extended by org.problets.domain.model.control.selection.CaseModel
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
DefaultCaseModel

public class CaseModel
extends Selection

Class: CaseModel Purpose: For every case, parses statements, blocks, and nested switch statements and adds it to statement sequence or block


Field Summary
 
Fields inherited from class org.problets.domain.model.control.ConditionControl
INCORRECT_TYPE
 
Fields inherited from class org.problets.domain.model.control.ControlModel
ABORT_EXECUTION, BREAK_EXECUTION, CONTINUE_EXECUTION, END_EXECUTION, INFINITE_EXECUTION, RETURN_EXECUTION, RUN_TIME_ERROR_EXECUTION, SKIP_EXECUTION
 
Fields inherited from class org.problets.domain.model.DomainModel
BOOLEAN, BREAKPOINT, CHARACTER, DOUBLE_PRECISION_REAL, ERROR_TYPE, EVAL_STATUS, expACTION, expASSIGNMENT, expAUTO_DEALLOCATION, expCALL, expCONDITION, expDECLARATION, expDEREFERENCING, expDYNAMIC_ALLOCATION, expDYNAMIC_ALLOCATION_INITIALIZATION, expDYNAMIC_DEALLOCATION, expELSE_CLAUSE, expERROR, expEXECUTION, expIF_CLAUSE, expINITIALIZATION, expINPUT, expPARAMETER_PASSING, expPRINT, expQUESTIONABLE, expREFERENCING, expRETURN, expRUNTIME_ERROR, expSEMANTIC_ERROR, expSYNTAX_ERROR, expUPDATE, IDENTITY, MAX_OBJECT_IDENTITY, MIN_OBJECT_IDENTITY, QUADRUPLE_PRECISION_REAL, RUNTIME_ERROR, SEMANTIC_ERROR, SIGNED_INTEGER, SIGNED_LONG, SIGNED_SHORT, SINGLE_PRECISION_REAL, SYNTAX_ERROR, UNDEFINED_TYPE, UNSIGNED_INTEGER, UNSIGNED_LONG, UNSIGNED_SHORT, WARNING
 
Constructor Summary
CaseModel(ActivationRecord parent, HeapModel heap, java.lang.String in_template, java.util.Vector statements)
          Constructor
 
Method Summary
 ExecutionStatus explainProcess(RunEnv runEnv, Behavior behavior, boolean stepFlag)
          public int explainProcess( RunEnv runEnv, Behavior behavior, boolean stepFlag) Single case is checked and explained if it is correct
 void getCode(java.util.Vector codeText, OutputStream output)
          public void getCode(Vector codeText, OutputStream output, Object caseModel) Display single case on the screen at a time
 java.lang.String getHeader()
          Gets the Header for the case
 java.lang.String getProcessedExpression()
          Processed version of caseValueExpression
static boolean grade(java.lang.String template, java.lang.String studentCode)
          Grade is used for checking student's code compared to the actual code.
static boolean gradeOld(java.lang.String template, java.lang.String studentCode)
          Grade is used for checking student's code compared to the actual code.
 boolean matches(StackModel stack, Value conditionValue)
          public boolean matches( Value conditionValue ) Matches the value of switch condition and the case value
 
Methods inherited from class org.problets.domain.model.control.selection.Selection
main
 
Methods inherited from class org.problets.domain.model.control.ConditionControl
getPossibleErrors
 
Methods inherited from class org.problets.domain.model.control.ControlModel
getCodeLength, getName, getStartLineNumber
 
Methods inherited from class org.problets.domain.model.DomainModel
clone, getId, getIdName
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CaseModel

public CaseModel(ActivationRecord parent,
                 HeapModel heap,
                 java.lang.String in_template,
                 java.util.Vector statements)
Constructor

Parameters:
parent - - the nested scope's parent activation record
heap - - the heap to be used
in_template - - the template to be parsed
statements - - contains the cases and its statements
Method Detail

getProcessedExpression

public java.lang.String getProcessedExpression()
Processed version of caseValueExpression


matches

public boolean matches(StackModel stack,
                       Value conditionValue)
public boolean matches( Value conditionValue ) Matches the value of switch condition and the case value

Parameters:
conditionValue - - Integer value of the switch condition
Returns:
- True if the match is found else false

getHeader

public java.lang.String getHeader()
Gets the Header for the case


getCode

public void getCode(java.util.Vector codeText,
                    OutputStream output)
public void getCode(Vector codeText, OutputStream output, Object caseModel) Display single case on the screen at a time

Overrides:
getCode in class ControlModel
Parameters:
codeText - - a Vector that holds the code
output - - For outputting the code on the screen
caseModel - - Hold the current case which is executed

explainProcess

public ExecutionStatus explainProcess(RunEnv runEnv,
                                      Behavior behavior,
                                      boolean stepFlag)
public int explainProcess( RunEnv runEnv, Behavior behavior, boolean stepFlag) Single case is checked and explained if it is correct

Overrides:
explainProcess in class ControlModel
Parameters:
runEnv - - Run Environment of the program
behavior - - behavior of the program
stepFlag - - execution flag
Returns:
status of the program

grade

public static boolean grade(java.lang.String template,
                            java.lang.String studentCode)
Grade is used for checking student's code compared to the actual code.


gradeOld

public static boolean gradeOld(java.lang.String template,
                               java.lang.String studentCode)
Grade is used for checking student's code compared to the actual code. - grade() supersedes this.