diff options
author | Henrik Rentz-Reichert | 2012-01-18 09:55:54 +0000 |
---|---|---|
committer | Henrik Rentz-Reichert | 2012-01-18 09:55:54 +0000 |
commit | 6907852eb9f46ccf3145be51f36e72839fb49d24 (patch) | |
tree | 97d109349be1c400e486decf708f3ede0bfd9f18 | |
parent | 3a48b46b2613b03230e97c909846244ba8034fb1 (diff) | |
download | org.eclipse.etrice-6907852eb9f46ccf3145be51f36e72839fb49d24.tar.gz org.eclipse.etrice-6907852eb9f46ccf3145be51f36e72839fb49d24.tar.xz org.eclipse.etrice-6907852eb9f46ccf3145be51f36e72839fb49d24.zip |
[generator] bug fix in attribute initialization
re-generated integration tests and modellib
12 files changed, 89 insertions, 91 deletions
diff --git a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/ProcedureHelpers.xtend b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/ProcedureHelpers.xtend index 29adb4a9b..19fb33950 100644 --- a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/ProcedureHelpers.xtend +++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/ProcedureHelpers.xtend @@ -80,7 +80,10 @@ class ProcedureHelpers { «IF a.defaultValueLiteral!=null»
«IF a.size==0»
«a.name» = «a.defaultValueLiteral»;
- «ELSEIF !a.defaultValueLiteral.startsWith("{")»
+ «ELSEIF a.defaultValueLiteral.startsWith("{")»
+ «a.name» = new «a.type.typeName»[] «a.defaultValueLiteral»;
+ «ELSE»
+ «a.name» = new «a.type.typeName»[«a.size»];
for (int i=0;i<«a.size»;i++){
«a.name»[i] = «a.defaultValueLiteral»;
}
@@ -89,6 +92,7 @@ class ProcedureHelpers { «IF a.size==0»
«a.name» = «a.type.defaultValue»;
«ELSE»
+ «a.name» = new «a.type.typeName»[«a.size»];
for (int i=0;i<«a.size»;i++){
«a.name»[i] = «a.type.defaultValue»;
}
diff --git a/plugins/org.eclipse.etrice.generator/xtend-gen/org/eclipse/etrice/generator/generic/ProcedureHelpers.java b/plugins/org.eclipse.etrice.generator/xtend-gen/org/eclipse/etrice/generator/generic/ProcedureHelpers.java index 15c5846e3..de7c09839 100644 --- a/plugins/org.eclipse.etrice.generator/xtend-gen/org/eclipse/etrice/generator/generic/ProcedureHelpers.java +++ b/plugins/org.eclipse.etrice.generator/xtend-gen/org/eclipse/etrice/generator/generic/ProcedureHelpers.java @@ -12,7 +12,6 @@ import org.eclipse.etrice.core.room.VarDecl; import org.eclipse.etrice.generator.base.ILogger;
import org.eclipse.etrice.generator.generic.ILanguageExtension;
import org.eclipse.etrice.generator.generic.TypeHelpers;
-import org.eclipse.xtext.xbase.lib.BooleanExtensions;
import org.eclipse.xtext.xbase.lib.ComparableExtensions;
import org.eclipse.xtext.xbase.lib.Conversions;
import org.eclipse.xtext.xbase.lib.IntegerExtensions;
@@ -176,19 +175,41 @@ public class ProcedureHelpers { } else {
String _defaultValueLiteral_2 = a.getDefaultValueLiteral();
boolean _startsWith = _defaultValueLiteral_2.startsWith("{");
- boolean _operator_not = BooleanExtensions.operator_not(_startsWith);
- if (_operator_not) {
- _builder.append("for (int i=0;i<");
+ if (_startsWith) {
+ String _name_1 = a.getName();
+ _builder.append(_name_1, "");
+ _builder.append(" = new ");
+ DataType _type = a.getType();
+ String _typeName = this._typeHelpers.typeName(_type);
+ _builder.append(_typeName, "");
+ _builder.append("[] ");
+ String _defaultValueLiteral_3 = a.getDefaultValueLiteral();
+ _builder.append(_defaultValueLiteral_3, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ } else {
+ String _name_2 = a.getName();
+ _builder.append(_name_2, "");
+ _builder.append(" = new ");
+ DataType _type_1 = a.getType();
+ String _typeName_1 = this._typeHelpers.typeName(_type_1);
+ _builder.append(_typeName_1, "");
+ _builder.append("[");
int _size_1 = a.getSize();
_builder.append(_size_1, "");
+ _builder.append("];");
+ _builder.newLineIfNotEmpty();
+ _builder.append("for (int i=0;i<");
+ int _size_2 = a.getSize();
+ _builder.append(_size_2, "");
_builder.append(";i++){");
_builder.newLineIfNotEmpty();
_builder.append("\t");
- String _name_1 = a.getName();
- _builder.append(_name_1, " ");
+ String _name_3 = a.getName();
+ _builder.append(_name_3, " ");
_builder.append("[i] = ");
- String _defaultValueLiteral_3 = a.getDefaultValueLiteral();
- _builder.append(_defaultValueLiteral_3, " ");
+ String _defaultValueLiteral_4 = a.getDefaultValueLiteral();
+ _builder.append(_defaultValueLiteral_4, " ");
_builder.append(";");
_builder.newLineIfNotEmpty();
_builder.append("}");
@@ -198,29 +219,40 @@ public class ProcedureHelpers { }
} else {
{
- int _size_2 = a.getSize();
- boolean _operator_equals_1 = ObjectExtensions.operator_equals(((Integer)_size_2), ((Integer)0));
+ int _size_3 = a.getSize();
+ boolean _operator_equals_1 = ObjectExtensions.operator_equals(((Integer)_size_3), ((Integer)0));
if (_operator_equals_1) {
- String _name_2 = a.getName();
- _builder.append(_name_2, "");
+ String _name_4 = a.getName();
+ _builder.append(_name_4, "");
_builder.append(" = ");
- DataType _type = a.getType();
- String _defaultValue = this._typeHelpers.defaultValue(_type);
+ DataType _type_2 = a.getType();
+ String _defaultValue = this._typeHelpers.defaultValue(_type_2);
_builder.append(_defaultValue, "");
_builder.append(";");
_builder.newLineIfNotEmpty();
} else {
+ String _name_5 = a.getName();
+ _builder.append(_name_5, "");
+ _builder.append(" = new ");
+ DataType _type_3 = a.getType();
+ String _typeName_2 = this._typeHelpers.typeName(_type_3);
+ _builder.append(_typeName_2, "");
+ _builder.append("[");
+ int _size_4 = a.getSize();
+ _builder.append(_size_4, "");
+ _builder.append("];");
+ _builder.newLineIfNotEmpty();
_builder.append("for (int i=0;i<");
- int _size_3 = a.getSize();
- _builder.append(_size_3, "");
+ int _size_5 = a.getSize();
+ _builder.append(_size_5, "");
_builder.append(";i++){");
_builder.newLineIfNotEmpty();
_builder.append("\t");
- String _name_3 = a.getName();
- _builder.append(_name_3, " ");
+ String _name_6 = a.getName();
+ _builder.append(_name_6, " ");
_builder.append("[i] = ");
- DataType _type_1 = a.getType();
- String _defaultValue_1 = this._typeHelpers.defaultValue(_type_1);
+ DataType _type_4 = a.getType();
+ String _defaultValue_1 = this._typeHelpers.defaultValue(_type_4);
_builder.append(_defaultValue_1, " ");
_builder.append(";");
_builder.newLineIfNotEmpty();
diff --git a/runtime/org.eclipse.etrice.modellib/jgen_modellib.launch b/runtime/org.eclipse.etrice.modellib/jgen_modellib.launch new file mode 100644 index 000000000..5074d0e3f --- /dev/null +++ b/runtime/org.eclipse.etrice.modellib/jgen_modellib.launch @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/Main.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.etrice.generator.java.Main"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="${workspace_loc:org.eclipse.etrice.modellib}/models/ALogService.room ${workspace_loc:org.eclipse.etrice.modellib}/models/Socket.room ${workspace_loc:org.eclipse.etrice.modellib}/models/TimingService.room -lib"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.etrice.generator.java"/>
+</launchConfiguration>
diff --git a/runtime/org.eclipse.etrice.modellib/src-gen/org/eclipse/etrice/modellib/Socket/DSocketConfiguration.java b/runtime/org.eclipse.etrice.modellib/src-gen/org/eclipse/etrice/modellib/Socket/DSocketConfiguration.java index 0264da386..175072a53 100644 --- a/runtime/org.eclipse.etrice.modellib/src-gen/org/eclipse/etrice/modellib/Socket/DSocketConfiguration.java +++ b/runtime/org.eclipse.etrice.modellib/src-gen/org/eclipse/etrice/modellib/Socket/DSocketConfiguration.java @@ -7,11 +7,11 @@ public class DSocketConfiguration { //--------------------- attributes
- protected String serverName = "";
- protected int portNumber = 0;
- protected int protocol = 0;
- protected boolean checkCookie = false;
- protected int mode = 0;
+ protected String serverName;
+ protected int portNumber;
+ protected int protocol;
+ protected boolean checkCookie;
+ protected int mode;
//--------------------- attribute setters and getters
public void setServerName (String serverName) {
diff --git a/runtime/org.eclipse.etrice.modellib/src-gen/org/eclipse/etrice/modellib/Socket/DSocketData.java b/runtime/org.eclipse.etrice.modellib/src-gen/org/eclipse/etrice/modellib/Socket/DSocketData.java index 271a460e3..1aedbd300 100644 --- a/runtime/org.eclipse.etrice.modellib/src-gen/org/eclipse/etrice/modellib/Socket/DSocketData.java +++ b/runtime/org.eclipse.etrice.modellib/src-gen/org/eclipse/etrice/modellib/Socket/DSocketData.java @@ -7,8 +7,8 @@ public class DSocketData { //--------------------- attributes
- protected int size = 0;
- protected String data = "";
+ protected int size;
+ protected String data;
//--------------------- attribute setters and getters
public void setSize (int size) {
diff --git a/runtime/org.eclipse.etrice.modellib/src-gen/room/basic/service/logging/ALogService.java b/runtime/org.eclipse.etrice.modellib/src-gen/room/basic/service/logging/ALogService.java index 37d2e2737..ab8f18141 100644 --- a/runtime/org.eclipse.etrice.modellib/src-gen/room/basic/service/logging/ALogService.java +++ b/runtime/org.eclipse.etrice.modellib/src-gen/room/basic/service/logging/ALogService.java @@ -266,8 +266,7 @@ public class ALogService extends ActorClassBase { p=null;
}
protected void action_TRANS_opened_TO_opened_BY_internalLoglog_tr1(InterfaceItemBase ifitem, InternalLogData data) {
- long s = Long.valueOf(data.timeStamp);
- p.println("Timestamp: " + Long.toString(s-tStart) + "ms");
+ p.println("Timestamp: " + Long.toString(data.timeStamp-tStart) + "ms");
p.println("SenderInstance: "+ data.sender);
p.println("UserString: " + data.userString);
p.println("--------------------------------------------------");
diff --git a/runtime/org.eclipse.etrice.modellib/src-gen/room/basic/service/logging/InternalLogData.java b/runtime/org.eclipse.etrice.modellib/src-gen/room/basic/service/logging/InternalLogData.java index ad18afdf3..752ab503e 100644 --- a/runtime/org.eclipse.etrice.modellib/src-gen/room/basic/service/logging/InternalLogData.java +++ b/runtime/org.eclipse.etrice.modellib/src-gen/room/basic/service/logging/InternalLogData.java @@ -7,9 +7,9 @@ public class InternalLogData { //--------------------- attributes
- protected String userString = "";
- protected String sender = "";
- protected String timeStamp = "";
+ protected String userString;
+ protected String sender;
+ protected long timeStamp;
//--------------------- attribute setters and getters
public void setUserString (String userString) {
@@ -24,10 +24,10 @@ public class InternalLogData { public String getSender () {
return this.sender;
}
- public void setTimeStamp (String timeStamp) {
+ public void setTimeStamp (long timeStamp) {
this.timeStamp = timeStamp;
}
- public String getTimeStamp () {
+ public long getTimeStamp () {
return this.timeStamp;
}
@@ -39,11 +39,11 @@ public class InternalLogData { // initialize attributes
userString = "";
sender = "";
- timeStamp = "";
+ timeStamp = 0;
}
// constructor using fields
- public InternalLogData(String userString, String sender, String timeStamp) {
+ public InternalLogData(String userString, String sender, long timeStamp) {
super();
this.userString = userString;
this.sender = sender;
diff --git a/runtime/org.eclipse.etrice.modellib/src-gen/room/basic/service/logging/Log.java b/runtime/org.eclipse.etrice.modellib/src-gen/room/basic/service/logging/Log.java index 4036df8dc..5faabbb9c 100644 --- a/runtime/org.eclipse.etrice.modellib/src-gen/room/basic/service/logging/Log.java +++ b/runtime/org.eclipse.etrice.modellib/src-gen/room/basic/service/logging/Log.java @@ -150,8 +150,7 @@ public class Log { long s;
if (logLevel>this.logLevel){
d.userString=userString;
- s=System.currentTimeMillis();
- d.timeStamp=Long.toString(s);
+ d.timeStamp=System.currentTimeMillis();
d.sender=getInstancePath();
if (getPeerAddress()!=null)
getPeerMsgReceiver().receive(new EventWithDataMessage(getPeerAddress(), IN_internalLog, d));
@@ -183,7 +182,7 @@ public class Log { if (getPeerAddress()!=null)
getPeerMsgReceiver().receive(new EventWithDataMessage(getPeerAddress(), IN_internalLog, data.deepCopy()));
}
- public void internalLog(String userString, String sender, String timeStamp) {
+ public void internalLog(String userString, String sender, long timeStamp) {
internalLog(new InternalLogData(userString, sender, timeStamp));
}
}
diff --git a/runtime/org.eclipse.etrice.modellib/src-gen/room/basic/service/logging/LogData.java b/runtime/org.eclipse.etrice.modellib/src-gen/room/basic/service/logging/LogData.java deleted file mode 100644 index c38358251..000000000 --- a/runtime/org.eclipse.etrice.modellib/src-gen/room/basic/service/logging/LogData.java +++ /dev/null @@ -1,51 +0,0 @@ -package room.basic.service.logging;
-
-
-
-
-public class LogData {
-
-
- //--------------------- attributes
- protected int logLevel = 0;
- protected String userString = "";
-
- //--------------------- attribute setters and getters
- public void setLogLevel (int logLevel) {
- this.logLevel = logLevel;
- }
- public int getLogLevel () {
- return this.logLevel;
- }
- public void setUserString (String userString) {
- this.userString = userString;
- }
- public String getUserString () {
- return this.userString;
- }
-
- //--------------------- operations
-
- // default constructor
- public LogData() {
- super();
- // initialize attributes
- logLevel = 0;
- userString = "";
- }
-
- // constructor using fields
- public LogData(int logLevel, String userString) {
- super();
- this.logLevel = logLevel;
- this.userString = userString;
- }
-
- // deep copy
- public LogData deepCopy() {
- LogData copy = new LogData();
- copy.logLevel = logLevel;
- copy.userString = userString;
- return copy;
- }
-};
diff --git a/tests/org.eclipse.etrice.integration.tests/src-gen/org/eclipse/etrice/integration/SendingDataByValueTest/MrPing.java b/tests/org.eclipse.etrice.integration.tests/src-gen/org/eclipse/etrice/integration/SendingDataByValueTest/MrPing.java index 16eb77ccd..5cefa4b1f 100644 --- a/tests/org.eclipse.etrice.integration.tests/src-gen/org/eclipse/etrice/integration/SendingDataByValueTest/MrPing.java +++ b/tests/org.eclipse.etrice.integration.tests/src-gen/org/eclipse/etrice/integration/SendingDataByValueTest/MrPing.java @@ -54,6 +54,7 @@ public class MrPing extends ActorClassBase { setClassName("MrPing");
// initialize attributes
+ i32Array = new int[10];
for (int i=0;i<10;i++){
i32Array[i] = 0;
}
diff --git a/tests/org.eclipse.etrice.integration.tests/src-gen/org/eclipse/etrice/integration/SendingDataByValueTest/PingPongData.java b/tests/org.eclipse.etrice.integration.tests/src-gen/org/eclipse/etrice/integration/SendingDataByValueTest/PingPongData.java index de29644b2..d2953579f 100644 --- a/tests/org.eclipse.etrice.integration.tests/src-gen/org/eclipse/etrice/integration/SendingDataByValueTest/PingPongData.java +++ b/tests/org.eclipse.etrice.integration.tests/src-gen/org/eclipse/etrice/integration/SendingDataByValueTest/PingPongData.java @@ -86,6 +86,7 @@ public class PingPongData { f32Val = 4711.0815f;
f64Val = 47114711.08150815;
stringVal = "Du alter Depp !";
+ arrayFromInt32 = new int[] {1,2,3,4,5};
ownType = new PingPongDataDeep();
}
diff --git a/tests/org.eclipse.etrice.integration.tests/src-gen/org/eclipse/etrice/integration/SendingDataByValueTest/PingPongDataDeep.java b/tests/org.eclipse.etrice.integration.tests/src-gen/org/eclipse/etrice/integration/SendingDataByValueTest/PingPongDataDeep.java index 7fdf67bfa..46eef63d5 100644 --- a/tests/org.eclipse.etrice.integration.tests/src-gen/org/eclipse/etrice/integration/SendingDataByValueTest/PingPongDataDeep.java +++ b/tests/org.eclipse.etrice.integration.tests/src-gen/org/eclipse/etrice/integration/SendingDataByValueTest/PingPongDataDeep.java @@ -79,6 +79,7 @@ public class PingPongDataDeep { f32Val = 0;
f64Val = 0;
stringVal = "";
+ arrayFromInt32 = new int[10];
for (int i=0;i<10;i++){
arrayFromInt32[i] = 0;
}
|