Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuergen Haug2015-12-23 11:35:03 +0000
committerJuergen Haug2016-02-28 17:01:11 +0000
commit81750c5e633ad14e7ab25b016564af20fec0a1cc (patch)
tree951ca972625f09ffee924496591e97d927a74f0d /plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/JavaExtensions.xtend
parentdc98de4bb145d8d3789909e32c11765596165fbb (diff)
downloadorg.eclipse.etrice-81750c5e633ad14e7ab25b016564af20fec0a1cc.tar.gz
org.eclipse.etrice-81750c5e633ad14e7ab25b016564af20fec0a1cc.tar.xz
org.eclipse.etrice-81750c5e633ad14e7ab25b016564af20fec0a1cc.zip
[generators] added cpp generator draft
Diffstat (limited to 'plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/JavaExtensions.xtend')
-rw-r--r--plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/JavaExtensions.xtend76
1 files changed, 32 insertions, 44 deletions
diff --git a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/JavaExtensions.xtend b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/JavaExtensions.xtend
index 687fcf27c..49636d733 100644
--- a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/JavaExtensions.xtend
+++ b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/JavaExtensions.xtend
@@ -4,10 +4,10 @@
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
- *
+ *
* CONTRIBUTORS:
* Thomas Schuetz and Henrik Rentz-Reichert (initial contribution)
- *
+ *
*******************************************************************************/
/*
@@ -53,7 +53,7 @@ class JavaExtensions implements ILanguageExtension {
}
def String getJavaFileName(RoomClass rc) {rc.name+".java"}
-
+
def String getJavaFactoryName(ActorClass rc) {rc.name+"Factory"}
def String getJavaFactoryFileName(ActorClass rc) {rc.javaFactoryName+".java"}
def String getJavaScalarInterfaceName(ActorClass rc) {rc.name+"Interface"}
@@ -80,7 +80,7 @@ class JavaExtensions implements ILanguageExtension {
def String getJavaFileName(NodeRef nr, SubSystemInstance ssi) {
nr.getJavaClassName(ssi)+".java";
}
-
+
def String toWrapper(String type){
switch(type){
case "int": "Integer"
@@ -88,83 +88,71 @@ class JavaExtensions implements ILanguageExtension {
default: type.toFirstUpper
}
}
-
+
def boolean needsInitialization(Attribute a){
a.size > 0 || !typeHelpers.isEnumerationOrPrimitive(a.type.type) || typeHelpers.typeName(a.type.type).equals("String")
}
-
+
override String accessLevelPrivate() {"private "}
override String accessLevelProtected() {"protected "}
override String accessLevelPublic() {"public "}
-
- override String memberAccess() {"this."}
+
+ override String memberAccess() {"this."}
override String selfPointer(String classname, boolean hasArgs) {""}
override String selfPointer(boolean hasArgs) { "" }
-
+
override String operationScope(String classname, boolean isDeclaration) {""}
-
+
override String memberInDeclaration(String namespace, String member) {
return member
}
-
+
override String memberInUse(String namespace, String member) {
return namespace+"."+member
}
-
+
override boolean usesInheritance() {
return true
}
-
+
override boolean usesPointers() {
return false
}
-
+
override String genEnumeration(String name, List<Pair<String, String>> entries) {
'''
«FOR entry: entries»
public static final int «entry.first» = «entry.second»;
«ENDFOR»
- '''.toString
+ '''
}
override String booleanConstant(boolean b) {
b.toString
}
-
+
override String pointerLiteral() { "" }
override String nullPointer() { "null" }
override String voidPointer() { "Object" }
+ override String typeArrayModifier() { "[]" }
override String arrayDeclaration(String type, int size, String name, boolean isRef) {
type+" "+name+"[]"
}
-
- override String constructorName(String cls) {
- cls
- }
- override String destructorName(String cls) {
- 'dtor'
- }
- override String constructorReturnType() {
- 'void'
- }
- override String destructorReturnType() {
- 'void'
- }
-
+
override String superCall(String baseClassName, String method, String args) {
"super."+method+"("+args+");"
}
-
+
override toValueLiteral(PrimitiveType type, String value){
if(!typeHelpers.isCharacterType(type) && (value.contains(',') || value.contains('{'))) {
var singleValues = value.replace('{', '').replace('}', '').trim.split(',')
'''{ «FOR v: singleValues SEPARATOR ', '»«castValue(type, v.trim)»«ENDFOR» }'''.toString
}else
- castValue(type, value)
+ castValue(type, value)
}
-
+
override toEnumLiteral(EnumerationType type, String value){
if(value.contains(',') || value.contains('{')) {
var singleValues = value.replace('{', '').replace('}', '').trim.split(',')
@@ -172,7 +160,7 @@ class JavaExtensions implements ILanguageExtension {
} else
convertStringEnumLiteral(type, value)
}
-
+
def private convertStringEnumLiteral(EnumerationType type, String value){
var v = value
if (v.startsWith(type.name))
@@ -181,7 +169,7 @@ class JavaExtensions implements ILanguageExtension {
if(l.name.equals(v))
return type.getName()+"."+l.getName()
}
-
+
def private castValue(PrimitiveType type, String value){
switch(type.targetName){
case "boolean":
@@ -224,7 +212,7 @@ class JavaExtensions implements ILanguageExtension {
"new "+dt.name+"()"
}
}
-
+
def String getDefaultValue(EnumerationType type) {
if (type.getLiterals().isEmpty())
""
@@ -252,7 +240,7 @@ class JavaExtensions implements ILanguageExtension {
override generateArglistAndTypedData(EObject d) {
if (d==null || !(d instanceof VarDecl))
return newArrayList("", "", "")
-
+
val data = d as VarDecl
var typeName = data.refType.type.getName();
var castTypeName = typeName;
@@ -266,36 +254,36 @@ class JavaExtensions implements ILanguageExtension {
typeName = (data.refType.type as EnumerationType).targetType
castTypeName = (data.refType.type as EnumerationType).castType
}
-
+
val typedData = typeName+" "+data.getName() + " = ("+castTypeName+") generic_data__et;\n";
val dataArg = ", "+data.getName();
val typedArgList = ", "+typeName+" "+data.getName();
-
+
return newArrayList(dataArg, typedData, typedArgList);
}
-
+
override getTargetType(EnumerationType type) {
if (type.getPrimitiveType()!=null)
type.getPrimitiveType().getTargetName()
else
"int"
}
-
+
override getCastedValue(EnumLiteral literal) {
val type = literal.eContainer() as EnumerationType
val cast = type.targetType
-
+
if (type.primitiveType==null)
Long.toString(literal.getLiteralValue())
else
"(("+cast+")"+Long.toString(literal.getLiteralValue())+")"
}
-
+
override getCastType(EnumerationType type) {
if (type.getPrimitiveType()!=null)
type.getPrimitiveType().getCastName()
else
"int"
}
-
+
}

Back to the top