org.problets.domain.model.language
Class JavaLanguage

java.lang.Object
  extended by org.problets.domain.model.language.Language
      extended by org.problets.domain.model.language.JavaLanguage

public class JavaLanguage
extends Language

Provides Java-specific details such as the available data types

Author:
Amruth Kumar

Constructor Summary
JavaLanguage()
           
 
Method Summary
 int getMetaDataType(java.lang.String dataType)
          Returns the language-neutral meta data type (integer) corresponding to the language-specific string
 BaseModulus getModulusOperator()
          Returns the Modulus operator for this language
 java.lang.String getPrintString(java.lang.String printedValue, java.lang.String dataType)
          Returns the syntax for printing printedValue in the current language
 Program getProgram(ActivationRecord parentActivationRecord, HeapModel heap, java.lang.String template)
          Returns a program object for the given language
 boolean isIntegerType(java.lang.String dataType)
          Returns whether dataType is of integer type in the language
 boolean isRealType(java.lang.String dataType)
          Returns whether dataType is of real type in the language
static void main(java.lang.String[] args)
           
 Value typeCompatibleAssign(Assignable left, Value right, boolean isCompoundOperator)
          Returns true if right value can be assigned to the left variable, and false otherwise
 
Methods inherited from class org.problets.domain.model.language.Language
getAllDataTypes, getCaseHeader, getDefaultDataType, getDefaultHeader, getEqualsOperator, getForLoop, getIfHeader, getIntegerTypes, getNotEqualsOperator, getNumDataTypes, getRealTypes, getSignedTypes, getStatementDelimiter, getSwitchHeader, getUnsignedTypes, getWhileHeader, hasUnsignedType, isValidDataType, shouldExplainCoercionInAssignment
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JavaLanguage

public JavaLanguage()
Method Detail

getMetaDataType

public int getMetaDataType(java.lang.String dataType)
Returns the language-neutral meta data type (integer) corresponding to the language-specific string

Specified by:
getMetaDataType in class Language

isIntegerType

public boolean isIntegerType(java.lang.String dataType)
Returns whether dataType is of integer type in the language

Specified by:
isIntegerType in class Language
Parameters:
dataType - String which will be checked against integer types for the language

isRealType

public boolean isRealType(java.lang.String dataType)
Returns whether dataType is of real type in the language

Specified by:
isRealType in class Language
Parameters:
dataType - String which will be checked against real types for the language

typeCompatibleAssign

public Value typeCompatibleAssign(Assignable left,
                                  Value right,
                                  boolean isCompoundOperator)
Returns true if right value can be assigned to the left variable, and false otherwise

Overrides:
typeCompatibleAssign in class Language
Parameters:
left - Assignable variable/expression
right - Value assigned to left variable/expression
Returns:
True if right value can be assigned to the left variable/expression in Java, and false otherwise

getModulusOperator

public BaseModulus getModulusOperator()
Returns the Modulus operator for this language

Specified by:
getModulusOperator in class Language

getPrintString

public java.lang.String getPrintString(java.lang.String printedValue,
                                       java.lang.String dataType)
Returns the syntax for printing printedValue in the current language

Overrides:
getPrintString in class Language

getProgram

public Program getProgram(ActivationRecord parentActivationRecord,
                          HeapModel heap,
                          java.lang.String template)
Returns a program object for the given language

Overrides:
getProgram in class Language

main

public static void main(java.lang.String[] args)