gov.llnl.babel.backend
Class IOR

java.lang.Object
  extended by gov.llnl.babel.backend.IOR

public class IOR
extends java.lang.Object

Class IOR contains common SIDL to IOR translation routines shared by the backend code generators. This class simply collects many common IOR language bindings into one place.


Nested Class Summary
static class IOR.CompareMethods
           
 
Field Summary
static int BASE_EPV
           
static int CAST
          The index of the built-in method for casting.
static int CLASS_BUILT_IN_METHODS
          The number of built-in methods that a class has.
static int CONSTRUCTOR
          The index of the built-in method for constructing a class instance
static int CONSTRUCTOR2
          The index of the special built-in method for constructing a class instance with user passed in private data
static int CONTRACTS
          The index of the built-in method for contract checking.
static java.lang.String D_CSTATS
           
static java.lang.String D_DATA
           
static java.lang.String D_ENABLED
           
static java.lang.String D_EST_INTERVAL
           
static java.lang.String D_EXEC_INV_TIME
           
static java.lang.String D_EXEC_METH_TIME
           
static java.lang.String D_EXEC_POST_TIME
           
static java.lang.String D_EXEC_PRE_TIME
           
static java.lang.String D_FAILURES
           
static java.lang.String D_HOOKS
           
static java.lang.String D_INV_COMPLEXITY
           
static java.lang.String D_IS_STATIC
           
static java.lang.String D_METHOD_CSTATS
           
static java.lang.String D_NONVIO_EXCEPTS
           
static java.lang.String D_POST_COMPLEXITY
           
static java.lang.String D_PRE_COMPLEXITY
           
static java.lang.String D_SUCCESSES
           
static java.lang.String D_TRIES
           
static java.lang.String DEFAULT_OPTION_HOOKS
          Some defaults.
static java.lang.String DEFAULT_STATS_FN
           
static int DELETE
          The index of the built-in method for deleting an object.
static int DESTRUCTOR
          The index of the built-in method for destructing a class instance
static int DUMP_STATS
          The index of the built-in method for dumping contract checking statistics.
static int EPV_ARG
           
static int EPV_MINE
           
static int EPV_PARENT
           
static int EPV_REMOTE
           
static int EPV_STATIC
           
static int EXEC
          The index of the built-in method for executing a named method.
static java.lang.String FUND_EXCEPTION_CALL_PREFIX
           
static java.lang.String GENERIC_POST_SUFFIX
           
static java.lang.String GENERIC_PRE_SUFFIX
           
static int GETURL
          The index of the built-in method for getting the object's URL.
static int HOOKS
          The index of the built-in method for enabling/disabling hooks execution.
static int INTERFACE_BUILT_IN_METHODS
          The number of built-in methods that an interface has.
static java.lang.String INVARIANT_CALL_PREFIX
           
static int ISREMOTE
          The index of the built-in method for determining if an object is remote.
static int LOAD
          The index of the built-in method for initializing a class (before first instance, or static method is called).
static int MAJOR_VERSION
           
static int MINOR_VERSION
           
static java.lang.String POSTCONDITION_CALL_PREFIX
           
static java.lang.String PRECONDITION_CALL_PREFIX
           
static int PUBLIC_EPV
           
static int RADDREF
          The index of the built-in method for determining if an object is local.
static java.lang.String S_CSTATS
           
static java.lang.String S_DUMP_FPTR
           
static java.lang.String s_static_suffix
           
static java.lang.String S_TRACE_FPTR
           
static int SET_CONTRACTS
           
static int SET_HOOKS
           
static int SET_PUBLIC
           
 
Constructor Summary
IOR()
           
 
Method Summary
static java.lang.String classToInterfacePtr(Class cls, Extendable e, java.lang.String self)
          Generate an expression to obtain a pointer to an interface or subclass from an object pointer.
static void declareEPVsAsArgs(LanguageWriterForC lw, Class cls, Context context, boolean first)
           
static void generateArgumentList(LanguageWriterForC writer, Context context, java.lang.String self, boolean is_interface, SymbolID id, Method method, boolean in_signature, boolean add_type, boolean obj_ptr, boolean do_throws, boolean do_return, boolean do_indices, boolean do_rarrays)
          Generate the method's argument list.
static void generateArgumentList(LanguageWriterForC writer, Context context, java.lang.String self, boolean is_interface, SymbolID id, Method method, boolean in_signature, boolean add_type, boolean obj_ptr, java.lang.String exc_var, boolean do_return, boolean do_indices, boolean do_rarrays, boolean isExec)
          Generate the method's argument list.
static void generateArguments(LanguageWriterForC writer, Context context, java.lang.String self, java.util.List args, boolean isStatic, boolean doThrows, Type returnType, boolean addType, boolean objPtr, boolean doRaw, boolean deref_inout)
          Generate the specified argument list.
static void generateArguments(LanguageWriterForC writer, Context context, java.lang.String self, java.util.List args, boolean isStatic, java.lang.String excVar, Type returnType, boolean addType, boolean objPtr, boolean doRaw, boolean deref_inout, boolean isExec)
          Generate the specified argument list.
static boolean generateBaseEPVAttr(Extendable ext, Context context)
          Return TRUE if the base EPV attribute needs to be supported; FALSE otherwise.
static void generateCastFunction(Class cls, java.lang.String self, LanguageWriterForC writer, boolean rmi, boolean addref)
          Generate the cast function for a class.
static boolean generateContractChecks(Extendable ext, Context context)
          Return TRUE if contract checks are supposed to be generated.
static boolean generateContractEPVs(Extendable ext, Context context)
          Return TRUE if the contract-related EPVs are supposed to be generated.
static void generateControlNStats(LanguageWriterForC writer, Extendable ext, Context context)
          Generate the interface contract enforcement controls and statistics structures.
static boolean generateHookEPVs(Extendable ext, Context context)
          Return TRUE if the hooks-related EPVs are supposed to be generated.
static boolean generateHookMethods(Extendable ext, Context context)
          Return TRUE if hook methods are to be generated; FALSE otherwise.
static void generateStaticEPVVariables(LanguageWriterForC lw, Extendable ext, boolean has_static, boolean is_remote, int setType)
          Generate the static EPV variables for the specified extendable and EPV type.
static java.lang.String getArgumentString(Argument arg, Context context)
          Generate an argument string for the specified SIDL argument.
static java.lang.String getArgumentString(Argument arg, Context context, boolean objPtr, boolean inStub, boolean isExec)
          Generate a C argument string for the specified SIDL argument.
static java.lang.String getArgumentString(Method method, Context context)
          Generate a string containing only the specified method's arguments, including exceptions, if any.
