diff options
Diffstat (limited to 'plugins/org.eclipse.etrice.core.genmodel.fsm/src/org/eclipse/etrice/core/genmodel/fsm/ICommonDataCalculator.java')
-rw-r--r-- | plugins/org.eclipse.etrice.core.genmodel.fsm/src/org/eclipse/etrice/core/genmodel/fsm/ICommonDataCalculator.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm/src/org/eclipse/etrice/core/genmodel/fsm/ICommonDataCalculator.java b/plugins/org.eclipse.etrice.core.genmodel.fsm/src/org/eclipse/etrice/core/genmodel/fsm/ICommonDataCalculator.java new file mode 100644 index 000000000..1db60179d --- /dev/null +++ b/plugins/org.eclipse.etrice.core.genmodel.fsm/src/org/eclipse/etrice/core/genmodel/fsm/ICommonDataCalculator.java @@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright (c) 2011 protos software gmbh (http://www.protos.de). + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * CONTRIBUTORS: + * hrr@protos.de (initial contribution) + * + *******************************************************************************/ + +package org.eclipse.etrice.core.genmodel.fsm; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.etrice.core.genmodel.fsm.fsmgen.Link; + +public interface ICommonDataCalculator { + + /** + * calculates the common data of the transition associated with this link. + * That means all triggers of all transition chain heads of this link are inspected. + * If one of these has no data, the common data is null. + * If all of them have a common parent data type (represented as some EObject), then this + * is taken. If there is no common data type but there are data the link itself is returned + * with the meaning that there is a generic base type (like Object in Java or void* in C/C++) + * + * @param l a link + * @return an EObject with the meaning as explained above + */ + EObject calculateCommonData(Link l); +} |