diff options
Diffstat (limited to 'plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice')
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); + } } |