static java.lang.String getArgumentWithFormal(Argument arg, Context context)
          Generate an argument string with the formal argument name.
static java.lang.String getArgumentWithFormal(Argument arg, Context context, boolean objPtr, boolean inStub, boolean isExec)
          Generate a C argument string with the formal argument name.
static java.lang.String getArrayName(int intType)
          Get the sidl array name for a given type.
static java.lang.String getArrayName(SymbolID id)
          Convert a SIDL symbol into its array representation, which is "struct " followed by the symbol name followed by "__array".
static java.lang.String getArrayNameForFunctions(int intType)
          Gets the sidl array name for a given type, for use in C functions.
static java.lang.String getArrayNameWithoutAsterix(int intType)
          Gets the sidl array name for a given type, and removes the trailing asterix.
static java.lang.String getBuiltinComment(int index)
          Return the comment for the specified built-in method.
static Method getBuiltinMethod(int index, SymbolID id, Context context)
          Return the method description of a particular non-static built-in method.
static Method getBuiltinMethod(int index, SymbolID id, Context context, boolean sVersion)
          Return the method description of a particular built-in method.
static java.lang.String getBuiltinName(int index)
          Return the normal name of the built-in method.
static java.lang.String getBuiltinName(int index, boolean sVersion)
          Return the name of the specified version of the built-in method.
static java.lang.String getCallLoadName(SymbolID id)
          Convert a sidl symbol into the name of its associated _call_load method which is the symbol name appended with "__call_load"
static java.lang.String getCast(Method method, java.lang.String self, Context context)
          Generate a cast string for the specified method.
static java.lang.String getClassType()
          Return the name of the type of the implicit base class type.
static java.lang.String getControlsNStatsStruct(SymbolID id)
          Convert a SIDL symbol into its control structure.
static java.lang.String getEnumName(SymbolID id)
          Convert a SIDL enumerated type into its symbol name, which is "enum " followed by the symbol name followed by "__enum".
static java.lang.String getEnumValueSymbol(SymbolID id, java.lang.String value)
          Return the enum value symbol for a particular enum type and string.
static java.lang.String getEPVName(SymbolID id)
          Convert a SIDL symbol into its method entry point vector (EPV) name.
static java.lang.String getEPVPrefix(int epvType)
          Return the static EPV prefix string or, if invalid, the one with the minimum type value.
static java.lang.String getEPVType(int type)
          Return the type associated with the specified EPV type index, or an empty string if the index is out of range.
static java.lang.String getEPVVar(int type)
          Return the standard method entry point vector (EPV) variable.
static java.lang.String getExceptionFundamentalType()
          Return the name of the type of the implicit exception argument; namely, sidl_BaseInterface__object.
static java.lang.String getExternalFunc(SymbolID id)
          Get the name of the function that returns the structure of external entry points.
static java.lang.String getExternalName(SymbolID id)
          Get struct name for extern entry point structure.
static java.lang.String getExternalVariableName(SymbolID id)
          Get struct name for extern entry point variable.
static java.util.Set getFCastSymbolIDs(Extendable ext)
          Returns a Set containing all the Symbol IDs that need FCast methods generated for them in this Extendable.
static java.util.Set getFConnectSymbolIDs(Extendable ext)
          Returns a Set containing all the Symbol IDs that need FConnect methods generated for them in this Extendable.
static java.lang.String getFiniName(SymbolID id)
          Convert a SIDL symbol into the name of its associated fini method, which is the symbol name appended with "__fini".
static java.lang.String getGetEPVsName(SymbolID id)
          Convert a SIDL symbol into its method that returns initialized epv pointers.
static java.lang.String getHaveLockStaticGlobalsMacroName()
          A CPP macro name
static java.lang.String getHeaderFile(SymbolID id)
          Generate the header filename associated with a symbol identifier.
static java.lang.String getInitEPVName(SymbolID id)
          Convert a SIDL symbol into the name of its associated init method, which is the symbol name appended with "__init".
static java.lang.String getInitialValue(Type type)
          Gives an initial value based on the type of the argument
static java.lang.String getInitName(SymbolID id)
          Convert a SIDL symbol into the name of its associated init method, which is the symbol name appended with "__init".
static java.lang.String getInterfaceType()
          Return the name of the type of the base interface type.
static java.lang.String getInvariantExceptType()
           
static java.lang.String getInvDescDataName(SymbolID id)
          Return the name of the static variable associated with the invariant description data.
static java.lang.String getInvDescDataStruct(SymbolID id)
          Return the name of the invariant description data structure name.
static java.lang.String getLocalStaticsName(SymbolID id)
          Convert a SIDL symbol into the name of its associated local statics method.
static java.lang.String getLockStaticGlobalsMacroName()
          A CPP Macro Name
static java.lang.String getMethodControlsNStatsStruct(SymbolID id)
          Convert a SIDL symbol into its method control structure.
static java.lang.String getMethodDescDataName(SymbolID id)
          Return the name of the static variable associated with the method description data.
static java.lang.String getMethodDescDataStruct(SymbolID id)
          Return the name of the method description data structure name.
static java.lang.String getMethodIndex(SymbolID id, Method meth)
          Return the method index constant name associated with the specified method.
static java.lang.String getMethodIndex(SymbolID id, java.lang.String lit)
          Return the method index constant name associated with the specified literal.
static java.lang.String getMethodName(SymbolID id, java.lang.String name)
          Returns the name of the built-in method, prepending "ior_" and the name of the symbol.
static java.lang.String getNewName(SymbolID id)
          Convert a SIDL symbol into the name of its associated constructor, which is the symbol name appended with "__createObject".
static java.lang.String getObjectName(java.lang.String fqn)
          Convert a SIDL interface or class into its symbol name, which is "struct " followed by the symbol name followed by "__object".
static java.lang.String getObjectName(SymbolID id)
          Convert a SIDL interface or class into its symbol name, which is "struct " followed by the symbol name followed by "__object".
static java.lang.String getPostconditionExceptType()
           
static java.lang.String getPostEPVName(SymbolID id)
          Convert a SIDL symbol into its Post hooks method entry point vector (EPV) name.
static java.lang.String getPostSEPVName(SymbolID id)
          Convert a SIDL symbol into its post hooks static entry point vector (SEPV) name.
static java.lang.String getPreconditionExceptType()
           
static java.lang.String getPreEPVName(SymbolID id)
          Convert a SIDL symbol into its Pre hooks method entry point vector (EPV) name.
static java.lang.String getPreSEPVName(SymbolID id)
          Convert a SIDL symbol into its pre hooks static entry point vector (SEPV) name.
