org.eclipse.etrice.generator.c.gen
Class CExtensions

java.lang.Object
  extended by org.eclipse.etrice.generator.c.gen.CExtensions
All Implemented Interfaces:
ILanguageExtension


Constructor Summary
CExtensions()
          
Method Summary
 java.lang.String accessLevelPrivate()
          
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CExtensions

public CExtensions()
Method Detail

getTypedDataDefinition

public java.lang.String getTypedDataDefinition(Message m)
Specified by:
getTypedDataDefinition in interface ILanguageExtension

accessLevelPrivate

public java.lang.String accessLevelPrivate()
Description copied from interface: ILanguageExtension
unification of access level for all Languages before each member

Specified by:
accessLevelPrivate in interface ILanguageExtension
Returns:
e.g. "private " for Java, nothing for C and C++ (no access level before the individual member)

accessLevelProtected

public java.lang.String accessLevelProtected()
Description copied from interface: ILanguageExtension
unification of access level for all Languages before each member

Specified by:
accessLevelProtected in interface ILanguageExtension
Returns:
e.g. "protected " for Java, nothing for C and C++ (no access level before the individual member)

accessLevelPublic

public java.lang.String accessLevelPublic()
Description copied from interface: ILanguageExtension
unification of access level for all Languages before each member

Specified by:
accessLevelPublic in interface ILanguageExtension
Returns:
e.g. "public " for Java, nothing for C and C++ (no access level before the individual member)

memberAccess

public java.lang.String memberAccess()
Description copied from interface: ILanguageExtension
unification of member access for different languages

Specified by:
memberAccess in interface ILanguageExtension
Returns:
e.g. "this." for Java and C++ or "self->" for C

selfPointer

public java.lang.String selfPointer(java.lang.String classname,
                                    boolean hasArgs)
Description copied from interface: ILanguageExtension
self pointer for building class mechanism in C, e.g. MyClass_function1(MyClass *self, int32 argument1)

Specified by:
selfPointer in interface ILanguageExtension
Parameters:
classname - the class name
hasArgs - true if functions has further arguments
Returns:
"classname *self, " for C / for Java and C++ nothing

selfPointer

public java.lang.String selfPointer(boolean hasArgs)
Description copied from interface: ILanguageExtension
self pointer for function calls

Specified by:
selfPointer in interface ILanguageExtension
Parameters:
hasArgs - true if functions has further arguments
Returns:
"self, " for C / for Java and C++ nothing

operationScope

public java.lang.String operationScope(java.lang.String classname,
                                       boolean isDeclaration)
Description copied from interface: ILanguageExtension
language specific scoping string for operations e.g. nothing in Java (only inside class declaration), nothing and classname:: for C++ and classname_ for C

Specified by:
operationScope in interface ILanguageExtension
Parameters:
classname - the class name
isDeclaration - true if it is a declaration
Returns:
"classname_" for C / for Java and C++ nothing

memberInDeclaration

public java.lang.String memberInDeclaration(java.lang.String namespace,
                                            java.lang.String member)
Description copied from interface: ILanguageExtension
member declaration

Specified by:
memberInDeclaration in interface ILanguageExtension
Parameters:
namespace - the namespace or class name
member - the member name
Returns:
for C: namespace_member, for Java namespace.member

memberInUse

public java.lang.String memberInUse(java.lang.String namespace,
                                    java.lang.String member)
Description copied from interface: ILanguageExtension
member usage

Specified by:
memberInUse in interface ILanguageExtension
Parameters:
namespace - the namespace or class name
member - the member name
Returns:
for C: namespace_member, for Java namespace.member

getCHeaderFileName

public java.lang.String getCHeaderFileName(RoomClass rc)
TODO: move specific code elsewhere


getCSourceFileName

public java.lang.String getCSourceFileName(RoomClass rc)

getInstSourceFileName

public java.lang.String getInstSourceFileName(RoomClass rc)

getDispSourceFileName

public java.lang.String getDispSourceFileName(RoomClass rc)

getIncludeGuardString

public StringConcatenation getIncludeGuardString(java.lang.String filename)

generateIncludeGuardBegin

public StringConcatenation generateIncludeGuardBegin(java.lang.String filename)

generateIncludeGuardEnd

public StringConcatenation generateIncludeGuardEnd(java.lang.String filename)

usesInheritance

public boolean usesInheritance()
Description copied from interface: ILanguageExtension
does the target language offer inheritance

Specified by:
usesInheritance in interface ILanguageExtension
Returns:
true for C++ and Java, false for C

genEnumeration

public java.lang.String genEnumeration(java.lang.String name,
                                       java.util.List<> entries)
Description copied from interface: ILanguageExtension
generate an enumeration (enum in C, int constants in Java)

Specified by:
genEnumeration in interface ILanguageExtension
Parameters:
name - the enumeration name
entries - a list of name/value pairs
Returns:
a string defining the enumeration in the target language

booleanConstant

public java.lang.String booleanConstant(boolean b)
Description copied from interface: ILanguageExtension
literals for boolean constants

Specified by:
booleanConstant in interface ILanguageExtension
Parameters:
b - the boolean value
Returns:
TRUE/FALSE for C/C++, true/false for Java

nullPointer

public java.lang.String nullPointer()
Description copied from interface: ILanguageExtension
a literal for the null pointer

Specified by:
nullPointer in interface ILanguageExtension
Returns:
NULL for C/C++, null for Java

voidPointer

public java.lang.String voidPointer()
Description copied from interface: ILanguageExtension
a generic pointer

Specified by:
voidPointer in interface ILanguageExtension
Returns:
void* for C/C++, Object for Java

getExecuteChainCode

public java.lang.String getExecuteChainCode(ExpandedActorClass ac,
                                            TransitionChain tc)

arrayDeclaration

public java.lang.String arrayDeclaration(java.lang.String type,
                                         int size,
                                         java.lang.String name)
Description copied from interface: ILanguageExtension
array declarations differ in Java and C/C++

Specified by:
arrayDeclaration in interface ILanguageExtension
Returns:
a string that represents the declaration