diff options
author | Juergen Haug | 2017-05-19 11:59:15 +0000 |
---|---|---|
committer | Juergen Haug | 2017-05-19 11:59:15 +0000 |
commit | d7cccfb959d571175ff2c2be175e871de529e90a (patch) | |
tree | 336ca7c309f14db398df411d25583c5c4c0eb066 | |
parent | de2d04418033982a233f6472a5f516b468052b6d (diff) | |
download | org.eclipse.etrice-d7cccfb959d571175ff2c2be175e871de529e90a.tar.gz org.eclipse.etrice-d7cccfb959d571175ff2c2be175e871de529e90a.tar.xz org.eclipse.etrice-d7cccfb959d571175ff2c2be175e871de529e90a.zip |
readded effect of RoomConvertingLazyLinker
API is available since 2.7
Change-Id: Id86aede6f9254c05b47b8c64596ea770f744bc96
-rw-r--r-- | plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/linking/RoomConvertingLazyLinker.java | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/linking/RoomConvertingLazyLinker.java b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/linking/RoomConvertingLazyLinker.java index 1324adc5d..c13fc6de4 100644 --- a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/linking/RoomConvertingLazyLinker.java +++ b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/linking/RoomConvertingLazyLinker.java @@ -12,27 +12,35 @@ package org.eclipse.etrice.core.linking; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.etrice.core.fsm.fSM.FSMPackage; +import org.eclipse.etrice.core.room.RoomPackage; import org.eclipse.xtext.linking.lazy.LazyLinker; /** - * Linker that converts incompatible super classes to corresponding room sub classes + * Linker that uses concrete ROOM sub classes instead of FSM super classes. */ public class RoomConvertingLazyLinker extends LazyLinker { -// protected static FSMPackage fsm = FSMPackage.eINSTANCE; -// protected static RoomPackage room = RoomPackage.eINSTANCE; -// -// @Override -// protected EClass getProxyType(EObject obj, EReference eRef) { -// EClass orig = super.getProxyType(obj, eRef); -// -// if(orig == fsm.getModelComponent()) -// return room.getActorClass(); -// if(orig == fsm.getAbstractInterfaceItem()) -// return room.getInterfaceItem(); -//// if(orig == room.getGeneralProtocolClass()) -//// return ? => cannot decide, bad -// -// return orig; -// } + protected static FSMPackage fsm = FSMPackage.eINSTANCE; + protected static RoomPackage room = RoomPackage.eINSTANCE; + + @Override + protected EClass getProxyType(EObject obj, EReference eRef) { + EClass orig = super.getProxyType(obj, eRef); + + // use concrete room classes + if(orig == fsm.getModelComponent()) + return room.getActorClass(); + if(orig == fsm.getAbstractInterfaceItem()) + return room.getInterfaceItem(); + + +// if(orig == room.getGeneralProtocolClass()) +// return ? => cannot decide + + return orig; + } } |