static java.lang.String getRaddRefName(SymbolID id)
          Convert a SIDL symbol into the name of its associated getURL function, which is the symbol name appended with "__getURL".
static java.lang.String getRemoteCastName(SymbolID id)
          Convert a SIDL symbol into the name of its associated remote cast, which is the symbol name appended with "__rmicast".
static java.lang.String getRemoteConnectName(SymbolID id)
          Convert a SIDL symbol into the name of its associated remote connector, which is the symbol name appended with "__connect".
static java.lang.String getRemoteGetURLName(SymbolID id)
          Convert a SIDL symbol into the name of its associated getURL function, which is the symbol name appended with "__getURL".
static java.lang.String getRemoteIsRemoteName(SymbolID id)
          Convert a SIDL symbol into the name of its associated getURL function, which is the symbol name appended with "__getURL".
static java.lang.String getRemoteName(SymbolID id)
          Convert a SIDL symbol into the name of its associated remote constructor, which is the symbol name appended with "__remote".
static java.lang.String getRemoteStructName(SymbolID id)
          Convert a SIDL interface or class into its remote struct name, which is "struct " followed by the symbol name followed by "__remote".
static java.lang.String getReturnString(Type type, Context context)
          Generate a return string for the specified SIDL type.
static java.lang.String getReturnString(Type type, Context context, boolean objPtr, boolean inStub)
          Generate a C return string for the specified SIDL type.
static SymbolID getRuntimeException(Context context)
           
static Symbol getRuntimeExceptionSymbol(Context context)
           
static java.lang.String getSEPVName(SymbolID id)
          Convert a SIDL symbol into its static entry point vector (SEPV) name.
static java.lang.String getSetEPVName(SymbolID id)
          Convert a SIDL symbol into the name of its set EPV method.
static java.lang.String getSetEPVTypeName(int type)
          Returns the name of the set EPV type.
static java.lang.String getSetSEPVName(SymbolID id)
          Convert a SIDL symbol into the name of its set static EPV method.
static java.lang.String getSkelFCastName(SymbolID sourceid, SymbolID targetid)
          Convert a SIDL symbol into the name of its associated remote connector.
static java.lang.String getSkelFConnectName(SymbolID sourceid, SymbolID targetid)
          Convert a SIDL symbol into the name of its associated remote connector.
static java.lang.String getSkelSerializationName(SymbolID extid, SymbolID structid, boolean serialize)
           
static java.lang.String getSourceFile(SymbolID id)
          Generate the source filename associated with a symbol identifier.
static java.lang.String getStaticEPVVariable(SymbolID id, int epvType, int setType)
          Return the name of the specified static EPV variable.
static java.lang.String getStaticsName(SymbolID id)
          Convert a SIDL symbol into the name of its associated statics method, which is the symbol name appended with "__getStaticEPV".
static java.lang.String getStaticTypeOption(SymbolID id, int type)
          Return the static epv type option name.
static java.lang.String getStructName(SymbolID id)
          Convert a SIDL struct into its IOR data type name, which is "struct " followed by the symbol name followed by "__data".
static java.util.Set getStructSymbolIDs(Extendable ext, boolean serialize)
          Returns a Set containing all the Symbol IDs of structs that need serialize/deserialize methods generated for them in this Extendable.
static java.lang.String getSymbolName(java.lang.String name)
          Convert a symbol name into an IOR identifier.
static java.lang.String getSymbolName(SymbolID id)
          Convert a symbol name into an IOR identifier.
static java.lang.String getSymbolType(Symbol sym)
           
static java.lang.String getUnlockStaticGlobalsMacroName()
          A CPP macro name
static java.lang.String getVectorEntry(java.lang.String methodName)
          Generate the name of an entry in the entry point vector or the static entry point vector.
static java.lang.String getVersionName(SymbolID id)
          Convert a SIDL symbol into the name of its associated fini method, which is the symbol name appended with "__fini".
static boolean hasStaticBuiltin(int index)
          Return TRUE if there is a built-in static version of the method; FALSE otherwise.
static boolean isBuiltinBasic(int ind)
          Return TRUE if the index is associated with a basic built-in method, FALSE otherwise.
static boolean isBuiltinContractMeth(int ind)
          Return TRUE if the index is associated with a contract-related built-in method, FALSE otherwise.
static boolean isBuiltinMethod(java.lang.String methodName)
          Return TRUE if the method name is one of the non-static built-in methods, FALSE otherwise.
static boolean isBuiltinMethod(java.lang.String methodName, boolean sVersion)
          Return TRUE if the method name is one of the built-in methods, FALSE otherwise.
static boolean isSIDLSymbol(SymbolID id)
          Return TRUE if the Symbol ID corresponds to a SIDL symbol; FALSE otherwise.
static boolean isSIDLXSymbol(SymbolID id)
          Return TRUE if the Symbol ID corresponds to a SIDLX symbol; FALSE otherwise.
static boolean isUnserializable(Context context, Struct strct)
           
static boolean isUnserializable(Context context, Type t)
           
static void resolveRenamedMethods(Extendable ext, java.util.HashMap renames)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAJOR_VERSION

public static final int MAJOR_VERSION
See Also:
Constant Field Values

MINOR_VERSION

public static final int MINOR_VERSION
See Also:
Constant Field Values

INTERFACE_BUILT_IN_METHODS

public static final int INTERFACE_BUILT_IN_METHODS
The number of built-in methods that an interface has. Builtin methods are implicitly defined methods that are required for the inner workings of the IOR or to support the language bindings. The names of the built-ins are numbers 0...INTERFACE_BUILT_IN_METHODS-1 and are available from the method getBuiltinMethod.

See Also:
getBuiltinMethod(int, gov.llnl.babel.symbols.SymbolID, gov.llnl.babel.Context, boolean), Constant Field Values

CLASS_BUILT_IN_METHODS

public static final int CLASS_BUILT_IN_METHODS
The number of built-in methods that a class has. Builtin methods are implicitly defined methods that are required for the inner workings of the IOR or to support the language bindings. The names of the built-ins are numbers 0...CLASS_BUILT_IN_METHODS-1 and are available from the method getBuiltinMethod.

See Also:
Constant Field Values

CAST

public static final int CAST
The index of the built-in method for casting.

See Also:
Constant Field Values

DELETE

public static final int DELETE
The index of the built-in method for deleting an object.

See Also:
Constant Field Values

EXEC

public static final int EXEC
The index of the built-in method for executing a named method.

See Also:
Constant Field Values

GETURL

public static final int GETURL
The index of the built-in method for getting the object's URL.

See Also:
Constant Field Values

RADDREF

