gov.llnl.babel.backend.ucxx
Class Cxx

java.lang.Object
  extended by gov.llnl.babel.backend.ucxx.Cxx

public class Cxx
extends java.lang.Object

Class Cxx contains common C++ language binding routines shared by the C++ backend code generators. This class simply collects many common C+ binding routines into one place.


Field Summary
static int FILE_ROLE_IMPL
           
static int FILE_ROLE_MAX
           
static int FILE_ROLE_MIN
           
static int FILE_ROLE_NONE
           
static int FILE_ROLE_SKEL
           
static int FILE_ROLE_STUB
           
static java.lang.String[] FILE_ROLE_SUFFIX
           
static int FILE_TYPE_C_HEADER
           
static int FILE_TYPE_C_SOURCE
           
static int FILE_TYPE_CXX_HEADER
           
static int FILE_TYPE_CXX_SOURCE
           
static java.lang.String[] FILE_TYPE_EXTENSION
           
static int FILE_TYPE_MAX
           
static int FILE_TYPE_MIN
           
static int FILE_TYPE_NONE
           
 
Constructor Summary
Cxx()
           
 
Method Summary
static java.lang.String argComment(Argument arg)
          convert an argument to a comment indicating the mode and perhaps the type.
static void beginExternCRegion(LanguageWriterForCxx writer)
          begin a region of method calls with C linkage
static void closeUCxxNamespace(LanguageWriterForCxx writer)
           
static java.lang.String constCast(java.lang.String newtype, java.lang.String arg)
          generate a constCast
static LanguageWriterForCxx createHeader(Symbol symbol, int role, java.lang.String filegroup)
          Create an empty header file and return the language writer to create subsequent content.
static LanguageWriterForCxx createSource(Symbol symbol, int role, java.lang.String filegroup)
          Create an empty source file and return the language writer to create subsequent content.
static void endExternCRegion(LanguageWriterForCxx writer)
          end region of method calls with C linkage
static void generateArgumentList(LanguageWriterForCxx writer, Method method, boolean rarrays)
           
static java.util.Set generateDependencyIncludes(LanguageWriterForCxx writer, Extendable ext, boolean removeSelf)
          Generates include directives for all the extendables that this extendable inherits from.
static java.lang.String generateFilename(java.lang.String symbolName, int role, int ftype)
          Generate the filename associated with a symbol identifier.
static java.lang.String generateFilename(SymbolID id, int role, int ftype)
          Generate the filename associated with a symbol identifier.
static java.lang.String generateFunctionDeclaration(Method m, Extendable d_ext, java.lang.String d_self, boolean isSuper, boolean rarrays)
           
static java.util.Set generateImplHeaderDependencyIncludes(LanguageWriterForCxx writer, Extendable ext, boolean removeSelf)
          Generates include directives for all the extendables that this extendable inherits from for Impls.
static java.util.Set generateImplSourceIncludes(LanguageWriterForCxx writer, Class cls)
          Generates include directives for all the Babel clases used in this Impl.cxx file
static java.util.Set generateIncludes(LanguageWriterForCxx writer, Extendable ext, boolean removeSelf)
          Generates include directives for all the extendables that this extendable inherits from.
static java.lang.String generateInitialization(Method m, Extendable d_ext, java.lang.String d_self)
           
static void generateInlineMethodSignature(LanguageWriterForCxx writer, Method method, java.lang.String altcomment, int role, boolean isSuper, boolean rarrays)
           
static java.lang.String generateIORCall(Method m, Extendable d_ext, java.lang.String d_self, boolean isSuper, boolean rarrays)
           
static void generateMethodSignature(LanguageWriterForCxx writer, Method method, java.lang.String altcomment, int role, boolean rarrays)
           
static java.lang.String generatePostIORCall(Method m, Extendable d_ext, java.lang.String d_self, boolean isSuper, boolean rarrays)
           
static java.lang.String generatePreIORCall(Method m, Extendable d_ext, java.lang.String d_self, boolean isSuper, boolean rarrays)
          Function generates argument initialization prior to IOR call.
static java.lang.String generateRoleDescription(SymbolID id, int role)
          Generate the role description associated with the symbol identifier and the specified role of the file.
static java.util.Set generateSourceIncludes(LanguageWriterForCxx writer, Extendable ext)
          Generates include directives for all the Babel clases used in this Stub .cxx file
static void generateThrowsList(LanguageWriterForCxx writer, Method method, boolean canThrowNullIORException)
           
