gov.llnl.babel.backend.fortran

Class ImplSource


public class ImplSource
extends java.lang.Object

This class provides the ability to write a FORTRAN file with a subroutine template for each method the end user has to implement for a sidl class. The class will retain the previous user provided implementation when overwriting a implementation file.

Constructor Summary

ImplSource(LanguageWriterForFortran writer, CodeSplicer splicer, Context context)
Generate an instance to generate a FORTRAN implementation template.

Method Summary

Map
findCollisions(Map methodsSeen, Symbol sym)
void
generateCode(Class cls)
Generate the implementation FORTRAN file for a sidl class.
static void
generateCode(Class cls, LanguageWriterForFortran writer, CodeSplicer splicer, Context context)
Generate the implementation FORTRAN file for a sidl class.
String
getArgumentDeclaration(Argument a)
Return the argument declaratoin, tailored to the specific flavor of FORTRAN.
void
useStatementsForSupers(Method m, SymbolID id)
static void
useStatementsForSupers(Method m, SymbolID id, LanguageWriterForFortran writer, CodeSplicer splicer, Context context)

Constructor Details

ImplSource

public ImplSource(LanguageWriterForFortran writer,
                  CodeSplicer splicer,
                  Context context)
            throws NoSuchAlgorithmException
Generate an instance to generate a FORTRAN implementation template.
Parameters:
writer - the output device to which the FORTRAN implementation should be written.
splicer - this stores the previous implementation when one exists.

Method Details

findCollisions

public Map findCollisions(Map methodsSeen,
                          Symbol sym)
            throws CodeGenerationException

generateCode

public void generateCode(Class cls)
            throws CodeGenerationException
Generate the implementation FORTRAN file for a sidl class. The implementation file contains all the subroutines that need to be implemented for the class, and when replacing an implementation file, the previous implementation is retained.
Parameters:
cls - the sidl class whose implementation is to be written.
Throws:
CodeGenerationException - a catch all exception to indicate problems in the code generation phase.

generateCode

public static void generateCode(Class cls,
                                LanguageWriterForFortran writer,
                                CodeSplicer splicer,
                                Context context)
            throws CodeGenerationException,
                   NoSuchAlgorithmException
Generate the implementation FORTRAN file for a sidl class. The implementation file contains all the subroutines that need to be implemented for the class, and when replacing an implementation file, the previous implementation is retained.
Throws:
CodeGenerationException - a catch all exception to indicate problems in the code generation phase.

getArgumentDeclaration

public String getArgumentDeclaration(Argument a)
            throws CodeGenerationException
Return the argument declaratoin, tailored to the specific flavor of FORTRAN.
Parameters:
a - the argument
Returns:
the argument declaration string

useStatementsForSupers

public void useStatementsForSupers(Method m,
                                   SymbolID id)
            throws CodeGenerationException

useStatementsForSupers

public static void useStatementsForSupers(Method m,
                                          SymbolID id,
                                          LanguageWriterForFortran writer,
                                          CodeSplicer splicer,
                                          Context context)
            throws CodeGenerationException