public static final int RADDREF
The index of the built-in method for determining if an object is local.

See Also:
Constant Field Values

ISREMOTE

public static final int ISREMOTE
The index of the built-in method for determining if an object is remote.

See Also:
Constant Field Values

HOOKS

public static final int HOOKS
The index of the built-in method for enabling/disabling hooks execution.

See Also:
Constant Field Values

CONTRACTS

public static final int CONTRACTS
The index of the built-in method for contract checking.

See Also:
Constant Field Values

DUMP_STATS

public static final int DUMP_STATS
The index of the built-in method for dumping contract checking statistics.

See Also:
Constant Field Values

CONSTRUCTOR

public static final int CONSTRUCTOR
The index of the built-in method for constructing a class instance

See Also:
Constant Field Values

CONSTRUCTOR2

public static final int CONSTRUCTOR2
The index of the special built-in method for constructing a class instance with user passed in private data

See Also:
Constant Field Values

DESTRUCTOR

public static final int DESTRUCTOR
The index of the built-in method for destructing a class instance

See Also:
Constant Field Values

LOAD

public static final int LOAD
The index of the built-in method for initializing a class (before first instance, or static method is called).

See Also:
Constant Field Values

FUND_EXCEPTION_CALL_PREFIX

public static java.lang.String FUND_EXCEPTION_CALL_PREFIX

PRECONDITION_CALL_PREFIX

public static java.lang.String PRECONDITION_CALL_PREFIX

POSTCONDITION_CALL_PREFIX

public static java.lang.String POSTCONDITION_CALL_PREFIX

INVARIANT_CALL_PREFIX

public static java.lang.String INVARIANT_CALL_PREFIX

PUBLIC_EPV

public static final int PUBLIC_EPV
See Also:
Constant Field Values

BASE_EPV

public static final int BASE_EPV
See Also:
Constant Field Values

SET_PUBLIC

public static final int SET_PUBLIC
See Also:
Constant Field Values

SET_CONTRACTS

public static final int SET_CONTRACTS
See Also:
Constant Field Values

SET_HOOKS

public static final int SET_HOOKS
See Also:
Constant Field Values

EPV_MINE

public static final int EPV_MINE
See Also:
Constant Field Values

EPV_PARENT

public static final int EPV_PARENT
See Also:
Constant Field Values

EPV_REMOTE

public static final int EPV_REMOTE
See Also:
Constant Field Values

EPV_STATIC

public static final int EPV_STATIC
See Also:
Constant Field Values

EPV_ARG

public static final int EPV_ARG
See Also:
Constant Field Values

GENERIC_PRE_SUFFIX

public static final java.lang.String GENERIC_PRE_SUFFIX
See Also:
Constant Field Values

GENERIC_POST_SUFFIX

public static final java.lang.String GENERIC_POST_SUFFIX
See Also:
Constant Field Values

D_CSTATS

public static final java.lang.String D_CSTATS
See Also:
Constant Field Values

D_DATA

public static final java.lang.String D_DATA
See Also:
Constant Field Values

D_ENABLED

public static final java.lang.String D_ENABLED
See Also:
Constant Field Values

D_HOOKS

public static final java.lang.String D_HOOKS
See Also:
Constant Field Values

D_METHOD_CSTATS

public static final java.lang.String D_METHOD_CSTATS
See Also:
Constant Field Values

D_NONVIO_EXCEPTS

public static final java.lang.String D_NONVIO_EXCEPTS
See Also:
Constant Field Values

D_SUCCESSES

public static final java.lang.String D_SUCCESSES
See Also:
Constant Field Values

D_FAILURES

public static final java.lang.String D_FAILURES
See Also:
Constant Field Values

D_TRIES

public static final java.lang.String D_TRIES
See Also:
Constant Field Values

D_IS_STATIC

public static final java.lang.String D_IS_STATIC
See Also:
Constant Field Values

D_INV_COMPLEXITY

public static final java.lang.String D_INV_COMPLEXITY
See Also:
Constant Field Values

D_PRE_COMPLEXITY

public static final java.lang.String D_PRE_COMPLEXITY
See Also:
Constant Field Values

D_POST_COMPLEXITY

public static final java.lang.String D_POST_COMPLEXITY
See Also:
Constant Field Values

D_EXEC_METH_TIME

public static final java.lang.String D_EXEC_METH_TIME
See Also:
Constant Field Values

D_EXEC_INV_TIME

public static final java.lang.String D_EXEC_INV_TIME
See Also:
Constant Field Values

D_EXEC_PRE_TIME

public static final java.lang.String D_EXEC_PRE_TIME
See Also:
Constant Field Values

D_EXEC_POST_TIME

public static final java.lang.String D_EXEC_POST_TIME
See Also:
Constant Field Values

D_EST_INTERVAL

public static final java.lang.String D_EST_INTERVAL
See Also:
Constant Field Values

S_CSTATS

public static final java.lang.String S_CSTATS
See Also:
Constant Field Values

S_DUMP_FPTR

public static final java.lang.String S_DUMP_FPTR
See Also:
Constant Field Values

S_TRACE_FPTR

public static final java.lang.String S_TRACE_FPTR
See Also:
Constant Field Values

DEFAULT_OPTION_HOOKS

public static final java.lang.String DEFAULT_OPTION_HOOKS
Some defaults.

See Also:
Constant Field Values

DEFAULT_STATS_FN

public static final java.lang.String DEFAULT_STATS_FN
See Also:
Constant Field Values

s_static_suffix

public static final java.lang.String s_static_suffix
See Also:
Constant Field Values
Constructor Detail

IOR

public IOR()
Method Detail

getLockStaticGlobalsMacroName

public static java.lang.String getLockStaticGlobalsMacroName()
A CPP Macro Name


getUnlockStaticGlobalsMacroName

public static java.lang.String getUnlockStaticGlobalsMacroName()
A CPP macro name


getHaveLockStaticGlobalsMacroName

public static java.lang.String getHaveLockStaticGlobalsMacroName()
A CPP macro name


getBuiltinMethod

public static Method getBuiltinMethod(int index,
                                      SymbolID id,
                                      Context context,
                                      boolean sVersion)
                               throws CodeGenerationException
Return the method description of a particular built-in method. This will raise an ArrayIndexOutOfBoundsException if index is less than zero or greater than or equal to the number of built-in methods.

Parameters:
index - the index of the built-in method that is desired. Generally, one of CAST, DELETE, CONSTRUCTOR, or DESTRUCTOR though others possible.
id - the name of the symbol
sVersion - TRUE if the static version is desired; else FALSE
Returns:
a description the method.
Throws:
java.lang.ArrayIndexOutOfBoundsException - this runtime exception is thrown if index is out of bounds.
CodeGenerationException