static java.lang.String generateThrowsList(Method method, boolean canThrowNullIORException)
           
static java.lang.String getArgumentString(Argument arg, boolean rarrays)
          Generate a C++ argument string for the specified sidl argument.
static java.lang.String getCxxString(Type type, boolean rarrays)
          Convert the type to a Cxx representation in string form
static java.lang.String getEnumName(SymbolID id)
          Convert a sidl enumerated type into its symbol name, which is just the colon separated symbol name
static java.lang.String getFileExtension(int ftype)
          Returns the appropriate file extension String based on the file type, prepended with the period (e.g., ".hxx").
static java.lang.String getFileSuffix(int role)
          Returns the appropriate String suffix associated with the specified role.
static java.lang.String getImplSymbolName(SymbolID id, java.lang.String postfix)
          Convert a symbol name into its C++ identifier.
static java.lang.String getImplSymbolNameWithoutLeadingColons(SymbolID id, java.lang.String postfix)
          Convert a symbol name into its C++ identifier.
static java.lang.String getIORCall(java.lang.String objName, Type t)
           
static java.lang.String getLocalIOR(Type t)
           
static java.lang.String getMethodImplName(SymbolID id, java.lang.String methodName)
          Generate the impl method's name.
static java.lang.String getMethodSkelName(SymbolID id, java.lang.String methodName)
          Generate the skel method's name.
static java.lang.String getMethodStubName(SymbolID id, java.lang.String methodName, boolean isSuper)
          Generate the stub method's name.
static java.lang.String getObjectName(SymbolID id)
          Convert a sidl symbol name into its object name -- for the purposes of this package that means convert it into its typedef object name.
static java.lang.String getRarrayReturnString(Type type)
          Generate a Cxx return string for the specified sidl type.
static java.lang.String getReturnString(Type type)
          Generate a Cxx return string for the specified sidl type.
static java.lang.String getSymbolName(SymbolID id)
           
static java.lang.String getSymbolName(SymbolID id, java.lang.String postfix)
          Convert a symbol name into its C++ identifier.
static java.lang.String getSymbolNameWithoutLeadingColons(SymbolID id, java.lang.String postfix)
           
static boolean inlineStub(Method m)
          Determines if the stub function should be inlined based on the simplicity of the arguments and return type.
static void nestImplPackagesInNamespaces(LanguageWriterForCxx writer, Symbol symbol)
          Generate a the namespaces in which the C++ class is nested.
static void nestPackagesInNamespaces(LanguageWriterForCxx writer, Symbol symbol)
          Generate a the namespaces in which the C++ class is nested.
static void nestPackagesInNamespaces(LanguageWriterForCxx writer, SymbolID symbolid)
          Generate a the namespaces in which the C++ class is nested.
static void openUCxxNamespace(LanguageWriterForCxx writer)
          Opens ucxx namespace
static java.lang.String prependGlobalUCxx()
           
static java.lang.String prependLocalUCxx()
           
static java.lang.String reinterpretCast(java.lang.String newtype, java.lang.String arg)
          generate a reinterpretCast
static void unnestImplPackagesInNamespaces(LanguageWriterForCxx writer, Symbol symbol)
          Close the namespaces in which the C++ class is nested.
static void unnestPackagesInNamespaces(LanguageWriterForCxx writer, Symbol symbol)
          Close the namespaces in which the C++ class is nested.
static void unnestPackagesInNamespaces(LanguageWriterForCxx writer, SymbolID symbolid)
          Close the namespaces in which the C++ class is nested.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FILE_ROLE_MIN

public static final int FILE_ROLE_MIN
See Also:
Constant Field Values

FILE_ROLE_MAX

public static final int FILE_ROLE_MAX
See Also:
Constant Field Values

FILE_ROLE_NONE

public static final int FILE_ROLE_NONE
See Also:
Constant Field Values

FILE_ROLE_IMPL

public static final int FILE_ROLE_IMPL
See Also:
Constant Field Values

FILE_ROLE_SKEL

public static final int FILE_ROLE_SKEL
See Also:
Constant Field Values

FILE_ROLE_STUB

public static final int FILE_ROLE_STUB
See Also:
Constant Field Values

FILE_ROLE_SUFFIX

public static final java.lang.String[] FILE_ROLE_SUFFIX

FILE_TYPE_MIN

public static final int FILE_TYPE_MIN
See Also:
Constant Field Values

FILE_TYPE_MAX

