diff options
author | Henrik Rentz-Reichert | 2012-11-22 07:47:46 +0000 |
---|---|---|
committer | Henrik Rentz-Reichert | 2012-11-22 07:47:46 +0000 |
commit | 589d8f49b0aee217c64a455ed86847ae856260d8 (patch) | |
tree | adb937aba464328fbd745215b01858e85f1fdf9a /plugins/org.eclipse.etrice.generator | |
parent | 0fe4d0820b332d206b821906ca3a3e2bbf1c88df (diff) | |
download | org.eclipse.etrice-589d8f49b0aee217c64a455ed86847ae856260d8.tar.gz org.eclipse.etrice-589d8f49b0aee217c64a455ed86847ae856260d8.tar.xz org.eclipse.etrice-589d8f49b0aee217c64a455ed86847ae856260d8.zip |
[generator, generator.config, generator.java] bug fix for instance path
The new instance path has as first segment the sub system ref name
rather than the sub system class name as before.
Therefore as an intermediate work around for configuration the first
segment is replaced by the old value.
Diffstat (limited to 'plugins/org.eclipse.etrice.generator')
2 files changed, 36 insertions, 0 deletions
diff --git a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/RoomExtensions.xtend b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/RoomExtensions.xtend index 3ca6b8f36..773a6b842 100644 --- a/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/RoomExtensions.xtend +++ b/plugins/org.eclipse.etrice.generator/src/org/eclipse/etrice/generator/generic/RoomExtensions.xtend @@ -55,6 +55,8 @@ import org.eclipse.etrice.core.room.Trigger import static org.eclipse.etrice.generator.base.CodegenHelpers.*
import static extension org.eclipse.etrice.core.room.util.RoomHelpers.*
+import org.eclipse.etrice.core.genmodel.etricegen.ActorInstance
+import org.eclipse.etrice.core.genmodel.etricegen.SubSystemInstance
@Singleton
class RoomExtensions {
@@ -594,4 +596,12 @@ class RoomExtensions { return result;
} + // TODO: this has to be replaced by a simple ai.path later
+ def subsyspath(ActorInstance ai) {
+ var parent = ai.eContainer
+ while (! (parent instanceof SubSystemInstance))
+ parent = parent.eContainer
+ ai.path.replaceFirst("/[a-zA-Z_]+/", "/"+(parent as SubSystemInstance).subSystemClass.name+"/")
+ }
+
}
diff --git a/plugins/org.eclipse.etrice.generator/xtend-gen/org/eclipse/etrice/generator/generic/RoomExtensions.java b/plugins/org.eclipse.etrice.generator/xtend-gen/org/eclipse/etrice/generator/generic/RoomExtensions.java index 9c1dd65dd..64010b7e1 100644 --- a/plugins/org.eclipse.etrice.generator/xtend-gen/org/eclipse/etrice/generator/generic/RoomExtensions.java +++ b/plugins/org.eclipse.etrice.generator/xtend-gen/org/eclipse/etrice/generator/generic/RoomExtensions.java @@ -12,12 +12,14 @@ import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.etrice.core.genmodel.etricegen.ActiveTrigger;
+import org.eclipse.etrice.core.genmodel.etricegen.ActorInstance;
import org.eclipse.etrice.core.genmodel.etricegen.ExpandedActorClass;
import org.eclipse.etrice.core.genmodel.etricegen.ExpandedRefinedState;
import org.eclipse.etrice.core.genmodel.etricegen.InterfaceItemInstance;
import org.eclipse.etrice.core.genmodel.etricegen.PortInstance;
import org.eclipse.etrice.core.genmodel.etricegen.SAPInstance;
import org.eclipse.etrice.core.genmodel.etricegen.ServiceImplInstance;
+import org.eclipse.etrice.core.genmodel.etricegen.SubSystemInstance;
import org.eclipse.etrice.core.genmodel.etricegen.TransitionChain;
import org.eclipse.etrice.core.room.ActorClass;
import org.eclipse.etrice.core.room.Attribute;
@@ -42,6 +44,7 @@ import org.eclipse.etrice.core.room.SimpleState; import org.eclipse.etrice.core.room.StandardOperation;
import org.eclipse.etrice.core.room.State;
import org.eclipse.etrice.core.room.StateGraph;
+import org.eclipse.etrice.core.room.SubSystemClass;
import org.eclipse.etrice.core.room.TrPoint;
import org.eclipse.etrice.core.room.Transition;
import org.eclipse.etrice.core.room.TransitionPoint;
@@ -960,6 +963,29 @@ public class RoomExtensions { return result;
}
+ public String subsyspath(final ActorInstance ai) {
+ String _xblockexpression = null;
+ {
+ EObject parent = ai.eContainer();
+ boolean _not = (!(parent instanceof SubSystemInstance));
+ boolean _while = _not;
+ while (_while) {
+ EObject _eContainer = parent.eContainer();
+ parent = _eContainer;
+ boolean _not_1 = (!(parent instanceof SubSystemInstance));
+ _while = _not_1;
+ }
+ String _path = ai.getPath();
+ SubSystemClass _subSystemClass = ((SubSystemInstance) parent).getSubSystemClass();
+ String _name = _subSystemClass.getName();
+ String _plus = ("/" + _name);
+ String _plus_1 = (_plus + "/");
+ String _replaceFirst = _path.replaceFirst("/[a-zA-Z_]+/", _plus_1);
+ _xblockexpression = (_replaceFirst);
+ }
+ return _xblockexpression;
+ }
+
public String getPortClassName(final EObject p) {
if (p instanceof Port) {
return _getPortClassName((Port)p);
|