getBuiltinMethod

public static Method getBuiltinMethod(int index,
                                      SymbolID id,
                                      Context context)
                               throws CodeGenerationException
Return the method description of a particular non-static built-in method. This will raise an ArrayIndexOutOfBoundsException if index is less than zero or greater than or equal to the number of built-in methods.

Parameters:
index - the index of the desired built-in method.
id - the name of the symbol
Returns:
a description the method.
Throws:
java.lang.ArrayIndexOutOfBoundsException - this runtime exception is thrown if index is out of bounds.
CodeGenerationException

hasStaticBuiltin

public static boolean hasStaticBuiltin(int index)
Return TRUE if there is a built-in static version of the method; FALSE otherwise.

Parameters:
index - the index of the desired built-in method.

getBuiltinName

public static java.lang.String getBuiltinName(int index,
                                              boolean sVersion)
Return the name of the specified version of the built-in method.

Parameters:
index - the index of the built-in method that is desired. Generally, one of CAST, DELETE, CONSTRUCTOR, or DESTRUCTOR though others possible.
sVersion - TRUE if the static version is desired; FALSE otherwise.
Throws:
java.lang.ArrayIndexOutOfBoundsException - this runtime exception is thrown if index is out of bounds.

getBuiltinComment

public static java.lang.String getBuiltinComment(int index)
Return the comment for the specified built-in method.

Parameters:
index - the index of the built-in method that is desired. Generally, one of CAST, DELETE, CONSTRUCTOR, or DESTRUCTOR though others possible.
Throws:
java.lang.ArrayIndexOutOfBoundsException - this runtime exception is thrown if index is out of bounds.

getBuiltinName

public static java.lang.String getBuiltinName(int index)
Return the normal name of the built-in method.

Parameters:
index - the index of the desired built-in method.
Throws:
java.lang.ArrayIndexOutOfBoundsException - this runtime exception is thrown if index is out of bounds.

isBuiltinMethod

public static boolean isBuiltinMethod(java.lang.String methodName,
                                      boolean sVersion)
Return TRUE if the method name is one of the built-in methods, FALSE otherwise.

Parameters:
methodName - the name of the method being checked
sVersion - TRUE if the static version is desired; FALSE otherwise.

isBuiltinMethod

public static boolean isBuiltinMethod(java.lang.String methodName)
Return TRUE if the method name is one of the non-static built-in methods, FALSE otherwise.

Parameters:
methodName - the name of the method being checked

isBuiltinBasic

public static boolean isBuiltinBasic(int ind)
Return TRUE if the index is associated with a basic built-in method, FALSE otherwise.


isBuiltinContractMeth

public static boolean isBuiltinContractMeth(int ind)
Return TRUE if the index is associated with a contract-related built-in method, FALSE otherwise.


getVectorEntry

public static java.lang.String getVectorEntry(java.lang.String methodName)
Generate the name of an entry in the entry point vector or the static entry point vector.

Parameters:
methodName - the name of the method that is an element in the entry point vector.

getHeaderFile

public static java.lang.String getHeaderFile(SymbolID id)
Generate the header filename associated with a symbol identifier. Replace the "." scope separators in the symbol by underscores and append the suffix "_IOR.h".


getSourceFile

public static java.lang.String getSourceFile(SymbolID id)
Generate the source filename associated with a symbol identifier. Replace the "." scope separators in the symbol by underscores and append the suffix "_IOR.c".


getSymbolName

public static java.lang.String getSymbolName(SymbolID id)
Convert a symbol name into an IOR identifier. This method replaces the "." scope separators in the symbol by underscores.


getSymbolName

public static java.lang.String getSymbolName(java.lang.String name)
Convert a symbol name into an IOR identifier. This method replaces the "." scope separators in the symbol by underscores.


getMethodName

public static java.lang.String getMethodName(SymbolID id,
                                             java.lang.String name)
Returns the name of the built-in method, prepending "ior_" and the name of the symbol.


getEnumName

public static java.lang.String getEnumName(SymbolID id)
Convert a SIDL enumerated type into its symbol name, which is "enum " followed by the symbol name followed by "__enum".


getEnumValueSymbol

public static java.lang.String getEnumValueSymbol(SymbolID id,
                                                  java.lang.String value)
Return the enum value symbol for a particular enum type and string.


getExternalName

public static java.lang.String getExternalName(SymbolID id)
Get struct name for extern entry point structure.


getExternalVariableName

public static java.lang.String getExternalVariableName(SymbolID id)
Get struct name for extern entry point variable.


getExternalFunc

public static java.lang.String getExternalFunc(SymbolID id)
Get the name of the function that returns the structure of external entry points.


getObjectName

public static java.lang.String getObjectName(SymbolID id)
Convert a SIDL interface or class into its symbol name, which is "struct " followed by the symbol name followed by "__object".


getObjectName

public static java.lang.String getObjectName(java.lang.String fqn)
Convert a SIDL interface or class into its symbol name, which is "struct " followed by the symbol name followed by "__object".


getStructName

public static java.lang.String getStructName(SymbolID id)
Convert a SIDL struct into its IOR data type name, which is "struct " followed by the symbol name followed by "__data".


getRemoteStructName

public static java.lang.String getRemoteStructName(SymbolID id)
Convert a SIDL interface or class into its remote struct name, which is "struct " followed by the symbol name followed by "__remote".


getArrayName

public static java.lang.String getArrayName(SymbolID id)
Convert a SIDL symbol into its array representation, which is "struct " followed by the symbol name followed by "__array". Passing null to this function causes it to return the generic (typeless) SIDL array.


getArrayName

public static java.lang.String getArrayName(int intType)
Get the sidl array name for a given type. Use the arrayType from the array.


getArrayNameWithoutAsterix

public static java.lang.String getArrayNameWithoutAsterix(int intType)
Gets the sidl array name for a given type, and removes the trailing asterix. Use the arrayType from the array.


getArrayNameForFunctions

public static java.lang.String getArrayNameForFunctions(int intType)
Gets the sidl array name for a given type, for use in C functions.


isSIDLSymbol

public static boolean isSIDLSymbol(SymbolID id)
Return TRUE if the Symbol ID corresponds to a SIDL symbol; FALSE otherwise.


isSIDLXSymbol

public static boolean isSIDLXSymbol(SymbolID id)
Return TRUE if the Symbol ID corresponds to a SIDLX symbol; FALSE otherwise.


generateContractEPVs

public static boolean generateContractEPVs(Extendable ext,
                                           Context context)