public static final int FILE_TYPE_MAX
See Also:
Constant Field Values

FILE_TYPE_NONE

public static final int FILE_TYPE_NONE
See Also:
Constant Field Values

FILE_TYPE_CXX_HEADER

public static final int FILE_TYPE_CXX_HEADER
See Also:
Constant Field Values

FILE_TYPE_CXX_SOURCE

public static final int FILE_TYPE_CXX_SOURCE
See Also:
Constant Field Values

FILE_TYPE_C_HEADER

public static final int FILE_TYPE_C_HEADER
See Also:
Constant Field Values

FILE_TYPE_C_SOURCE

public static final int FILE_TYPE_C_SOURCE
See Also:
Constant Field Values

FILE_TYPE_EXTENSION

public static final java.lang.String[] FILE_TYPE_EXTENSION
Constructor Detail

Cxx

public Cxx()
Method Detail

getFileSuffix

public static java.lang.String getFileSuffix(int role)
Returns the appropriate String suffix associated with the specified role.

Parameters:
role - the int associated with the role of the file to differentiate skeletons, stubs, impls, etc.

getFileExtension

public static java.lang.String getFileExtension(int ftype)
Returns the appropriate file extension String based on the file type, prepended with the period (e.g., ".hxx").

Parameters:
ftype - the int associated with the type of the file to differentiate between header and source

generateFilename

public static java.lang.String generateFilename(SymbolID id,
                                                int role,
                                                int ftype)
Generate the filename associated with a symbol identifier.
  1. Replaces the "." scope separators in the symbol by underscores
  2. Appends a "_" + suffix, if appropriate
  3. Appends the appropriate extension

Parameters:
id - the SymbolID of the Symbol
role - the int associated with the role of the file to differentiate skeletons, stubs, impls, etc.
ftype - the int associated with the type of the file to differentiate between header and source When the --generate-subdirs and --short-file-names options are used simultaneously, the generated file names will not include the package names of the packages containing the symbol whose SymbolID is passed as an argument. Thus, either long or short names must be used in all clients or servers that have interdependencies; mixing short and long names will result in compile and/or runtime errors.

generateFilename

public static java.lang.String generateFilename(java.lang.String symbolName,
                                                int role,
                                                int ftype)
Generate the filename associated with a symbol identifier.
  1. Replaces the "." scope separators in the symbol by underscores
  2. Appends a "_" + suffix, if appropriate
  3. Appends the appropriate extension

Parameters:
symbolName - the stringified name of the Symbol
role - the int associated with the role of the file to differentiate skeletons, stubs, impls, etc.
ftype - the int associated with the type of the file to differentiate between header and source

generateRoleDescription

public static java.lang.String generateRoleDescription(SymbolID id,
                                                       int role)
Generate the role description associated with the symbol identifier and the specified role of the file.

Parameters:
id - the SymbolID of the Symbol
role - the int associated with the role of the file to differentiate skeletons, stubs, impls, etc.

createHeader

public static LanguageWriterForCxx createHeader(Symbol symbol,
                                                int role,
                                                java.lang.String filegroup)
                                         throws CodeGenerationException
Create an empty header file and return the language writer to create subsequent content.

Parameters:
symbol - the SymbolID of the Symbol
role - the int identifying the role of the file to differentiate skeletons, stubs, impls, etc.
filegroup - a String to associate the file with for possible makefile generation
Throws:
CodeGenerationException

createSource

public static LanguageWriterForCxx createSource(Symbol symbol,
                                                int role,
                                                java.lang.String filegroup)
                                         throws CodeGenerationException
Create an empty source file and return the language writer to create subsequent content.

Parameters:
symbol - the SymbolID of the Symbol
role - the int identifying the role of the file to differentiate skeletons, stubs, impls, etc.
filegroup - a String to associate the file with for possible makefile generation
Throws:
CodeGenerationException

nestPackagesInNamespaces

public static void nestPackagesInNamespaces(LanguageWriterForCxx writer,
                                            Symbol symbol)
Generate a the namespaces in which the C++ class is nested. Increase the tab levels in the language writer appropriately.

Parameters:
writer - the language writer for C++
symbol - the symbol begin written to this file, containing the heirarchy of packages to which it belongs.
See Also:
unnestPackagesInNamespaces(gov.llnl.babel.backend.writers.LanguageWriterForCxx, gov.llnl.babel.symbols.Symbol)

unnestPackagesInNamespaces

