Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrik Rentz-Reichert2013-03-15 08:33:29 -0400
committerHenrik Rentz-Reichert2013-03-15 08:33:29 -0400
commitce0f619a67142bebd7a6b34e4056dc8cfa3a4de7 (patch)
treec1cad8d839ca99e268550d460290279638c524b4 /plugins/org.eclipse.etrice.abstractexec.behavior
parent7f91a837b33a9ebac444a9ed55cbe2086eaace4e (diff)
downloadorg.eclipse.etrice-ce0f619a67142bebd7a6b34e4056dc8cfa3a4de7.tar.gz
org.eclipse.etrice-ce0f619a67142bebd7a6b34e4056dc8cfa3a4de7.tar.xz
org.eclipse.etrice-ce0f619a67142bebd7a6b34e4056dc8cfa3a4de7.zip
[abstractexec] don't check if circular class hierarchy
Diffstat (limited to 'plugins/org.eclipse.etrice.abstractexec.behavior')
-rw-r--r--plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/AbstractExecutionValidator.java8
-rw-r--r--plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ReachabilityValidator.java5
2 files changed, 13 insertions, 0 deletions
diff --git a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/AbstractExecutionValidator.java b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/AbstractExecutionValidator.java
index 6754b0d44..2b51bf36c 100644
--- a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/AbstractExecutionValidator.java
+++ b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/AbstractExecutionValidator.java
@@ -35,6 +35,7 @@ import org.eclipse.etrice.core.room.Trigger;
import org.eclipse.etrice.core.room.TriggeredTransition;
import org.eclipse.etrice.core.room.util.RoomHelpers;
import org.eclipse.etrice.core.validation.IRoomValidator;
+import org.eclipse.etrice.core.validation.ValidationUtil;
import org.eclipse.xtext.validation.ValidationMessageAcceptor;
/**
@@ -77,13 +78,20 @@ public class AbstractExecutionValidator implements IRoomValidator {
if (!(object instanceof ActorClass))
return;
+
ActorClass ac = (ActorClass) object;
+
if (traceExec) {
if (!(traceName.isEmpty() || ac.getName().equals(traceName)))
return;
System.out.println("AbstractExecutionValidator checking class "
+ ac.getName());
}
+
+ if (ValidationUtil.isCircularClassHierarchy(ac))
+ // is checked elsewhere
+ return;
+
boolean oneProtocolsWithSemantics = false;
List<InterfaceItem> ifItems = RoomHelpers.getAllInterfaceItems(ac);
for (InterfaceItem item : ifItems) {
diff --git a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ReachabilityValidator.java b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ReachabilityValidator.java
index 22a34712a..102a84d81 100644
--- a/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ReachabilityValidator.java
+++ b/plugins/org.eclipse.etrice.abstractexec.behavior/src/org/eclipse/etrice/abstractexec/behavior/ReachabilityValidator.java
@@ -25,6 +25,7 @@ import org.eclipse.etrice.core.genmodel.etricegen.ExpandedActorClass;
import org.eclipse.etrice.core.room.ActorClass;
import org.eclipse.etrice.core.room.StateGraphItem;
import org.eclipse.etrice.core.validation.IRoomValidator;
+import org.eclipse.etrice.core.validation.ValidationUtil;
import org.eclipse.xtext.validation.ValidationMessageAcceptor;
@@ -39,6 +40,10 @@ public class ReachabilityValidator implements IRoomValidator {
return;
ActorClass ac = (ActorClass) object;
+
+ if (ValidationUtil.isCircularClassHierarchy(ac))
+ // is checked elsewhere
+ return;
NullDiagnostician diagnostician = new NullDiagnostician();
GeneratorModelBuilder builder = new GeneratorModelBuilder(new NullLogger(), diagnostician);

Back to the top