Return TRUE if the contract-related EPVs are supposed to be generated. Assumptions: 1) Contract-related EPVs are only generated for concrete classes. 2) Contract-related EPVs are not generated for SIDL classes. 3) Contract-related EPVs are not generated for exceptions.


generateContractChecks

public static boolean generateContractChecks(Extendable ext,
                                             Context context)
                                      throws CodeGenerationException
Return TRUE if contract checks are supposed to be generated. Assumptions: 1) Assumptions in generateContractEPVs() apply. 2) Checks are only generated if the class has its own or inherited contract clauses. 3) Checks are only generated if the configuration indicates their generation is required.

Throws:
CodeGenerationException

generateHookEPVs

public static boolean generateHookEPVs(Extendable ext,
                                       Context context)
Return TRUE if the hooks-related EPVs are supposed to be generated. Assumption: Only non-SIDL interfaces and classes are to include the hook EPVs. Exceptions are _not_ to be included.


generateHookMethods

public static boolean generateHookMethods(Extendable ext,
                                          Context context)
Return TRUE if hook methods are to be generated; FALSE otherwise. Assumptions: 1) Assumptions in generateHookEPVs() apply. 2) Hook methods are only generated if configuration indicates their generation is required.


generateBaseEPVAttr

public static boolean generateBaseEPVAttr(Extendable ext,
                                          Context context)
                                   throws CodeGenerationException
Return TRUE if the base EPV attribute needs to be supported; FALSE otherwise.

Throws:
CodeGenerationException

getInvDescDataStruct

public static java.lang.String getInvDescDataStruct(SymbolID id)
Return the name of the invariant description data structure name.


getInvDescDataName

public static java.lang.String getInvDescDataName(SymbolID id)
Return the name of the static variable associated with the invariant description data.


getMethodDescDataStruct

public static java.lang.String getMethodDescDataStruct(SymbolID id)
Return the name of the method description data structure name.


getMethodDescDataName

public static java.lang.String getMethodDescDataName(SymbolID id)
Return the name of the static variable associated with the method description data.


getControlsNStatsStruct

public static java.lang.String getControlsNStatsStruct(SymbolID id)
Convert a SIDL symbol into its control structure.


getMethodControlsNStatsStruct

public static java.lang.String getMethodControlsNStatsStruct(SymbolID id)
Convert a SIDL symbol into its method control structure.


getEPVName

public static java.lang.String getEPVName(SymbolID id)
Convert a SIDL symbol into its method entry point vector (EPV) name.


getGetEPVsName

public static java.lang.String getGetEPVsName(SymbolID id)
Convert a SIDL symbol into its method that returns initialized epv pointers.


getSEPVName

public static java.lang.String getSEPVName(SymbolID id)
Convert a SIDL symbol into its static entry point vector (SEPV) name.


getPreEPVName

public static java.lang.String getPreEPVName(SymbolID id)
Convert a SIDL symbol into its Pre hooks method entry point vector (EPV) name.


getPreSEPVName

public static java.lang.String getPreSEPVName(SymbolID id)
Convert a SIDL symbol into its pre hooks static entry point vector (SEPV) name.


getPostEPVName

public static java.lang.String getPostEPVName(SymbolID id)
Convert a SIDL symbol into its Post hooks method entry point vector (EPV) name.


getPostSEPVName

public static java.lang.String getPostSEPVName(SymbolID id)
Convert a SIDL symbol into its post hooks static entry point vector (SEPV) name.


getEPVType

public static java.lang.String getEPVType(int type)
Return the type associated with the specified EPV type index, or an empty string if the index is out of range.


getEPVVar

public static java.lang.String getEPVVar(int type)
Return the standard method entry point vector (EPV) variable.


getSetEPVTypeName

public static java.lang.String getSetEPVTypeName(int type)
Returns the name of the set EPV type.


getNewName

public static java.lang.String getNewName(SymbolID id)
Convert a SIDL symbol into the name of its associated constructor, which is the symbol name appended with "__createObject". WARNING: This method name must be consistent with the implementation of the sidl.DLL.createClass method.


getRemoteName

public static java.lang.String getRemoteName(SymbolID id)
Convert a SIDL symbol into the name of its associated remote constructor, which is the symbol name appended with "__remote".


getRemoteConnectName

public static java.lang.String getRemoteConnectName(SymbolID id)
Convert a SIDL symbol into the name of its associated remote connector, which is the symbol name appended with "__connect".


getRemoteCastName

public static java.lang.String getRemoteCastName(SymbolID id)
Convert a SIDL symbol into the name of its associated remote cast, which is the symbol name appended with "__rmicast".


getRemoteGetURLName

public static java.lang.String getRemoteGetURLName(SymbolID id)
Convert a SIDL symbol into the name of its associated getURL function, which is the symbol name appended with "__getURL".


getRemoteIsRemoteName

public static java.lang.String getRemoteIsRemoteName(SymbolID id)
Convert a SIDL symbol into the name of its associated getURL function, which is the symbol name appended with "__getURL".


getRaddRefName

public static java.lang.String getRaddRefName(SymbolID id)
Convert a SIDL symbol into the name of its associated getURL function, which is the symbol name appended with "__getURL".


getFConnectSymbolIDs

public static java.util.Set getFConnectSymbolIDs(Extendable ext)
                                          throws CodeGenerationException
Returns a Set containing all the Symbol IDs that need FConnect methods generated for them in this Extendable.

Throws:
CodeGenerationException

getFCastSymbolIDs

public static java.util.Set getFCastSymbolIDs(Extendable ext)
                                       throws CodeGenerationException
Returns a Set containing all the Symbol IDs that need FCast methods generated for them in this Extendable.

Throws:
CodeGenerationException

getStructSymbolIDs

public static java.util.Set getStructSymbolIDs(Extendable ext,
                                               boolean serialize)
                                        throws CodeGenerationException
Returns a Set containing all the Symbol IDs of structs that need serialize/deserialize methods generated for them in this Extendable.

Throws:
CodeGenerationException

getSkelSerializationName

public static java.lang.String getSkelSerializationName(SymbolID extid,
                                                        SymbolID structid,
                                                        boolean serialize)

getSkelFConnectName

public static java.lang.String getSkelFConnectName(SymbolID sourceid,
                                                   SymbolID targetid)
Convert a SIDL symbol into the name of its associated remote connector. This requires both the SybmolID of the class this is being defined in (sourceid) and the SymbolID of the target class to be connected (targetid)


getSkelFCastName

public static java.lang.String getSkelFCastName(SymbolID sourceid,
                                                SymbolID targetid)