public static void unnestPackagesInNamespaces(LanguageWriterForCxx writer,
                                              Symbol symbol)
Close the namespaces in which the C++ class is nested. Decrease the tab levels in the language writer appropriately.

Parameters:
writer - the language writer for C++
symbol - the symbol begin written to this file, containing the heirarchy of packages to which it belongs.
See Also:
nestPackagesInNamespaces(gov.llnl.babel.backend.writers.LanguageWriterForCxx, gov.llnl.babel.symbols.Symbol)

nestImplPackagesInNamespaces

public static void nestImplPackagesInNamespaces(LanguageWriterForCxx writer,
                                                Symbol symbol)
Generate a the namespaces in which the C++ class is nested. Increase the tab levels in the language writer appropriately.

Parameters:
writer - the language writer for C++
symbol - the symbol begin written to this file, containing the heirarchy of packages to which it belongs.
See Also:
unnestPackagesInNamespaces(gov.llnl.babel.backend.writers.LanguageWriterForCxx, gov.llnl.babel.symbols.Symbol)

unnestImplPackagesInNamespaces

public static void unnestImplPackagesInNamespaces(LanguageWriterForCxx writer,
                                                  Symbol symbol)
Close the namespaces in which the C++ class is nested. Decrease the tab levels in the language writer appropriately.

Parameters:
writer - the language writer for C++
symbol - the symbol begin written to this file, containing the heirarchy of packages to which it belongs.
See Also:
nestPackagesInNamespaces(gov.llnl.babel.backend.writers.LanguageWriterForCxx, gov.llnl.babel.symbols.Symbol)

nestPackagesInNamespaces

public static void nestPackagesInNamespaces(LanguageWriterForCxx writer,
                                            SymbolID symbolid)
Generate a the namespaces in which the C++ class is nested. Increase the tab levels in the language writer appropriately.

Parameters:
writer - the language writer for C++
symbolid - the symbol begin written to this file, containing the heirarchy of packages to which it belongs.
See Also:
unnestPackagesInNamespaces(gov.llnl.babel.backend.writers.LanguageWriterForCxx, gov.llnl.babel.symbols.Symbol)

unnestPackagesInNamespaces

public static void unnestPackagesInNamespaces(LanguageWriterForCxx writer,
                                              SymbolID symbolid)
Close the namespaces in which the C++ class is nested. Decrease the tab levels in the language writer appropriately.

Parameters:
writer - the language writer for C++
symbolid - the symbol begin written to this file, containing the heirarchy of packages to which it belongs.
See Also:
nestPackagesInNamespaces(gov.llnl.babel.backend.writers.LanguageWriterForCxx, gov.llnl.babel.symbols.Symbol)

beginExternCRegion

public static void beginExternCRegion(LanguageWriterForCxx writer)
begin a region of method calls with C linkage

Parameters:
writer - languageWriter for the file

endExternCRegion

public static void endExternCRegion(LanguageWriterForCxx writer)
end region of method calls with C linkage

Parameters:
writer - languageWriter for the file

getSymbolName

public static java.lang.String getSymbolName(SymbolID id,
                                             java.lang.String postfix)
Convert a symbol name into its C++ identifier. This method replaces the "." scope separators in the symbol by "::".

Parameters:
id - the SymbolID of the Symbol. & @param postfix an optional postfix for the class itself

getImplSymbolName

public static java.lang.String getImplSymbolName(SymbolID id,
                                                 java.lang.String postfix)
Convert a symbol name into its C++ identifier. This method replaces the "." scope separators in the symbol by "::".

Parameters:
id - the SymbolID of the Symbol. & @param postfix an optional postfix for the class itself

getImplSymbolNameWithoutLeadingColons

public static java.lang.String getImplSymbolNameWithoutLeadingColons(SymbolID id,
                                                                     java.lang.String postfix)
Convert a symbol name into its C++ identifier. This method replaces the "." scope separators in the symbol by "::".

Parameters:
id - the SymbolID of the Symbol.
postfix - an optional postfix for the class itself

getSymbolName

public static java.lang.String getSymbolName(SymbolID id)

getSymbolNameWithoutLeadingColons

public static java.lang.String getSymbolNameWithoutLeadingColons(SymbolID id,
                                                                 java.lang.String postfix)
See Also:
getSymbolName(gov.llnl.babel.symbols.SymbolID, java.lang.String)

getEnumName

public static java.lang.String getEnumName(SymbolID id)
Convert a sidl enumerated type into its symbol name, which is just the colon separated symbol name

