gov.llnl.babel.backend.sidl

Class GenerateSidl

Implemented Interfaces:
CodeGenerator, ContextAware

public class GenerateSidl
extends java.lang.Object
implements CodeGenerator

This class implements the CodeGenerator interface for the SIDL code generator. This generator creates a SIDL file for a package based on the contents of the symbol table.

Constructor Summary

GenerateSidl()
Create a new instance.

Method Summary

void
generateCode(Set symbols)
Given a set of symbol ids, this method will generate SIDL source for all the corresponding packages in the set as needed.
Set
getLanguages()
Returns a set containing only "sidl" since we are only generating the sidl representation of the interface.
String
getName()
Return the canonical name of this generator.
String
getType()
Return "text" since we are generating a textual representation of the interface.
boolean
getUserSymbolsOnly()
Returns false since we are not limited it to user symbols only.
void
setContext(Context context)
Routine to notify extensions of the context.
void
setName(String name)
Set the name of the generator.

Constructor Details

GenerateSidl

public GenerateSidl()
Create a new instance.

Method Details

generateCode

public void generateCode(Set symbols)
            throws CodeGenerationException
Given a set of symbol ids, this method will generate SIDL source for all the corresponding packages in the set as needed.
Specified by:
generateCode in interface CodeGenerator
Parameters:
symbols - a set of symbol id (symbol names) for whom stubs should be written as needed. Each object in the set should be a SymbolID.
Throws:
CodeGenerationException - a catch all exception to indicate problems in the code generation phase.

getLanguages

public Set getLanguages()
Returns a set containing only "sidl" since we are only generating the sidl representation of the interface.
Specified by:
getLanguages in interface CodeGenerator

getName

public String getName()
Specified by:
getName in interface CodeGenerator
Returns:
the return value should always be a string in the set returned by CodeGenerator.getLanguages(). It may not be equal to the name given in CodeGenerator.setName(String).

getType

public String getType()
Return "text" since we are generating a textual representation of the interface.
Specified by:
getType in interface CodeGenerator

getUserSymbolsOnly

public boolean getUserSymbolsOnly()
Returns false since we are not limited it to user symbols only.
Specified by:
getUserSymbolsOnly in interface CodeGenerator

setContext

public void setContext(Context context)
Routine to notify extensions of the context.
Specified by:
setContext in interface ContextAware

setName

public void setName(String name)
            throws CodeGenerationException
Set the name of the generator. This sets the name of the generator as it appeared on the command line. This method should be called at least once before CodeGenerator.getName() is called.
Specified by:
setName in interface CodeGenerator
Parameters:
name - this should be the name that the end user designated for the generator.