Convert a SIDL symbol into the name of its associated remote connector. This requires both the SybmolID of the class this is being defined in (sourceid) and the SymbolID of the target class to be connected (targetid)


getSetEPVName

public static java.lang.String getSetEPVName(SymbolID id)
Convert a SIDL symbol into the name of its set EPV method.


getSetSEPVName

public static java.lang.String getSetSEPVName(SymbolID id)
Convert a SIDL symbol into the name of its set static EPV method.


getEPVPrefix

public static java.lang.String getEPVPrefix(int epvType)
Return the static EPV prefix string or, if invalid, the one with the minimum type value.


getStaticEPVVariable

public static java.lang.String getStaticEPVVariable(SymbolID id,
                                                    int epvType,
                                                    int setType)
Return the name of the specified static EPV variable.


generateStaticEPVVariables

public static void generateStaticEPVVariables(LanguageWriterForC lw,
                                              Extendable ext,
                                              boolean has_static,
                                              boolean is_remote,
                                              int setType)
Generate the static EPV variables for the specified extendable and EPV type.


getCallLoadName

public static java.lang.String getCallLoadName(SymbolID id)
Convert a sidl symbol into the name of its associated _call_load method which is the symbol name appended with "__call_load"


getLocalStaticsName

public static java.lang.String getLocalStaticsName(SymbolID id)
Convert a SIDL symbol into the name of its associated local statics method.


getStaticsName

public static java.lang.String getStaticsName(SymbolID id)
Convert a SIDL symbol into the name of its associated statics method, which is the symbol name appended with "__getStaticEPV".


getInitName

public static java.lang.String getInitName(SymbolID id)
Convert a SIDL symbol into the name of its associated init method, which is the symbol name appended with "__init".


getInitEPVName

public static java.lang.String getInitEPVName(SymbolID id)
Convert a SIDL symbol into the name of its associated init method, which is the symbol name appended with "__init".


getFiniName

public static java.lang.String getFiniName(SymbolID id)
Convert a SIDL symbol into the name of its associated fini method, which is the symbol name appended with "__fini".


getVersionName

public static java.lang.String getVersionName(SymbolID id)
Convert a SIDL symbol into the name of its associated fini method, which is the symbol name appended with "__fini".


getExceptionFundamentalType

public static java.lang.String getExceptionFundamentalType()
Return the name of the type of the implicit exception argument; namely, sidl_BaseInterface__object. This is deemed necessary in order to minimize the impact on existing Impl codes due to the memory layout of the epv. That is, it is not necessary for the implementation writer to cast a newly created exception (to the base exception interface) IF the pointer is declared to be the start of the epv structure to begin with.


getClassType

public static java.lang.String getClassType()
Return the name of the type of the implicit base class type. The return value is of the form "struct X_Y_Z *" where X_Y_Z depends on the name of the base class and its mapping to a C struct name.


getInterfaceType

public static java.lang.String getInterfaceType()
Return the name of the type of the base interface type. The return value is of the form "struct X_Y_Z *" where X_Y_Z depends on the name of the base interface and its mapping to a C struct name.


getPreconditionExceptType

public static java.lang.String getPreconditionExceptType()

getPostconditionExceptType

public static java.lang.String getPostconditionExceptType()

getInvariantExceptType

public static java.lang.String getInvariantExceptType()

getSymbolType

public static java.lang.String getSymbolType(Symbol sym)

getReturnString

public static java.lang.String getReturnString(Type type,
                                               Context context)
                                        throws CodeGenerationException
Generate a 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.

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

getInitialValue

public static java.lang.String getInitialValue(Type type)
                                        throws CodeGenerationException
Gives an initial value based on the type of the argument

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

getReturnString

public static java.lang.String getReturnString(Type type,
                                               Context context,
                                               boolean objPtr,
                                               boolean inStub)
                                        throws CodeGenerationException
Generate a C 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.

Parameters:
type - the Type whose return string is being built.
objPtr - TRUE if the object pointer type should be returned; FALSE otherwise.
inStub - TRUE is the string is for the stub; FALSE otherwise.
Throws:
CodeGenerationException

getArgumentString

public static java.lang.String getArgumentString(Method method,
                                                 Context context)
                                          throws CodeGenerationException
Generate a string containing only the specified method's arguments, including exceptions, if any.

Throws:
CodeGenerationException

getArgumentString

public static java.lang.String getArgumentString(Argument arg,
                                                 Context context)
                                          throws CodeGenerationException
Generate an argument string for the specified SIDL argument. The formal argument name is not included.

Parameters:
arg - the Argument whose string is being built.
Throws:
CodeGenerationException

getArgumentString

public static java.lang.String getArgumentString(Argument arg,
                                                 Context context,
                                                 boolean objPtr,
                                                 boolean inStub,
                                                 boolean isExec)
                                          throws CodeGenerationException
Generate a C argument string for the specified SIDL argument. The formal argument name is not included.

Parameters:
arg - the Argument whose string is being built.
objPtr - TRUE if the object pointer type should be returned; FALSE otherwise.
inStub - TRUE is the string is for the stub; FALSE otherwise.
isExec - TRUE if the string is for declaring variables in an Exec function, FALSE otherwise
Throws:
CodeGenerationException

getArgumentWithFormal

public static java.lang.String getArgumentWithFormal(Argument arg,
                                                     Context context)
                                              throws CodeGenerationException
Generate an argument string with the formal argument name.

Parameters:
arg - the Argument whose string is being built.
Throws:
CodeGenerationException

getArgumentWithFormal

public static java.lang.String getArgumentWithFormal(Argument arg,
                                                     Context context,
                                                     boolean objPtr,
                                                     boolean inStub,
                                                     boolean isExec)
                                              throws CodeGenerationException
Generate a C argument string with the formal argument name.

Parameters:
arg - the Argument whose string is being built.
objPtr - TRUE if the object pointer type should be returned; FALSE otherwise.
inStub - TRUE if the string is for the stub; FALSE otherwise.
isExec - TRUE if the string is generated for an exec function
Throws:
CodeGenerationException

getCast

public static java.lang.String getCast(Method method,
                                       java.lang.String self,
                                       Context context)
                                throws CodeGenerationException
Generate a cast string for the specified method. The string argument self represents the name of the object. A code generation exception is thrown if any of the required symbols do not exist in the symbol table.

Throws:
CodeGenerationException

getStaticTypeOption

public static java.lang.String getStaticTypeOption(SymbolID id,
                                                   int type)
Return the static epv type option name.


getMethodIndex

public static java.lang.String getMethodIndex(SymbolID id,
                                              Method meth)
Return the method index constant name associated with the specified method.


