Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/validation/RoomJavaValidator.java')
-rw-r--r--plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/validation/RoomJavaValidator.java25
1 files changed, 18 insertions, 7 deletions
diff --git a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/validation/RoomJavaValidator.java b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/validation/RoomJavaValidator.java
index 0d5c04a5e..9329602ce 100644
--- a/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/validation/RoomJavaValidator.java
+++ b/plugins/org.eclipse.etrice.core.room/src/org/eclipse/etrice/core/validation/RoomJavaValidator.java
@@ -53,6 +53,7 @@ import org.eclipse.etrice.core.room.InterfaceItem;
import org.eclipse.etrice.core.room.LayerConnection;
import org.eclipse.etrice.core.room.LogicalSystem;
import org.eclipse.etrice.core.room.Message;
+import org.eclipse.etrice.core.room.MessageData;
import org.eclipse.etrice.core.room.Operation;
import org.eclipse.etrice.core.room.Port;
import org.eclipse.etrice.core.room.PortClass;
@@ -102,16 +103,17 @@ public class RoomJavaValidator extends AbstractRoomJavaValidator {
/* tags for quick fixes */
public static final String THREAD_MISSING = "RoomJavaValidator.ThreadMissing";
public static final String DUPLICATE_ACTOR_INSTANCE_MAPPING = "RoomJavaValidator.DuplicateActorInstanceMapping";
+ public static final String WRONG_NAMESPACE = "RoomJavaValidator.WrongNamespace";
public static final String CIRCULAR_CONTAINMENT = "RoomJavaValidator.CircularContainment";
public static final String ACTOR_REF_CHANGE_REF_TYPE_TO_FIXED_OR_MULT_TO_ANY = "RoomJavaValidator.ActorRefChangeRefTypeToFixed";
public static final String ACTOR_REF_CHANGE_REF_TYPE_TO_OPTIONAL = "RoomJavaValidator.ActorRefChangeRefTypeToOptional";
- public static final String WRONG_NAMESPACE = "RoomJavaValidator.WrongNamespace";
public static final String CHANGE_DESTRUCTOR_NAME = "RoomJavaValidator.ChangeDestructorName";
public static final String CHANGE_CONSTRUCTOR_NAME = "RoomJavaValidator.ChangeConstructorName";
public static final String INVALID_ANNOTATION_TARGET = "RoomJavaValidator.InvalidAnnotationTarget";
public static final String OPERATION_MISSING_OVERRIDE = "RoomJavaValidator.OperationMissingOverride";
public static final String OPERATION_EXTRANEOUS_OVERRIDE = "RoomJavaValidator.OperationExtraneousOverride";
- public static final String INCONSISTENT_COMMUNICATION_TYPE = "RoomJavaValidator.InconsistentCommType";
+ public static final String INCONSISTENT_COMMUNICATION_TYPE = "RoomJavaValidator.InconsistentCommType";
+ public static final String DEPRECATED_MESSAGE_DATA_NAME = "RoomJavaValidator.DeprecatedMessageDataName";
@Check
public void checkRoomImportedNamespace(Import imp) {
@@ -163,7 +165,6 @@ public class RoomJavaValidator extends AbstractRoomJavaValidator {
error("referenced model is not supported", BasePackage.Literals.IMPORT__IMPORTED_NAMESPACE, WRONG_NAMESPACE, candidatesNames.toArray(new String[0]));
}
-
@Check
public void checkActorRef(ActorRef ar) {
if (ar.eContainer() instanceof ActorClass) {
@@ -199,7 +200,7 @@ public class RoomJavaValidator extends AbstractRoomJavaValidator {
if (ar.getMultiplicity()>1) {
for (Port p : ac.getInterfacePorts()) {
if (p.getMultiplicity()<0) {
- int idx = ((ActorContainerClass)ar.eContainer()).getActorRefs().indexOf(ar);
+ //int idx = ((ActorContainerClass)ar.eContainer()).getActorRefs().indexOf(ar);
error("replicated actor must not have replicated port with arbitrary multiplicity", null);
}
}
@@ -618,9 +619,12 @@ public class RoomJavaValidator extends AbstractRoomJavaValidator {
@Check
public void checkMessageFromIf(MessageFromIf mfi){
- if(mfi.getFrom() != null){
- if(roomHelpers.getProtocol((InterfaceItem)mfi.getFrom()).getCommType() != CommunicationType.EVENT_DRIVEN)
- error("port must have event driven protocol", mfi, FSMPackage.eINSTANCE.getMessageFromIf_From());
+ if (mfi.getFrom() != null){
+ ProtocolClass protocol = roomHelpers.getProtocol((InterfaceItem)mfi.getFrom());
+ if (protocol!=null && !protocol.eIsProxy()) {
+ if (protocol.getCommType() != CommunicationType.EVENT_DRIVEN)
+ error("port must have event driven protocol", mfi, FSMPackage.eINSTANCE.getMessageFromIf_From());
+ }
}
}
@@ -799,4 +803,11 @@ public class RoomJavaValidator extends AbstractRoomJavaValidator {
error("Return type must be identical to overriden operation " +baseOpFQN, op, RoomPackage.Literals.OPERATION__RETURN_TYPE);
}
}
+
+ @Check
+ public void checkMessageData(MessageData m) {
+ if (m.getDeprecatedName()!=null) {
+ warning("The data name of messages is deprecated (always named 'transitionData' in action code)", RoomPackage.Literals.MESSAGE_DATA__DEPRECATED_NAME, DEPRECATED_MESSAGE_DATA_NAME);
+ }
+ }
}

Back to the top