Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice')
-rw-r--r--plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/Room.xtext13
-rw-r--r--plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/naming/RoomFragmentProvider.java41
-rw-r--r--plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/postprocessing/DocuPostprocessor.xtend34
-rw-r--r--plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/room/util/RoomHelpers.java10
4 files changed, 17 insertions, 81 deletions
diff --git a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/Room.xtext b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/Room.xtext
index 9422ddc8a..7022e9039 100644
--- a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/Room.xtext
+++ b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/Room.xtext
@@ -32,17 +32,8 @@ RoomModel :
'RoomModel' name=FQN (docu=Documentation)? '{'
(annotations+=Annotation)*
(imports+=Import)*
- (
- primitiveTypes+=PrimitiveType |
- enumerationTypes+=EnumerationType |
- externalTypes+=ExternalType |
- dataClasses+=DataClass |
- protocolClasses+=GeneralProtocolClass |
- actorClasses+=ActorClass |
- subSystemClasses+=SubSystemClass |
- systems+=LogicalSystem |
- annotationTypes+=AnnotationType
- )*
+ (annotationTypes+=AnnotationType)*
+ (roomClasses += RoomClass)*
'}'
;
diff --git a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/naming/RoomFragmentProvider.java b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/naming/RoomFragmentProvider.java
index 0357a29ba..3b27ea7cd 100644
--- a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/naming/RoomFragmentProvider.java
+++ b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/naming/RoomFragmentProvider.java
@@ -32,14 +32,9 @@ import org.eclipse.etrice.core.room.ActorRef;
import org.eclipse.etrice.core.room.Binding;
import org.eclipse.etrice.core.room.BindingEndPoint;
import org.eclipse.etrice.core.room.CompoundProtocolClass;
-import org.eclipse.etrice.core.room.DataClass;
-import org.eclipse.etrice.core.room.EnumerationType;
-import org.eclipse.etrice.core.room.ExternalType;
-import org.eclipse.etrice.core.room.GeneralProtocolClass;
import org.eclipse.etrice.core.room.LayerConnection;
import org.eclipse.etrice.core.room.LogicalSystem;
import org.eclipse.etrice.core.room.Port;
-import org.eclipse.etrice.core.room.PrimitiveType;
import org.eclipse.etrice.core.room.RefSAPoint;
import org.eclipse.etrice.core.room.RelaySAPoint;
import org.eclipse.etrice.core.room.RoomClass;
@@ -615,39 +610,9 @@ public class RoomFragmentProvider extends FSMFragmentProvider {
}
private RoomClass getRoomClass(RoomModel model, String className) {
- for (DataClass dc : model.getDataClasses()) {
- if (dc.getName() != null && dc.getName().equals(className))
- return dc;
- }
- for (ExternalType et : model.getExternalTypes()) {
- if (et.getName() != null && et.getName().equals(className))
- return et;
- }
- for (PrimitiveType pt : model.getPrimitiveTypes()) {
- if (pt.getName() != null && pt.getName().equals(className))
- return pt;
- }
- for (EnumerationType et : model.getEnumerationTypes()) {
- if (et.getName() != null && et.getName().equals(className))
- return et;
- }
- for (GeneralProtocolClass pc : model.getProtocolClasses()) {
- if (pc.getName() != null && pc.getName().equals(className))
- return pc;
- }
- for (ActorClass ac : model.getActorClasses()) {
- if (ac.getName() != null && ac.getName().equals(className))
- return ac;
- }
- for (SubSystemClass ssc : model.getSubSystemClasses()) {
- if (ssc.getName() != null && ssc.getName().equals(className))
- return ssc;
- }
- for (LogicalSystem ls : model.getSystems()) {
- if (ls.getName() != null && ls.getName().equals(className))
- return ls;
- }
- return null;
+ return model.getRoomClasses().stream()
+ .filter(rc -> className.equals(rc.getName()))
+ .findFirst().orElse(null);
}
}
diff --git a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/postprocessing/DocuPostprocessor.xtend b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/postprocessing/DocuPostprocessor.xtend
index fb95c7829..292cba641 100644
--- a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/postprocessing/DocuPostprocessor.xtend
+++ b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/postprocessing/DocuPostprocessor.xtend
@@ -62,39 +62,9 @@ class DocuPostprocessor {
This is a list of all imported models.
''')
- cls.getReference("primitiveTypes").setDocumentation(
+ cls.getReference("roomClasses").setDocumentation(
'''
- This is a list of all primitive types defined by this model.
- ''')
-
- cls.getReference("externalTypes").setDocumentation(
- '''
- This is a list of all external types defined by this model.
- ''')
-
- cls.getReference("dataClasses").setDocumentation(
- '''
- This is a list of all data classes defined by this model.
- ''')
-
- cls.getReference("protocolClasses").setDocumentation(
- '''
- This is a list of all protocol classes defined by this model.
- ''')
-
- cls.getReference("actorClasses").setDocumentation(
- '''
- This is a list of all actor classes defined by this model.
- ''')
-
- cls.getReference("subSystemClasses").setDocumentation(
- '''
- This is a list of all sub system classes defined by this model.
- ''')
-
- cls.getReference("systems").setDocumentation(
- '''
- This is a list of all logical systems defined by this model.
+ This is a list of all room classes defined by this model.
''')
//------------------------------------------------------------------
diff --git a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/room/util/RoomHelpers.java b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/room/util/RoomHelpers.java
index e2f05dfdf..7639e870d 100644
--- a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/room/util/RoomHelpers.java
+++ b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/room/util/RoomHelpers.java
@@ -18,6 +18,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.stream.Stream;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
@@ -57,6 +58,7 @@ import org.eclipse.etrice.core.room.RefableType;
import org.eclipse.etrice.core.room.RoomClass;
import org.eclipse.etrice.core.room.RoomElement;
import org.eclipse.etrice.core.room.RoomFactory;
+import org.eclipse.etrice.core.room.RoomModel;
import org.eclipse.etrice.core.room.RoomPackage;
import org.eclipse.etrice.core.room.SAP;
import org.eclipse.etrice.core.room.SPP;
@@ -1747,4 +1749,12 @@ public class RoomHelpers extends FSMHelpers {
return refType1 == null && refType2 == null;
}
+
+ /**
+ * Filter room classes of a model by type.
+ */
+ public <T extends RoomClass> Stream<T> getRoomClasses(RoomModel model, Class<T> type) {
+ return model.getRoomClasses().stream()
+ .filter(type::isInstance).map(type::cast);
+ }
}

Back to the top