getMethodIndex

public static java.lang.String getMethodIndex(SymbolID id,
                                              java.lang.String lit)
Return the method index constant name associated with the specified literal.


getRuntimeException

public static SymbolID getRuntimeException(Context context)

getRuntimeExceptionSymbol

public static Symbol getRuntimeExceptionSymbol(Context context)

generateCastFunction

public static void generateCastFunction(Class cls,
                                        java.lang.String self,
                                        LanguageWriterForC writer,
                                        boolean rmi,
                                        boolean addref)
                                 throws CodeGenerationException
Generate the cast function for a class. This will return null if the cast is invalid and a pointer to the object otherwise. The logic generates tests for the current class and then recursively queries the parent classes.

Throws:
CodeGenerationException

classToInterfacePtr

public static java.lang.String classToInterfacePtr(Class cls,
                                                   Extendable e,
                                                   java.lang.String self)
                                            throws CodeGenerationException
Generate an expression to obtain a pointer to an interface or subclass from an object pointer.

Parameters:
self - this string holds the name to the object pointer that the interface/subclass pointer will be obtained from
cls - the object pointer self is a class pointer to this type
e - this is the type of the interface/subclass pointer to be obtained
Returns:
a String containing the expression to cast & (if necessary) dereference the self pointer to the appropriate internal data structure
Throws:
CodeGenerationException

resolveRenamedMethods

public static void resolveRenamedMethods(Extendable ext,
                                         java.util.HashMap renames)

declareEPVsAsArgs

public static void declareEPVsAsArgs(LanguageWriterForC lw,
                                     Class cls,
                                     Context context,
                                     boolean first)

isUnserializable

public static boolean isUnserializable(Context context,
                                       Type t)

isUnserializable

public static boolean isUnserializable(Context context,
                                       Struct strct)

generateArgumentList

public static void generateArgumentList(LanguageWriterForC writer,
                                        Context context,
                                        java.lang.String self,
                                        boolean is_interface,
                                        SymbolID id,
                                        Method method,
                                        boolean in_signature,
                                        boolean add_type,
                                        boolean obj_ptr,
                                        boolean do_throws,
                                        boolean do_return,
                                        boolean do_indices,
                                        boolean do_rarrays)
                                 throws CodeGenerationException
Generate the method's argument list.

Parameters:
writer - the language writer.
self - the String representing the method's self argument name.
is_interface - the boolean indicating whether working with a class or an interface.
id - the SymbolID of the Extendable whose stub source is being written.
method - the Method whose list is being output.
in_signature - the boolean indicating whether the argument list is being generated in a signature.
add_type - the boolean indicating whether the argument types are to be added.
do_throws - the boolean indicating whether the exception is to be added.
do_return - the boolean indicating whether the return type is to be added.
do_rarrays - the boolean indicating if special raw array argument handling is needed.
Throws:
CodeGenerationException - this is a catch all exception. It can be caused by I/O trouble or violations of the data type invariants.

generateArgumentList

public static void generateArgumentList(LanguageWriterForC writer,
                                        Context context,
                                        java.lang.String self,
                                        boolean is_interface,
                                        SymbolID id,
                                        Method method,
                                        boolean in_signature,
                                        boolean add_type,
                                        boolean obj_ptr,
                                        java.lang.String exc_var,
                                        boolean do_return,
                                        boolean do_indices,
                                        boolean do_rarrays,
                                        boolean isExec)
                                 throws CodeGenerationException
Generate the method's argument list.

Parameters:
writer - the language writer.
self - the String representing the method's self argument name.
is_interface - the boolean indicating whether working with a class or an interface.
id - the SymbolID of the Extendable whose stub source is being written.
method - the Method whose list is being output.
in_signature - the boolean indicating whether the argument list is being generated in a signature.
add_type - the boolean indicating whether the argument types are to be added.
exc_var - the variable to be used for the exception argument; NULL if no exception argument to be generated.
do_return - the boolean indicating whether the return type is to be added.
do_rarrays - the boolean indicating if special raw array argument handling is needed.
Throws:
CodeGenerationException - this is a catch all exception. It can be caused by I/O trouble or violations of the data type invariants.

generateArguments

public static void generateArguments(LanguageWriterForC writer,
                                     Context context,
                                     java.lang.String self,
                                     java.util.List args,
                                     boolean isStatic,
                                     boolean doThrows,
                                     Type returnType,
                                     boolean addType,
                                     boolean objPtr,
                                     boolean doRaw,
                                     boolean deref_inout)
                              throws CodeGenerationException
Generate the specified argument list.

Parameters:
writer - the language writer.
self - the String representing the method's self argument name.
args - the basic argument list for the method.
isStatic - the boolean indicating whether the method is static.
doThrows - the boolean indicating if an exception argument is to be added.
returnType - the return type of the method OR null if the method return type should not be included.
objPtr - TRUE if the object pointer type should be returned; FALSE otherwise.
doRaw - the boolean indicating if special raw array argument handling is needed.
deref_inout - if true, out and inout arguments are dereferenced in passing. (Used for pre and post hooks)
Throws:
CodeGenerationException - this is a catch all exception. It can be caused by I/O trouble or violations of the data type invariants.

generateArguments

public static void generateArguments(LanguageWriterForC writer,
                                     Context context,
                                     java.lang.String self,
                                     java.util.List args,
                                     boolean isStatic,
                                     java.lang.String excVar,
                                     Type returnType,
                                     boolean addType,
                                     boolean objPtr,
                                     boolean doRaw,
                                     boolean deref_inout,
                                     boolean isExec)
                              throws CodeGenerationException
Generate the specified argument list.

Parameters:
writer - the language writer.
self - the String representing the method's self argument name.
args - the basic argument list for the method.
isStatic - the boolean indicating whether the method is static.
excVar - the variable to be used for the exception argument; NULL if no exception argument to be generated.
returnType - the return type of the method OR null if the method return type should not be included.
objPtr - TRUE if the object pointer type should be returned; FALSE otherwise.
doRaw - the boolean indicating if special raw array argument handling is needed.
deref_inout - if true, out and inout arguments are dereferenced in passing. (Used for pre and post hooks)
Throws:
CodeGenerationException - this is a catch all exception. It can be caused by I/O trouble or violations of the data type invariants.

generateControlNStats

public static void generateControlNStats(LanguageWriterForC writer,
                                         Extendable ext,
                                         Context context)
                                  throws CodeGenerationException
Generate the interface contract enforcement controls and statistics structures.

Parameters:
writer - the language writer.
ext - the class.
Throws:
CodeGenerationException - This is a catch all exception. It can be caused by I/O trouble.