Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Rentz-Reichert2013-11-25 08:41:42 +0000
committerHenrik Rentz-Reichert2013-11-25 08:41:42 +0000
commit2207283a15d7f4a30ac820b41f3d14961d0c0b87 (patch)
tree9762fc71c0027f6ae33c1f0d9082aea3acdb06c0 /plugins
parent475da5253481df1a63b0ebf52071729c2bd86881 (diff)
downloadorg.eclipse.etrice-2207283a15d7f4a30ac820b41f3d14961d0c0b87.tar.gz
org.eclipse.etrice-2207283a15d7f4a30ac820b41f3d14961d0c0b87.tar.xz
org.eclipse.etrice-2207283a15d7f4a30ac820b41f3d14961d0c0b87.zip
Bug 422442: [generator.c] generator crashes with NPE if generated as library but contains LogicalSystem and SubSystem
https://bugs.eclipse.org/422442
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend44
-rw-r--r--plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeRunnerGen.xtend10
-rw-r--r--plugins/org.eclipse.etrice.generator.c/xtend-gen/org/eclipse/etrice/generator/c/gen/NodeGen.java93
-rw-r--r--plugins/org.eclipse.etrice.generator.c/xtend-gen/org/eclipse/etrice/generator/c/gen/NodeRunnerGen.java32
-rw-r--r--plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/NodeGen.xtend2
-rw-r--r--plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/NodeRunnerGen.xtend2
-rw-r--r--plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/ActorClassGen.java64
-rw-r--r--plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/NodeGen.java13
-rw-r--r--plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/NodeRunnerGen.java14
9 files changed, 150 insertions, 124 deletions
diff --git a/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend b/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend
index 50dfdfe66..c142f9771 100644
--- a/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend
+++ b/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeGen.xtend
@@ -58,29 +58,31 @@ class NodeGen {
for (nr : ETMapUtil::getNodeRefs()) {
for (instpath : ETMapUtil::getSubSystemInstancePaths(nr)) {
val ssi = root.getInstance(instpath) as SubSystemInstance
- val filepath = ssi.subSystemClass.generationTargetPath+ssi.subSystemClass.getPath
- val infopath = ssi.subSystemClass.generationInfoPath+ssi.subSystemClass.getPath
- var file = nr.getCHeaderFileName(ssi)
-
- checkDataPorts(ssi)
+ if (ssi!=null) {
+ val filepath = ssi.subSystemClass.generationTargetPath+ssi.subSystemClass.getPath
+ val infopath = ssi.subSystemClass.generationInfoPath+ssi.subSystemClass.getPath
+ var file = nr.getCHeaderFileName(ssi)
- val usedThreads = new HashSet<PhysicalThread>();
- for (thread: nr.type.threads) {
- val instancesOnThread = ssi.allContainedInstances.filter(ai|ETMapUtil::getMappedThread(ai).thread==thread)
- if (!instancesOnThread.empty)
- usedThreads.add(thread)
+ checkDataPorts(ssi)
+
+ val usedThreads = new HashSet<PhysicalThread>();
+ for (thread: nr.type.threads) {
+ val instancesOnThread = ssi.allContainedInstances.filter(ai|ETMapUtil::getMappedThread(ai).thread==thread)
+ if (!instancesOnThread.empty)
+ usedThreads.add(thread)
+ }
+
+ fileIO.generateFile("generating Node declaration", filepath, infopath, file, root.generateHeaderFile(ssi))
+
+ file = nr.getCSourceFileName(ssi)
+ fileIO.generateFile("generating Node implementation", filepath, infopath, file, root.generateSourceFile(ssi, usedThreads))
+
+ file = nr.getInstSourceFileName(ssi)
+ fileIO.generateFile("generating Node instance file", filepath, infopath, file, root.generateInstanceFile(ssi, usedThreads))
+
+ file = nr.getDispSourceFileName(ssi)
+ fileIO.generateFile("generating Node dispatcher file", filepath, infopath, file, root.generateDispatcherFile(ssi, usedThreads))
}
-
- fileIO.generateFile("generating Node declaration", filepath, infopath, file, root.generateHeaderFile(ssi))
-
- file = nr.getCSourceFileName(ssi)
- fileIO.generateFile("generating Node implementation", filepath, infopath, file, root.generateSourceFile(ssi, usedThreads))
-
- file = nr.getInstSourceFileName(ssi)
- fileIO.generateFile("generating Node instance file", filepath, infopath, file, root.generateInstanceFile(ssi, usedThreads))
-
- file = nr.getDispSourceFileName(ssi)
- fileIO.generateFile("generating Node dispatcher file", filepath, infopath, file, root.generateDispatcherFile(ssi, usedThreads))
}
}
}
diff --git a/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeRunnerGen.xtend b/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeRunnerGen.xtend
index d6c4a04b3..d162810c5 100644
--- a/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeRunnerGen.xtend
+++ b/plugins/org.eclipse.etrice.generator.c/src/org/eclipse/etrice/generator/c/gen/NodeRunnerGen.xtend
@@ -33,10 +33,12 @@ class NodeRunnerGen {
for (nr : ETMapUtil::getNodeRefs()) {
for (instpath : ETMapUtil::getSubSystemInstancePaths(nr)) {
val ssi = root.getInstance(instpath) as SubSystemInstance
- val clsname = nr.name+"_"+ssi.name
- fileAccess.setOutputPath(ssi.subSystemClass.generationTargetPath+ssi.subSystemClass.getPath)
- fileAccess.generateFile( clsname+"_Runner.c", root.generateSourceFile(ssi, first))
- first = false
+ if (ssi!=null) {
+ val clsname = nr.name+"_"+ssi.name
+ fileAccess.setOutputPath(ssi.subSystemClass.generationTargetPath+ssi.subSystemClass.getPath)
+ fileAccess.generateFile( clsname+"_Runner.c", root.generateSourceFile(ssi, first))
+ first = false
+ }
}
}
}
diff --git a/plugins/org.eclipse.etrice.generator.c/xtend-gen/org/eclipse/etrice/generator/c/gen/NodeGen.java b/plugins/org.eclipse.etrice.generator.c/xtend-gen/org/eclipse/etrice/generator/c/gen/NodeGen.java
index 61fd23fdb..3757f2f97 100644
--- a/plugins/org.eclipse.etrice.generator.c/xtend-gen/org/eclipse/etrice/generator/c/gen/NodeGen.java
+++ b/plugins/org.eclipse.etrice.generator.c/xtend-gen/org/eclipse/etrice/generator/c/gen/NodeGen.java
@@ -108,55 +108,58 @@ public class NodeGen {
{
StructureInstance _instance = root.getInstance(instpath);
final SubSystemInstance ssi = ((SubSystemInstance) _instance);
- SubSystemClass _subSystemClass = ssi.getSubSystemClass();
- String _generationTargetPath = this._roomExtensions.getGenerationTargetPath(_subSystemClass);
- SubSystemClass _subSystemClass_1 = ssi.getSubSystemClass();
- String _path = this._roomExtensions.getPath(_subSystemClass_1);
- final String filepath = (_generationTargetPath + _path);
- SubSystemClass _subSystemClass_2 = ssi.getSubSystemClass();
- String _generationInfoPath = this._roomExtensions.getGenerationInfoPath(_subSystemClass_2);
- SubSystemClass _subSystemClass_3 = ssi.getSubSystemClass();
- String _path_1 = this._roomExtensions.getPath(_subSystemClass_3);
- final String infopath = (_generationInfoPath + _path_1);
- String file = this._cExtensions.getCHeaderFileName(nr, ssi);
- this.checkDataPorts(ssi);
- HashSet<PhysicalThread> _hashSet = new HashSet<PhysicalThread>();
- final HashSet<PhysicalThread> usedThreads = _hashSet;
- NodeClass _type = nr.getType();
- EList<PhysicalThread> _threads = _type.getThreads();
- for (final PhysicalThread thread : _threads) {
- {
- EList<ActorInstance> _allContainedInstances = ssi.getAllContainedInstances();
- final Function1<ActorInstance,Boolean> _function = new Function1<ActorInstance,Boolean>() {
- public Boolean apply(final ActorInstance ai) {
- MappedThread _mappedThread = ETMapUtil.getMappedThread(ai);
- PhysicalThread _thread = _mappedThread.getThread();
- boolean _equals = Objects.equal(_thread, thread);
- return Boolean.valueOf(_equals);
+ boolean _notEquals = (!Objects.equal(ssi, null));
+ if (_notEquals) {
+ SubSystemClass _subSystemClass = ssi.getSubSystemClass();
+ String _generationTargetPath = this._roomExtensions.getGenerationTargetPath(_subSystemClass);
+ SubSystemClass _subSystemClass_1 = ssi.getSubSystemClass();
+ String _path = this._roomExtensions.getPath(_subSystemClass_1);
+ final String filepath = (_generationTargetPath + _path);
+ SubSystemClass _subSystemClass_2 = ssi.getSubSystemClass();
+ String _generationInfoPath = this._roomExtensions.getGenerationInfoPath(_subSystemClass_2);
+ SubSystemClass _subSystemClass_3 = ssi.getSubSystemClass();
+ String _path_1 = this._roomExtensions.getPath(_subSystemClass_3);
+ final String infopath = (_generationInfoPath + _path_1);
+ String file = this._cExtensions.getCHeaderFileName(nr, ssi);
+ this.checkDataPorts(ssi);
+ HashSet<PhysicalThread> _hashSet = new HashSet<PhysicalThread>();
+ final HashSet<PhysicalThread> usedThreads = _hashSet;
+ NodeClass _type = nr.getType();
+ EList<PhysicalThread> _threads = _type.getThreads();
+ for (final PhysicalThread thread : _threads) {
+ {
+ EList<ActorInstance> _allContainedInstances = ssi.getAllContainedInstances();
+ final Function1<ActorInstance,Boolean> _function = new Function1<ActorInstance,Boolean>() {
+ public Boolean apply(final ActorInstance ai) {
+ MappedThread _mappedThread = ETMapUtil.getMappedThread(ai);
+ PhysicalThread _thread = _mappedThread.getThread();
+ boolean _equals = Objects.equal(_thread, thread);
+ return Boolean.valueOf(_equals);
+ }
+ };
+ final Iterable<ActorInstance> instancesOnThread = IterableExtensions.<ActorInstance>filter(_allContainedInstances, _function);
+ boolean _isEmpty = IterableExtensions.isEmpty(instancesOnThread);
+ boolean _not = (!_isEmpty);
+ if (_not) {
+ usedThreads.add(thread);
}
- };
- final Iterable<ActorInstance> instancesOnThread = IterableExtensions.<ActorInstance>filter(_allContainedInstances, _function);
- boolean _isEmpty = IterableExtensions.isEmpty(instancesOnThread);
- boolean _not = (!_isEmpty);
- if (_not) {
- usedThreads.add(thread);
}
}
+ CharSequence _generateHeaderFile = this.generateHeaderFile(root, ssi);
+ this.fileIO.generateFile("generating Node declaration", filepath, infopath, file, _generateHeaderFile);
+ String _cSourceFileName = this._cExtensions.getCSourceFileName(nr, ssi);
+ file = _cSourceFileName;
+ CharSequence _generateSourceFile = this.generateSourceFile(root, ssi, usedThreads);
+ this.fileIO.generateFile("generating Node implementation", filepath, infopath, file, _generateSourceFile);
+ String _instSourceFileName = this._cExtensions.getInstSourceFileName(nr, ssi);
+ file = _instSourceFileName;
+ CharSequence _generateInstanceFile = this.generateInstanceFile(root, ssi, usedThreads);
+ this.fileIO.generateFile("generating Node instance file", filepath, infopath, file, _generateInstanceFile);
+ String _dispSourceFileName = this._cExtensions.getDispSourceFileName(nr, ssi);
+ file = _dispSourceFileName;
+ CharSequence _generateDispatcherFile = this.generateDispatcherFile(root, ssi, usedThreads);
+ this.fileIO.generateFile("generating Node dispatcher file", filepath, infopath, file, _generateDispatcherFile);
}
- CharSequence _generateHeaderFile = this.generateHeaderFile(root, ssi);
- this.fileIO.generateFile("generating Node declaration", filepath, infopath, file, _generateHeaderFile);
- String _cSourceFileName = this._cExtensions.getCSourceFileName(nr, ssi);
- file = _cSourceFileName;
- CharSequence _generateSourceFile = this.generateSourceFile(root, ssi, usedThreads);
- this.fileIO.generateFile("generating Node implementation", filepath, infopath, file, _generateSourceFile);
- String _instSourceFileName = this._cExtensions.getInstSourceFileName(nr, ssi);
- file = _instSourceFileName;
- CharSequence _generateInstanceFile = this.generateInstanceFile(root, ssi, usedThreads);
- this.fileIO.generateFile("generating Node instance file", filepath, infopath, file, _generateInstanceFile);
- String _dispSourceFileName = this._cExtensions.getDispSourceFileName(nr, ssi);
- file = _dispSourceFileName;
- CharSequence _generateDispatcherFile = this.generateDispatcherFile(root, ssi, usedThreads);
- this.fileIO.generateFile("generating Node dispatcher file", filepath, infopath, file, _generateDispatcherFile);
}
}
}
diff --git a/plugins/org.eclipse.etrice.generator.c/xtend-gen/org/eclipse/etrice/generator/c/gen/NodeRunnerGen.java b/plugins/org.eclipse.etrice.generator.c/xtend-gen/org/eclipse/etrice/generator/c/gen/NodeRunnerGen.java
index 8810ecdff..ed72afca2 100644
--- a/plugins/org.eclipse.etrice.generator.c/xtend-gen/org/eclipse/etrice/generator/c/gen/NodeRunnerGen.java
+++ b/plugins/org.eclipse.etrice.generator.c/xtend-gen/org/eclipse/etrice/generator/c/gen/NodeRunnerGen.java
@@ -11,6 +11,7 @@
*/
package org.eclipse.etrice.generator.c.gen;
+import com.google.common.base.Objects;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.util.Collection;
@@ -51,20 +52,23 @@ public class NodeRunnerGen {
{
StructureInstance _instance = root.getInstance(instpath);
final SubSystemInstance ssi = ((SubSystemInstance) _instance);
- String _name = nr.getName();
- String _plus = (_name + "_");
- String _name_1 = ssi.getName();
- final String clsname = (_plus + _name_1);
- SubSystemClass _subSystemClass = ssi.getSubSystemClass();
- String _generationTargetPath = this._roomExtensions.getGenerationTargetPath(_subSystemClass);
- SubSystemClass _subSystemClass_1 = ssi.getSubSystemClass();
- String _path = this._roomExtensions.getPath(_subSystemClass_1);
- String _plus_1 = (_generationTargetPath + _path);
- this.fileAccess.setOutputPath(_plus_1);
- String _plus_2 = (clsname + "_Runner.c");
- CharSequence _generateSourceFile = this.generateSourceFile(root, ssi, first);
- this.fileAccess.generateFile(_plus_2, _generateSourceFile);
- first = false;
+ boolean _notEquals = (!Objects.equal(ssi, null));
+ if (_notEquals) {
+ String _name = nr.getName();
+ String _plus = (_name + "_");
+ String _name_1 = ssi.getName();
+ final String clsname = (_plus + _name_1);
+ SubSystemClass _subSystemClass = ssi.getSubSystemClass();
+ String _generationTargetPath = this._roomExtensions.getGenerationTargetPath(_subSystemClass);
+ SubSystemClass _subSystemClass_1 = ssi.getSubSystemClass();
+ String _path = this._roomExtensions.getPath(_subSystemClass_1);
+ String _plus_1 = (_generationTargetPath + _path);
+ this.fileAccess.setOutputPath(_plus_1);
+ String _plus_2 = (clsname + "_Runner.c");
+ CharSequence _generateSourceFile = this.generateSourceFile(root, ssi, first);
+ this.fileAccess.generateFile(_plus_2, _generateSourceFile);
+ first = false;
+ }
}
}
}
diff --git a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/NodeGen.xtend b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/NodeGen.xtend
index 0ca5bf5ad..c8408c8e9 100644
--- a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/NodeGen.xtend
+++ b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/NodeGen.xtend
@@ -62,7 +62,7 @@ class NodeGen {
for (nr : ETMapUtil::getNodeRefs()) {
for (instpath : ETMapUtil::getSubSystemInstancePaths(nr)) {
val ssi = root.getInstance(instpath) as SubSystemInstance
- if (ssi.subSystemClass.validGenerationLocation) {
+ if (ssi!=null && ssi.subSystemClass.validGenerationLocation) {
val wired = sscc2wired.get(ssi.subSystemClass)
val path = ssi.subSystemClass.generationTargetPath+ssi.subSystemClass.getPath
val infopath = ssi.subSystemClass.generationInfoPath+ssi.subSystemClass.getPath
diff --git a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/NodeRunnerGen.xtend b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/NodeRunnerGen.xtend
index 35bb1ee75..325033ca4 100644
--- a/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/NodeRunnerGen.xtend
+++ b/plugins/org.eclipse.etrice.generator.java/src/org/eclipse/etrice/generator/java/gen/NodeRunnerGen.xtend
@@ -35,7 +35,7 @@ class NodeRunnerGen {
for (nr : ETMapUtil::getNodeRefs()) {
for (instpath : ETMapUtil::getSubSystemInstancePaths(nr)) {
val ssi = root.getInstance(instpath) as SubSystemInstance
- if (ssi.subSystemClass.validGenerationLocation) {
+ if (ssi!=null && ssi.subSystemClass.validGenerationLocation) {
val file = nr.getJavaClassName(ssi)+"Runner.java"
val filepath = ssi.subSystemClass.generationTargetPath+ssi.subSystemClass.getPath
val infopath = ssi.subSystemClass.generationInfoPath+ssi.subSystemClass.getPath
diff --git a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/ActorClassGen.java b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/ActorClassGen.java
index 7c94c566c..738151a41 100644
--- a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/ActorClassGen.java
+++ b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/ActorClassGen.java
@@ -103,21 +103,21 @@ public class ActorClassGen extends GenericActorClassGenerator {
private FileSystemHelpers _fileSystemHelpers;
public void doGenerate(final Root root) {
- HashMap<ActorClass,WiredActorClass> _hashMap = new HashMap<ActorClass,WiredActorClass>();
+ HashMap<ActorClass,WiredActorClass> _hashMap = new HashMap<ActorClass, WiredActorClass>();
final HashMap<ActorClass,WiredActorClass> ac2wired = _hashMap;
EList<WiredStructureClass> _wiredInstances = root.getWiredInstances();
final Function1<WiredStructureClass,Boolean> _function = new Function1<WiredStructureClass,Boolean>() {
- public Boolean apply(final WiredStructureClass w) {
- return Boolean.valueOf((w instanceof WiredActorClass));
- }
- };
+ public Boolean apply(final WiredStructureClass w) {
+ return Boolean.valueOf((w instanceof WiredActorClass));
+ }
+ };
Iterable<WiredStructureClass> _filter = IterableExtensions.<WiredStructureClass>filter(_wiredInstances, _function);
final Procedure1<WiredStructureClass> _function_1 = new Procedure1<WiredStructureClass>() {
- public void apply(final WiredStructureClass w) {
- ActorClass _actorClass = ((WiredActorClass) w).getActorClass();
- ac2wired.put(_actorClass, ((WiredActorClass) w));
- }
- };
+ public void apply(final WiredStructureClass w) {
+ ActorClass _actorClass = ((WiredActorClass) w).getActorClass();
+ ac2wired.put(_actorClass, ((WiredActorClass) w));
+ }
+ };
IterableExtensions.<WiredStructureClass>forEach(_filter, _function_1);
EList<ExpandedActorClass> _xpActorClasses = root.getXpActorClasses();
final Function1<ExpandedActorClass,Boolean> _function_2 = new Function1<ExpandedActorClass,Boolean>() {
@@ -172,20 +172,20 @@ public class ActorClassGen extends GenericActorClassGenerator {
final String clsname = _xifexpression;
EList<StandardOperation> _operations = ac.getOperations();
final Function1<StandardOperation,Boolean> _function = new Function1<StandardOperation,Boolean>() {
- public Boolean apply(final StandardOperation op) {
- boolean _isConstructor = RoomHelpers.isConstructor(op);
- return Boolean.valueOf(_isConstructor);
- }
- };
+ public Boolean apply(final StandardOperation op) {
+ boolean _isConstructor = RoomHelpers.isConstructor(op);
+ return Boolean.valueOf(_isConstructor);
+ }
+ };
Iterable<StandardOperation> _filter = IterableExtensions.<StandardOperation>filter(_operations, _function);
final StandardOperation ctor = IterableExtensions.<StandardOperation>head(_filter);
EList<StandardOperation> _operations_1 = ac.getOperations();
final Function1<StandardOperation,Boolean> _function_1 = new Function1<StandardOperation,Boolean>() {
- public Boolean apply(final StandardOperation op) {
- boolean _isDestructor = op.isDestructor();
- return Boolean.valueOf(_isDestructor);
- }
- };
+ public Boolean apply(final StandardOperation op) {
+ boolean _isDestructor = op.isDestructor();
+ return Boolean.valueOf(_isDestructor);
+ }
+ };
Iterable<StandardOperation> _filter_1 = IterableExtensions.<StandardOperation>filter(_operations_1, _function_1);
final StandardOperation dtor = IterableExtensions.<StandardOperation>head(_filter_1);
final EList<RoomModel> models = root.getReferencedModels(ac);
@@ -302,12 +302,12 @@ public class ActorClassGen extends GenericActorClassGenerator {
{
EList<ActorRef> _actorRefs = ac.getActorRefs();
final Function1<ActorRef,Boolean> _function_2 = new Function1<ActorRef,Boolean>() {
- public Boolean apply(final ActorRef r) {
- ReferenceType _refType = r.getRefType();
- boolean _equals = Objects.equal(_refType, ReferenceType.OPTIONAL);
- return Boolean.valueOf(_equals);
- }
- };
+ public Boolean apply(final ActorRef r) {
+ ReferenceType _refType = r.getRefType();
+ boolean _equals = Objects.equal(_refType, ReferenceType.OPTIONAL);
+ return Boolean.valueOf(_equals);
+ }
+ };
Iterable<ActorRef> _filter_2 = IterableExtensions.<ActorRef>filter(_actorRefs, _function_2);
for(final ActorRef sub : _filter_2) {
_builder.append("import ");
@@ -420,12 +420,12 @@ public class ActorClassGen extends GenericActorClassGenerator {
{
EList<ActorRef> _actorRefs_1 = ac.getActorRefs();
final Function1<ActorRef,Boolean> _function_3 = new Function1<ActorRef,Boolean>() {
- public Boolean apply(final ActorRef r) {
- ReferenceType _refType = r.getRefType();
- boolean _equals = Objects.equal(_refType, ReferenceType.OPTIONAL);
- return Boolean.valueOf(_equals);
- }
- };
+ public Boolean apply(final ActorRef r) {
+ ReferenceType _refType = r.getRefType();
+ boolean _equals = Objects.equal(_refType, ReferenceType.OPTIONAL);
+ return Boolean.valueOf(_equals);
+ }
+ };
Iterable<ActorRef> _filter_3 = IterableExtensions.<ActorRef>filter(_actorRefs_1, _function_3);
for(final ActorRef sub_1 : _filter_3) {
_builder.append("\t");
diff --git a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/NodeGen.java b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/NodeGen.java
index a8796a49e..bdfb75471 100644
--- a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/NodeGen.java
+++ b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/NodeGen.java
@@ -131,9 +131,16 @@ public class NodeGen {
{
StructureInstance _instance = root.getInstance(instpath);
final SubSystemInstance ssi = ((SubSystemInstance) _instance);
- SubSystemClass _subSystemClass = ssi.getSubSystemClass();
- boolean _isValidGenerationLocation = this._fileSystemHelpers.isValidGenerationLocation(_subSystemClass);
- if (_isValidGenerationLocation) {
+ boolean _and = false;
+ boolean _notEquals = (!Objects.equal(ssi, null));
+ if (!_notEquals) {
+ _and = false;
+ } else {
+ SubSystemClass _subSystemClass = ssi.getSubSystemClass();
+ boolean _isValidGenerationLocation = this._fileSystemHelpers.isValidGenerationLocation(_subSystemClass);
+ _and = (_notEquals && _isValidGenerationLocation);
+ }
+ if (_and) {
SubSystemClass _subSystemClass_1 = ssi.getSubSystemClass();
final WiredSubSystemClass wired = sscc2wired.get(_subSystemClass_1);
SubSystemClass _subSystemClass_2 = ssi.getSubSystemClass();
diff --git a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/NodeRunnerGen.java b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/NodeRunnerGen.java
index bf1471d6f..69b4c2f65 100644
--- a/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/NodeRunnerGen.java
+++ b/plugins/org.eclipse.etrice.generator.java/xtend-gen/org/eclipse/etrice/generator/java/gen/NodeRunnerGen.java
@@ -10,6 +10,7 @@
*/
package org.eclipse.etrice.generator.java.gen;
+import com.google.common.base.Objects;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.util.Collection;
@@ -55,9 +56,16 @@ public class NodeRunnerGen {
{
StructureInstance _instance = root.getInstance(instpath);
final SubSystemInstance ssi = ((SubSystemInstance) _instance);
- SubSystemClass _subSystemClass = ssi.getSubSystemClass();
- boolean _isValidGenerationLocation = this._fileSystemHelpers.isValidGenerationLocation(_subSystemClass);
- if (_isValidGenerationLocation) {
+ boolean _and = false;
+ boolean _notEquals = (!Objects.equal(ssi, null));
+ if (!_notEquals) {
+ _and = false;
+ } else {
+ SubSystemClass _subSystemClass = ssi.getSubSystemClass();
+ boolean _isValidGenerationLocation = this._fileSystemHelpers.isValidGenerationLocation(_subSystemClass);
+ _and = (_notEquals && _isValidGenerationLocation);
+ }
+ if (_and) {
String _javaClassName = this._javaExtensions.getJavaClassName(nr, ssi);
final String file = (_javaClassName + "Runner.java");
SubSystemClass _subSystemClass_1 = ssi.getSubSystemClass();

Back to the top