Parameters:
id - the SymbolID of the Symbol.

getObjectName

public static java.lang.String getObjectName(SymbolID id)
Convert a sidl symbol name into its object name -- for the purposes of this package that means convert it into its typedef object name. The typedef name is the sidl symbol name with the "." scope separators replaced by "::".

Parameters:
id - the SymbolID of the Symbol.

argComment

public static java.lang.String argComment(Argument arg)
convert an argument to a comment indicating the mode and perhaps the type.

Parameters:
arg -
Returns:
either a comment string

reinterpretCast

public static java.lang.String reinterpretCast(java.lang.String newtype,
                                               java.lang.String arg)
generate a reinterpretCast

Parameters:
newtype - the new type to cast to
arg - the variable to cast
Returns:
string that properly declares the cast

constCast

public static java.lang.String constCast(java.lang.String newtype,
                                         java.lang.String arg)
generate a constCast

Parameters:
newtype - the new type to cast to
arg - the variable to cast
Returns:
string that properly declares the cast

openUCxxNamespace

public static void openUCxxNamespace(LanguageWriterForCxx writer)
Opens ucxx namespace


closeUCxxNamespace

public static void closeUCxxNamespace(LanguageWriterForCxx writer)

prependGlobalUCxx

public static java.lang.String prependGlobalUCxx()

prependLocalUCxx

public static java.lang.String prependLocalUCxx()

getCxxString

public static java.lang.String getCxxString(Type type,
                                            boolean rarrays)
                                     throws CodeGenerationException
Convert the type to a Cxx representation in string form

Throws:
CodeGenerationException

getReturnString

public static java.lang.String getReturnString(Type type)
                                        throws CodeGenerationException
Generate a Cxx return string for the specified sidl type. Most of the sidl return strings are listed in the static structures defined at the start of the class. Symbol types and array types require special processing. This version will treat all rarrays as sidl arrays

Parameters:
type - the Type whose return string is being built.
Throws:
CodeGenerationException

getRarrayReturnString

public static java.lang.String getRarrayReturnString(Type type)
                                              throws CodeGenerationException
Generate a Cxx return string for the specified sidl type. Most of the sidl return strings are listed in the static structures defined at the start of the class. Symbol types and array types require special processing. This one turns on the possibility of rarrays

Parameters:
type - the Type whose return string is being built.
Throws:
CodeGenerationException

getArgumentString

public static java.lang.String getArgumentString(Argument arg,
                                                 boolean rarrays)
                                          throws CodeGenerationException
Generate a C++ argument string for the specified sidl argument. The formal argument name is not included.

Throws:
CodeGenerationException

getIORCall

public static java.lang.String getIORCall(java.lang.String objName,
                                          Type t)

getLocalIOR

public static java.lang.String getLocalIOR(Type t)

getMethodImplName

public static java.lang.String getMethodImplName(SymbolID id,
                                                 java.lang.String methodName)
Generate the impl method's name.

Parameters:
id - the SymbolID of the Symbol associated with the method.
methodName - the String version of the name of the method whose impl name is being built.

getMethodSkelName

public static java.lang.String getMethodSkelName(SymbolID id,
                                                 java.lang.String methodName)
Generate the skel method's name.

Parameters:
id - the SymbolID of the Symbol associated with the method.
methodName - the String version of the name of the method whose skel name is being built.

getMethodStubName

public static java.lang.String getMethodStubName(SymbolID id,
                                                 java.lang.String methodName,
                                                 boolean isSuper)
Generate the stub method's name.

Parameters:
id - the SymbolID of the Symbol associated with the method.
methodName - the String version of the name of the method whose impl name is being built.

generateDependencyIncludes

public static java.util.Set generateDependencyIncludes(LanguageWriterForCxx writer,
                                                       Extendable ext,
                                                       boolean removeSelf)
                                                throws CodeGenerationException
Generates include directives for all the extendables that this extendable inherits from.

Parameters:
writer - Language writer for C++
ext - Extendible (Class or Interface) to generate dependencies
removeSelf - True if called from a Stub generator since this would cause an inclusion loop in Stub.h False if called from an impl generator since the impl may need to know about the stub.
Throws:
CodeGenerationException

generateImplHeaderDependencyIncludes

public static java.util.Set generateImplHeaderDependencyIncludes(LanguageWriterForCxx writer,
                                                                 Extendable ext,
                                                                 boolean removeSelf)
                                                          throws CodeGenerationException
