kawigi.language
Class ExtendedCPPLanguage

java.lang.Object
  |
  +--kawigi.language.LanguageContainer
        |
        +--kawigi.language.ExtendedCPPLanguage
All Implemented Interfaces:
java.lang.Cloneable, com.topcoder.shared.netCommon.CustomSerializable, ExtendedLanguage, com.topcoder.shared.language.Language, java.io.Serializable, Templatable

public class ExtendedCPPLanguage
extends LanguageContainer
implements Templatable

See Also:
Serialized Form

Field Summary
protected  int caret
          Used to set the caret location in the code template.
static kawigi.language.ExtendedCPPLanguage EXTENDED_CPP_LANGUAGE
          A singleton instance of the extended C++ language.
 
Fields inherited from class kawigi.language.LanguageContainer
baselang
 
Constructor Summary
ExtendedCPPLanguage()
          Creates a new instance of the extended C++ language from TC's singleton C++ Language instance.
ExtendedCPPLanguage(com.topcoder.shared.language.Language lang)
          Creates a new instance of an extended C++ Language from the given TC language implementation.
 
Method Summary
protected  java.lang.String generateTestingCode(com.topcoder.shared.problem.ProblemComponent comp, com.topcoder.shared.language.Language lang)
          Returns the testing code for the problem statement's default testing cases.
 java.lang.String getCompileCommand(com.topcoder.shared.problem.ProblemComponent comp)
          Returns the command that should be used to compile the file.
 java.lang.String getDefaultTemplateCode()
          Returns the text of a default template.
 java.lang.String getFileName(com.topcoder.shared.problem.ProblemComponent comp)
          Returns the filename that the source file should be saved as.
 kawigi.template.TagLibrary getNativeTagLibrary()
          Returns a library of tags that may come in useful for writing templates extending this class.
 java.lang.String getPropertyClass()
          Overrides the property class in LanguageContainer so that it only has alphanumeric characters.
 java.lang.String getRunCommand(com.topcoder.shared.problem.ProblemComponent comp, java.io.File cwd)
          Returns the command that should be used to run the program and test cases.
 kawigi.language.Skeleton getSkeleton(com.topcoder.shared.problem.ProblemComponent comp)
          Returns at a class and method declaration, with methods that have testing code.
 kawigi.template.Template getTemplate()
          Returns the KTT template representing how this class is templated.
 java.lang.String getTemplateCode(com.topcoder.shared.problem.ProblemComponent comp, com.topcoder.shared.language.Language lang)
          The templatable method for the C++ template
protected  java.lang.String getType(java.lang.String vectortype)
          Gets the underlying type contained in a vector declaration.
 java.lang.Class getViewClass()
          Returns the class of the C++ implementation of a View
protected  java.lang.String makeParameter(java.lang.String param, com.topcoder.shared.problem.DataType type, int number)
          Declares a variable called p<number> from the type and value given.
protected  java.lang.String makeParamList(com.topcoder.shared.problem.DataType[] types, java.lang.String[] names)
          Returns a string in the format , , etc.
protected  java.lang.String makeParamTypeList(com.topcoder.shared.problem.DataType[] types)
          Returns a string in the format , , etc.
protected  java.lang.String toArray(java.lang.String type, java.lang.String name)
          Declares an array of the same type as a vector.
 
Methods inherited from class kawigi.language.LanguageContainer
customReadObject, customWriteObject, equals, getBaseLanguage, getId, getMethodSignature, getName
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EXTENDED_CPP_LANGUAGE

public static final kawigi.language.ExtendedCPPLanguage EXTENDED_CPP_LANGUAGE
A singleton instance of the extended C++ language.


caret

protected int caret
Used to set the caret location in the code template.

Constructor Detail

ExtendedCPPLanguage

public ExtendedCPPLanguage(com.topcoder.shared.language.Language lang)
Creates a new instance of an extended C++ Language from the given TC language implementation. If lang is not an instance of CPPLanguage, this object may do weird things, but then again, C++ coders tend to know when they want something to malfunction.


ExtendedCPPLanguage

public ExtendedCPPLanguage()
Creates a new instance of the extended C++ language from TC's singleton C++ Language instance.

Method Detail

getSkeleton

public kawigi.language.Skeleton getSkeleton(com.topcoder.shared.problem.ProblemComponent comp)
Returns at a class and method declaration, with methods that have testing code.

Specified by:
getSkeleton in interface ExtendedLanguage

getTemplateCode

public java.lang.String getTemplateCode(com.topcoder.shared.problem.ProblemComponent comp,
                                        com.topcoder.shared.language.Language lang)
The templatable method for the C++ template


generateTestingCode

protected java.lang.String generateTestingCode(com.topcoder.shared.problem.ProblemComponent comp,
                                               com.topcoder.shared.language.Language lang)
Returns the testing code for the problem statement's default testing cases.


makeParamList

protected java.lang.String makeParamList(com.topcoder.shared.problem.DataType[] types,
                                         java.lang.String[] names)
Returns a string in the format , , etc.


makeParamTypeList

protected java.lang.String makeParamTypeList(com.topcoder.shared.problem.DataType[] types)
Returns a string in the format , , etc.


toArray

protected java.lang.String toArray(java.lang.String type,
                                   java.lang.String name)
Declares an array of the same type as a vector.


getType

protected java.lang.String getType(java.lang.String vectortype)
Gets the underlying type contained in a vector declaration.


makeParameter

protected java.lang.String makeParameter(java.lang.String param,
                                         com.topcoder.shared.problem.DataType type,
                                         int number)
Declares a variable called p<number> from the type and value given.


getViewClass

public java.lang.Class getViewClass()
Returns the class of the C++ implementation of a View

Specified by:
getViewClass in interface ExtendedLanguage

getPropertyClass

public java.lang.String getPropertyClass()
Overrides the property class in LanguageContainer so that it only has alphanumeric characters.

Specified by:
getPropertyClass in interface ExtendedLanguage
Overrides:
getPropertyClass in class LanguageContainer

getCompileCommand

public java.lang.String getCompileCommand(com.topcoder.shared.problem.ProblemComponent comp)
Returns the command that should be used to compile the file. Ideally, this won't be platform-specific, but realistically, some people use different compilers than others completely. It may be possible at some point to allow this to be configured.

Specified by:
getCompileCommand in interface ExtendedLanguage

getRunCommand

public java.lang.String getRunCommand(com.topcoder.shared.problem.ProblemComponent comp,
                                      java.io.File cwd)
Returns the command that should be used to run the program and test cases. Again, some care will need to be taken to make this part platform-happy.

Specified by:
getRunCommand in interface ExtendedLanguage

getFileName

public java.lang.String getFileName(com.topcoder.shared.problem.ProblemComponent comp)
Returns the filename that the source file should be saved as. You may assume that this is the actual filename used when creating the compile and run commands.

Specified by:
getFileName in interface ExtendedLanguage

getTemplate

public kawigi.template.Template getTemplate()
Returns the KTT template representing how this class is templated.

Specified by:
getTemplate in interface Templatable

getNativeTagLibrary

public kawigi.template.TagLibrary getNativeTagLibrary()
Returns a library of tags that may come in useful for writing templates extending this class.

Specified by:
getNativeTagLibrary in interface Templatable

getDefaultTemplateCode

public java.lang.String getDefaultTemplateCode()
Returns the text of a default template.

Specified by:
getDefaultTemplateCode in interface Templatable