Generates include directives for all the extendables that this extendable inherits from for Impls. For Impl header files only

Parameters:
writer - Language writer for C++
ext - Extendible (Class or Interface) to generate dependencies
removeSelf - True if called from a Stub generator since this would cause an inclusion loop in Stub.h False if called from an impl generator since the impl may need to know about the stub.
Throws:
CodeGenerationException

generateSourceIncludes

public static java.util.Set generateSourceIncludes(LanguageWriterForCxx writer,
                                                   Extendable ext)
                                            throws CodeGenerationException
Generates include directives for all the Babel clases used in this Stub .cxx file

Parameters:
writer - Language writer for C++
ext - Extendible (Class or Interface) to generate dependencies
Throws:
CodeGenerationException

generateImplSourceIncludes

public static java.util.Set generateImplSourceIncludes(LanguageWriterForCxx writer,
                                                       Class cls)
                                                throws CodeGenerationException
Generates include directives for all the Babel clases used in this Impl.cxx file

Parameters:
writer - Language writer for C++
ext - Extendible (Class or Interface) to generate dependencies
Throws:
CodeGenerationException

generateIncludes

public static java.util.Set generateIncludes(LanguageWriterForCxx writer,
                                             Extendable ext,
                                             boolean removeSelf)
                                      throws CodeGenerationException
Generates include directives for all the extendables that this extendable inherits from.

Parameters:
writer - Language writer for C++
ext - Extendible (Class or Interface) to generate dependencies
removeSelf - True if called from a Stub generator since this would cause an inclusion loop in Stub.h False if called from an impl generator since the impl may need to know about the stub.
Throws:
CodeGenerationException

generateMethodSignature

public static void generateMethodSignature(LanguageWriterForCxx writer,
                                           Method method,
                                           java.lang.String altcomment,
                                           int role,
                                           boolean rarrays)
                                    throws CodeGenerationException
Throws:
CodeGenerationException

generateInlineMethodSignature

public static void generateInlineMethodSignature(LanguageWriterForCxx writer,
                                                 Method method,
                                                 java.lang.String altcomment,
                                                 int role,
                                                 boolean isSuper,
                                                 boolean rarrays)
                                          throws CodeGenerationException
Throws:
CodeGenerationException

generateArgumentList

public static void generateArgumentList(LanguageWriterForCxx writer,
                                        Method method,
                                        boolean rarrays)
                                 throws CodeGenerationException
Throws:
CodeGenerationException

generateThrowsList

public static void generateThrowsList(LanguageWriterForCxx writer,
                                      Method method,
                                      boolean canThrowNullIORException)

generateThrowsList

public static java.lang.String generateThrowsList(Method method,
                                                  boolean canThrowNullIORException)

inlineStub

public static boolean inlineStub(Method m)
Determines if the stub function should be inlined based on the simplicity of the arguments and return type. The logic is that the stub function should be inlined unless it throws an exception or one or more of it's arguments or return type is: bool, dcomplex, fcomplex, string, object out/inout, or array out/inout. RETURNS: True if babel method should be inlined


generateFunctionDeclaration

public static java.lang.String generateFunctionDeclaration(Method m,
                                                           Extendable d_ext,
                                                           java.lang.String d_self,
                                                           boolean isSuper,
                                                           boolean rarrays)
                                                    throws CodeGenerationException
Throws:
CodeGenerationException

generateInitialization

public static java.lang.String generateInitialization(Method m,
                                                      Extendable d_ext,
                                                      java.lang.String d_self)
                                               throws CodeGenerationException
Throws:
CodeGenerationException

generatePreIORCall

public static java.lang.String generatePreIORCall(Method m,
                                                  Extendable d_ext,
                                                  java.lang.String d_self,
                                                  boolean isSuper,
                                                  boolean rarrays)
                                           throws CodeGenerationException
Function generates argument initialization prior to IOR call.

Throws:
CodeGenerationException

generateIORCall

public static java.lang.String generateIORCall(Method m,
                                               Extendable d_ext,
                                               java.lang.String d_self,
                                               boolean isSuper,
                                               boolean rarrays)
                                        throws CodeGenerationException
Throws:
CodeGenerationException

generatePostIORCall

public static java.lang.String generatePostIORCall(Method m,
                                                   Extendable d_ext,
                                                   java.lang.String d_self,
                                                   boolean isSuper,
                                                   boolean rarrays)
                                            throws CodeGenerationException
Throws:
CodeGenerationException