Commit 1500ea47 authored by Alexander Diewald's avatar Alexander Diewald

Merge remote-tracking branch 'origin/master' into 3767

Conflicts:
	org.fortiss.af3.cosimulation.ui/META-INF/MANIFEST.MF
	org.fortiss.af3.generator.common/META-INF/MANIFEST.MF
	org.fortiss.af3.mira.ui/META-INF/MANIFEST.MF
	org.fortiss.af3.mode/META-INF/MANIFEST.MF
	org.fortiss.af3.operatorpanel.ui/META-INF/MANIFEST.MF
	org.fortiss.af3.operatorpanel/META-INF/MANIFEST.MF
	org.fortiss.af3.safety.ui/META-INF/MANIFEST.MF
	org.fortiss.af3.safetycases.ui/META-INF/MANIFEST.MF
	org.fortiss.af3.safetycases/META-INF/MANIFEST.MF
	org.fortiss.af3.state.ui/META-INF/MANIFEST.MF
	org.fortiss.af3.state/META-INF/MANIFEST.MF
Signed-off-by: Alexander Diewald's avatarAlexander Diewald <diewald@fortiss.org>
parents efe39436 ee86435c
......@@ -3,7 +3,7 @@ Automatic-Module-Name: com.microsoft.z3
Bundle-ManifestVersion: 2
Bundle-Name: Microsoft Z3 API
Bundle-SymbolicName: com.microsoft.z3;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-ClassPath: lib/com.microsoft.z3.jar,
.
Bundle-Vendor: fortiss GmbH
......
......@@ -3,7 +3,7 @@ Automatic-Module-Name: eu.fbk.af3.tools.diagram.ui
Bundle-ManifestVersion: 2
Bundle-Name: Diagram Document Creator UI
Bundle-SymbolicName: eu.fbk.af3.tools.diagram.ui;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-Activator: eu.fbk.af3.tools.diagram.ui.DiagramUIActivator
Require-Bundle: eu.fbk.af3.tools.diagram;visibility:=reexport,
org.fortiss.af3.component.ui;visibility:=reexport
......
......@@ -3,7 +3,7 @@ Automatic-Module-Name: eu.fbk.af3.tools.diagram
Bundle-ManifestVersion: 2
Bundle-Name: Diagram Document Creator
Bundle-SymbolicName: eu.fbk.af3.tools.diagram
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-Activator: eu.fbk.af3.tools.diagram.Activator
Bundle-Vendor: FBK (Fondazione Bruno Kessler)
Require-Bundle: org.eclipse.core.runtime,
......
......@@ -3,7 +3,7 @@ Automatic-Module-Name: org.fortiss.af3.allocation.ui
Bundle-ManifestVersion: 2
Bundle-Name: fortiss AF3 Allocation UI
Bundle-SymbolicName: org.fortiss.af3.allocation.ui;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-Activator: org.fortiss.af3.allocation.ui.AF3AllocationUIActivator
Require-Bundle: org.fortiss.af3.schedule.ui
Bundle-ActivationPolicy: lazy
......
......@@ -3,7 +3,7 @@ Automatic-Module-Name: org.fortiss.af3.allocation
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.fortiss.af3.allocation;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-ClassPath: .
Bundle-Vendor: %providerName
Bundle-Localization: plugin
......
......@@ -3,7 +3,7 @@ Automatic-Module-Name: org.fortiss.af3.component.ui
Bundle-ManifestVersion: 2
Bundle-Name: AF3 Component UI
Bundle-SymbolicName: org.fortiss.af3.component.ui;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-Activator: org.fortiss.af3.component.ui.AF3ComponentUIActivator
Require-Bundle: org.fortiss.af3.expression.ui;visibility:=reexport,
org.fortiss.af3.component;visibility:=reexport
......
ComponentSpecificationPropertySection.java fb5b6d82090f7ae063a8876b421529075d072939 GREEN
PortDataPropagation.java 9305d9fd7bb52398bdf227ddf7e1b54adac15808 GREEN
PortInitValueSection.java c25ad3fd1998f35c10a541caad3211f1333ae420 GREEN
PortSpecificationPropertySection.java 051d483d1ff4300fc4920de0f2a76eb12ee29fcc RED
PortInitValueSection.java ba26a87fbf4d0bce69e57d108b9939cfa5ab8fa8 GREEN
PortSpecificationPropertySection.java 225fbc0c6dab88e48da247321f870bebfdbd65f8 GREEN
TypeLabelProvider.java 5b0fcced122681125f7df55469ea19b3685eb8bd GREEN
......@@ -119,13 +119,18 @@ public class PortInitValueSection extends PropertySectionBase {
* is strong causal, the input value can be specified; if the parent component
* is not strong causal, the input value should be disabled.
*/
if(port.getComponent() == null) {
return;
}
IObservableValue<?> initValue = observeValue(this.spec,
AF3ComponentPackageImpl.Literals.PORT_SPECIFICATION__INITIAL_VALUE);
ITermToStringConverter modelToTextConverter = new ITermToStringConverter();
StringToIExpressionTermConverter textToModelConverter =
new StringToIExpressionTermConverter(this.spec);
IValidator textValidator = new StringToIExpressionTermValidator(this.spec);
@SuppressWarnings("rawtypes") IValidator textValidator =
new StringToIExpressionTermValidator(this.spec);
IType type = this.spec.getType();
if(type instanceof TInt) {
......
......@@ -246,7 +246,7 @@ public final class PortSpecificationPropertySection extends PropertySectionBase
public void refresh() {
super.refresh();
if(spec == null) {
if(spec == null || port.getComponent() == null) {
return;
}
......
......@@ -3,7 +3,7 @@ Automatic-Module-Name: org.fortiss.af3.component
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.fortiss.af3.component;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-ClassPath: .
Bundle-Vendor: %providerName
Bundle-Localization: plugin
......
......@@ -3,6 +3,6 @@ BehaviorComponentCompositorBase.java fb4774202dcb216450b206c6bec17ae0786cf79c GR
ComponentArchitectureCompositor.java 166faf6111d527724d966a734b702650706a20ce GREEN
ComponentArchitectureFileProjectCompositor.java 1b972b98efb662fc0e51b9abd0389ccabf314445 GREEN
ComponentCompositor.java 17115be2194e0a0581bf350f0b0013c270381939 GREEN
ComponentConnectionCompositor.java 3f2f5f557061557792f82c5d93441fde14ed9c44 GREEN
ComponentConnectionCompositor.java 7e5869de82be61d684369ad0e573661080e048b6 GREEN
LibraryComponentPackageCompositor.java 0e3dcd3e839e275dd7a23e83388d66ae0cd180df GREEN
LibraryCompositor.java e6a47934d3b561fdde707ca1abeb56b27bb78ea2 GREEN
......@@ -105,17 +105,16 @@ public class ComponentConnectionCompositor
Component sourceComponent = sourcePort.getComponent();
Component targetComponent = targetPort.getComponent();
boolean isNeighbouringLevels = (parentComponent.equals(sourceComponent) ||
parentComponent.equals(targetComponent)) &&
!sourceComponent.equals(targetComponent);
boolean sourceIsParentComponentPort = parentComponent.equals(sourceComponent);
boolean targetIsParentComponentPort = parentComponent.equals(targetComponent);
// Inside the parent component, the ports of the parent component change their kind.
// Input ports become output ports and vice versa.
boolean sourceIsOutput = sourceIsParentComponentPort ? (sourcePort instanceof InputPort)
: (sourcePort instanceof OutputPort);
boolean targetIsInput = targetIsParentComponentPort ? (targetPort instanceof OutputPort)
: (targetPort instanceof InputPort);
// If the connection goes from one level to a higher one, both ports must be of same type
if(isNeighbouringLevels) {
return sourcePort.getClass() == targetPort.getClass();
}
// If on the same level, channels must be modeled from the output to the input port.
return sourcePort instanceof OutputPort && targetPort instanceof InputPort;
return sourceIsOutput && targetIsInput;
}
/**
......
......@@ -3,7 +3,7 @@ Automatic-Module-Name: org.fortiss.af3.cosimulation.ui
Bundle-ManifestVersion: 2
Bundle-Name: AF3 Cosimulation UI
Bundle-SymbolicName: org.fortiss.af3.cosimulation.ui;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-Activator: org.fortiss.af3.cosimulation.ui.AF3CosimulationUIActivator
Require-Bundle: org.fortiss.af3.cosimulation;visibility:=reexport,
org.fortiss.af3.component.ui;visibility:=reexport
......
......@@ -13,14 +13,14 @@
<children>
<TitledPane text="External Behavior Specification" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<content>
<HBox prefHeight="122.0" prefWidth="488.0">
<HBox alignment="CENTER_LEFT" maxWidth="1.7976931348623157E308">
<children>
<Label prefHeight="24.0" prefWidth="34.0" text="Path:">
<Label text="Path:">
<font>
<Font size="14.0" />
</font>
</Label>
<TextField fx:id="browseTextField" editable="false" HBox.hgrow="ALWAYS">
<TextField fx:id="browseTextField" editable="false" maxWidth="1.7976931348623157E308" HBox.hgrow="ALWAYS">
<font>
<Font size="14.0" />
</font>
......
......@@ -3,7 +3,7 @@ Automatic-Module-Name: org.fortiss.af3.cosimulation
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.fortiss.af3.cosimulation;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-ClassPath: .
Bundle-Vendor: %providerName
Bundle-Localization: plugin
......
......@@ -3,7 +3,7 @@ Automatic-Module-Name: org.fortiss.af3.exploration.smt
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.fortiss.af3.exploration.smt;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-ClassPath: .
Bundle-Vendor: %providerName
Bundle-Localization: plugin
......
<?xml version="1.0" encoding="UTF-8"?>
<org-fortiss-af3-project:FileProject xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org-fortiss-af3-allocation="http://www.fortiss.org/af3/allocation" xmlns:org-fortiss-af3-component="http://www.fortiss.org/af3/component" xmlns:org-fortiss-af3-expression="http://www.fortiss.org/af3/expression" xmlns:org-fortiss-af3-expression-terms="http://www.fortiss.org/af3/expression/terms" xmlns:org-fortiss-af3-expression-types="http://www.fortiss.org/af3/expression/types" xmlns:org-fortiss-af3-platform="http://www.fortiss.org/af3/platform" xmlns:org-fortiss-af3-platform-annotation="http://www.fortiss.org/af3/platform/annotation" xmlns:org-fortiss-af3-platform-generic="http://www.fortiss.org/af3/platform/generic" xmlns:org-fortiss-af3-platform-hierarchic-annotation="http://www.fortiss.org/af3/platform/hierarchic/annotation" xmlns:org-fortiss-af3-project="http://www.fortiss.org/af3/project" xmlns:org-fortiss-af3-project-configuration="http://www.fortiss.org/af3/project/configuration" xmlns:org-fortiss-af3-project-development="http://www.fortiss.org/af3/project/development" xmlns:org-fortiss-af3-safety-annotation="http://www.fortiss.org/af3/safety/annotation" xmlns:org-fortiss-af3-task="http://www.fortiss.org/af3/task" xmlns:org-fortiss-af3-task-allocation="http://www.fortiss.org/af3/task/allocation" xmlns:org-fortiss-af3-task-annotation="http://www.fortiss.org/af3/task/annotation" xmlns:org-fortiss-af3-task-timing="http://www.fortiss.org/af3/task/timing" xmlns:org-fortiss-af3-timing="http://www.fortiss.org/af3/timing" xmlns:org-fortiss-af3-timing-annotation="http://www.fortiss.org/af3/timing/annotation" xmlns:org-fortiss-tooling-base-model-layout="http://www.fortiss.org/tooling/base/model/layout" xmi:id="26" id="26" name="system_test_flat" af3Version="2.16.0.qualifier">
<org-fortiss-af3-project:FileProject xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org-fortiss-af3-allocation="http://www.fortiss.org/af3/allocation" xmlns:org-fortiss-af3-component="http://www.fortiss.org/af3/component" xmlns:org-fortiss-af3-expression="http://www.fortiss.org/af3/expression" xmlns:org-fortiss-af3-expression-terms="http://www.fortiss.org/af3/expression/terms" xmlns:org-fortiss-af3-expression-types="http://www.fortiss.org/af3/expression/types" xmlns:org-fortiss-af3-platform="http://www.fortiss.org/af3/platform" xmlns:org-fortiss-af3-platform-annotation="http://www.fortiss.org/af3/platform/annotation" xmlns:org-fortiss-af3-platform-generic="http://www.fortiss.org/af3/platform/generic" xmlns:org-fortiss-af3-platform-hierarchic-annotation="http://www.fortiss.org/af3/platform/hierarchic/annotation" xmlns:org-fortiss-af3-project="http://www.fortiss.org/af3/project" xmlns:org-fortiss-af3-project-configuration="http://www.fortiss.org/af3/project/configuration" xmlns:org-fortiss-af3-project-development="http://www.fortiss.org/af3/project/development" xmlns:org-fortiss-af3-safety-annotation="http://www.fortiss.org/af3/safety/annotation" xmlns:org-fortiss-af3-task="http://www.fortiss.org/af3/task" xmlns:org-fortiss-af3-task-allocation="http://www.fortiss.org/af3/task/allocation" xmlns:org-fortiss-af3-task-annotation="http://www.fortiss.org/af3/task/annotation" xmlns:org-fortiss-af3-task-timing="http://www.fortiss.org/af3/task/timing" xmlns:org-fortiss-af3-timing="http://www.fortiss.org/af3/timing" xmlns:org-fortiss-af3-timing-annotation="http://www.fortiss.org/af3/timing/annotation" xmlns:org-fortiss-tooling-base-model-layout="http://www.fortiss.org/tooling/base/model/layout" xmi:id="26" id="26" name="system_test_flat" af3Version="2.17.0.qualifier">
<rootElements xsi:type="org-fortiss-af3-project:ProjectConfiguration" xmi:id="1" id="1">
<configurationElements xsi:type="org-fortiss-af3-project-configuration:TypeSystemConfiguration" xmi:id="2" id="2">
<typesystem xsi:type="org-fortiss-af3-expression:MicroTypeSystem"/>
......
<?xml version="1.0" encoding="UTF-8"?>
<org-fortiss-af3-project:FileProject xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org-fortiss-af3-allocation="http://www.fortiss.org/af3/allocation" xmlns:org-fortiss-af3-component="http://www.fortiss.org/af3/component" xmlns:org-fortiss-af3-expression="http://www.fortiss.org/af3/expression" xmlns:org-fortiss-af3-expression-terms="http://www.fortiss.org/af3/expression/terms" xmlns:org-fortiss-af3-expression-types="http://www.fortiss.org/af3/expression/types" xmlns:org-fortiss-af3-platform="http://www.fortiss.org/af3/platform" xmlns:org-fortiss-af3-platform-annotation="http://www.fortiss.org/af3/platform/annotation" xmlns:org-fortiss-af3-platform-hierarchic-annotation="http://www.fortiss.org/af3/platform/hierarchic/annotation" xmlns:org-fortiss-af3-platform-hierarchic-node="http://www.fortiss.org/af3/platform/hierarchic/node" xmlns:org-fortiss-af3-platform-hierarchic-processor="http://www.fortiss.org/af3/platform/hierarchic/processor" xmlns:org-fortiss-af3-platform-hierarchic-tile="http://www.fortiss.org/af3/platform/hierarchic/tile" xmlns:org-fortiss-af3-project="http://www.fortiss.org/af3/project" xmlns:org-fortiss-af3-project-configuration="http://www.fortiss.org/af3/project/configuration" xmlns:org-fortiss-af3-project-development="http://www.fortiss.org/af3/project/development" xmlns:org-fortiss-af3-safety-annotation="http://www.fortiss.org/af3/safety/annotation" xmlns:org-fortiss-af3-task="http://www.fortiss.org/af3/task" xmlns:org-fortiss-af3-task-allocation="http://www.fortiss.org/af3/task/allocation" xmlns:org-fortiss-af3-task-annotation="http://www.fortiss.org/af3/task/annotation" xmlns:org-fortiss-af3-task-timing="http://www.fortiss.org/af3/task/timing" xmlns:org-fortiss-af3-timing="http://www.fortiss.org/af3/timing" xmlns:org-fortiss-af3-timing-annotation="http://www.fortiss.org/af3/timing/annotation" xmlns:org-fortiss-tooling-base-model-layout="http://www.fortiss.org/tooling/base/model/layout" xmi:id="26" id="26" name="system_test_hierarchical" af3Version="2.16.0.qualifier">
<org-fortiss-af3-project:FileProject xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:org-fortiss-af3-allocation="http://www.fortiss.org/af3/allocation" xmlns:org-fortiss-af3-component="http://www.fortiss.org/af3/component" xmlns:org-fortiss-af3-expression="http://www.fortiss.org/af3/expression" xmlns:org-fortiss-af3-expression-terms="http://www.fortiss.org/af3/expression/terms" xmlns:org-fortiss-af3-expression-types="http://www.fortiss.org/af3/expression/types" xmlns:org-fortiss-af3-platform="http://www.fortiss.org/af3/platform" xmlns:org-fortiss-af3-platform-annotation="http://www.fortiss.org/af3/platform/annotation" xmlns:org-fortiss-af3-platform-hierarchic-annotation="http://www.fortiss.org/af3/platform/hierarchic/annotation" xmlns:org-fortiss-af3-platform-hierarchic-node="http://www.fortiss.org/af3/platform/hierarchic/node" xmlns:org-fortiss-af3-platform-hierarchic-processor="http://www.fortiss.org/af3/platform/hierarchic/processor" xmlns:org-fortiss-af3-platform-hierarchic-tile="http://www.fortiss.org/af3/platform/hierarchic/tile" xmlns:org-fortiss-af3-project="http://www.fortiss.org/af3/project" xmlns:org-fortiss-af3-project-configuration="http://www.fortiss.org/af3/project/configuration" xmlns:org-fortiss-af3-project-development="http://www.fortiss.org/af3/project/development" xmlns:org-fortiss-af3-safety-annotation="http://www.fortiss.org/af3/safety/annotation" xmlns:org-fortiss-af3-task="http://www.fortiss.org/af3/task" xmlns:org-fortiss-af3-task-allocation="http://www.fortiss.org/af3/task/allocation" xmlns:org-fortiss-af3-task-annotation="http://www.fortiss.org/af3/task/annotation" xmlns:org-fortiss-af3-task-timing="http://www.fortiss.org/af3/task/timing" xmlns:org-fortiss-af3-timing="http://www.fortiss.org/af3/timing" xmlns:org-fortiss-af3-timing-annotation="http://www.fortiss.org/af3/timing/annotation" xmlns:org-fortiss-tooling-base-model-layout="http://www.fortiss.org/tooling/base/model/layout" xmi:id="26" id="26" name="system_test_hierarchical" af3Version="2.17.0.qualifier">
<rootElements xsi:type="org-fortiss-af3-project:ProjectConfiguration" xmi:id="1" id="1">
<configurationElements xsi:type="org-fortiss-af3-project-configuration:TypeSystemConfiguration" xmi:id="2" id="2">
<typesystem xsi:type="org-fortiss-af3-expression:MicroTypeSystem"/>
......
......@@ -3,7 +3,7 @@ Automatic-Module-Name: org.fortiss.af3.exploration.ui
Bundle-ManifestVersion: 2
Bundle-Name: AF3 Exploration UI
Bundle-SymbolicName: org.fortiss.af3.exploration.ui;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-ClassPath: .
Bundle-Localization: plugin
Bundle-Activator: org.fortiss.af3.exploration.ui.AF3ExplorationUIActivator
......
......@@ -3,7 +3,7 @@ Automatic-Module-Name: org.fortiss.af3.exploration
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.fortiss.af3.exploration;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-ClassPath: .
Bundle-Vendor: %providerName
Bundle-Localization: plugin
......
......@@ -3,7 +3,7 @@ Automatic-Module-Name: org.fortiss.af3.expression.ui
Bundle-ManifestVersion: 2
Bundle-Name: AF3 Expression UI
Bundle-SymbolicName: org.fortiss.af3.expression.ui;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-Activator: org.fortiss.af3.expression.ui.AF3ExpressionUIActivator
Bundle-ClassPath: .
Require-Bundle: org.fortiss.af3.component;visibility:=reexport,
......
......@@ -3,7 +3,7 @@ Automatic-Module-Name: org.fortiss.af3.expression
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.fortiss.af3.expression;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-ClassPath: .,
lib/antlr-3.5-complete.jar
Bundle-Vendor: %providerName
......
......@@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>org.fortiss.af3.expression</artifactId>
<version>2.16.0-SNAPSHOT</version>
<version>2.17.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<parent>
......
......@@ -3,7 +3,7 @@ Automatic-Module-Name: org.fortiss.af3.generator.common
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.fortiss.af3.generator.common;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-ClassPath: .,
lib/antlr-3.5-complete.jar
Bundle-Vendor: %providerName
......
......@@ -3,7 +3,7 @@ Automatic-Module-Name: org.fortiss.af3.mira.ui
Bundle-ManifestVersion: 2
Bundle-Name: AF3 MIRA UI
Bundle-SymbolicName: org.fortiss.af3.mira.ui;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-ClassPath: .
Bundle-Vendor: fortiss GmbH
Bundle-RequiredExecutionEnvironment: JavaSE-11
......
......@@ -6,6 +6,7 @@ bin.includes = .,\
icons/,\
plugin.properties
jars.compile.order = .
source.. = src/,\
source.. = res/,\
src/,\
test-src/
output = build
......@@ -3,7 +3,7 @@ Automatic-Module-Name: org.fortiss.af3.mira
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.fortiss.af3.mira;singleton:=true
Bundle-Version: 2.16.0.qualifier
Bundle-Version: 2.17.0.qualifier
Bundle-ClassPath: .,
lib/com4j.jar,
lib/com4j-office.jar
......
......@@ -12,4 +12,3 @@ source.. = generated-src/,\
test-src/,\
src/
output = build
src.includes = schema/
......@@ -3,7 +3,6 @@
<!-- (c) 2011 fortiss GmbH -->
<plugin>
<extension-point id="relation" name="AF3 Requirements Relation " schema="schema/relation.exsd"/>
<extension point="org.eclipse.emf.ecore.generated_package">
<!-- @generated mira -->
......@@ -47,7 +46,7 @@
</extension>
<extension point="org.fortiss.tooling.kernel.modelElementConstraintChecker">
<modelElementConstraintChecker checker="org.fortiss.af3.mira.verification.AnalysisRedundantRequirementChecker">
<modelElementConstraintChecker checker="org.fortiss.af3.mira.verification.AnalysisRequirementChecker">
<modelElementClass modelElementClass="org.fortiss.af3.mira.model.Analysis"/>
</modelElementConstraintChecker>
......@@ -58,25 +57,4 @@
<super type="org.eclipse.core.resources.problemmarker"/>
<persistent value="true"/>
</extension>
<extension point="org.fortiss.af3.mira.relation">
<relation handler="org.fortiss.af3.mira.relation.handler.ConflictHandler">
<modelElementClass modelElementClass="org.fortiss.af3.mira.model.relations.ConflictedRequirementRelationType"/>
</relation>
<relation handler="org.fortiss.af3.mira.relation.handler.ContradictingHandler">
<modelElementClass modelElementClass="org.fortiss.af3.mira.model.relations.ContradictingRequirementRelationType"/>
</relation>
<relation handler="org.fortiss.af3.mira.relation.handler.DefinedUndirectedRelationHandler">
<modelElementClass modelElementClass="org.fortiss.af3.mira.model.relations.DefinedUndirectedRequirementRelationType"/>
</relation>
<relation handler="org.fortiss.af3.mira.relation.handler.OverridingHandler">
<modelElementClass modelElementClass="org.fortiss.af3.mira.model.relations.OverridingRequirementRelationType"/>
</relation>
<relation handler="org.fortiss.af3.mira.relation.handler.RefinementHandler">
<modelElementClass modelElementClass="org.fortiss.af3.mira.model.relations.RefinementRequirementRelationType"/>
</relation>
<relation handler="org.fortiss.af3.mira.relation.handler.DefinedDirectedRelationHandler">
<modelElementClass modelElementClass="org.fortiss.af3.mira.model.relations.DefinedDirectedRequirementRelationType"/>
</relation>
</extension>
</plugin>
<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.fortiss.af3.mira" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
<appInfo>
<meta.schema plugin="org.fortiss.af3.mira" id="relation" name="AF3 Mira Requirements Relation"/>
</appInfo>
<documentation>
Plugin mechanism for AF3 requirement relations.
</documentation>
</annotation>
<include schemaLocation="schema://org.fortiss.tooling.kernel/schema/modelElement.exsd"/>
<element name="extension">
<annotation>
<appInfo>
<meta.element />
</appInfo>
</annotation>
<complexType>
<sequence>
<element ref="relation" minOccurs="1" maxOccurs="unbounded"/>
</sequence>
<attribute name="point" type="string" use="required">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="id" type="string">
<annotation>
<documentation>
</documentation>
</annotation>
</attribute>
<attribute name="name" type="string">
<annotation>
<documentation>
</documentation>
<appInfo>
<meta.attribute translatable="true"/>
</appInfo>
</annotation>
</attribute>
</complexType>
</element>
<element name="relation">
<annotation>
<documentation>
Registers a requirements relation handler.
</documentation>
</annotation>
<complexType>
<sequence>
<element ref="modelElementClass" minOccurs="1" maxOccurs="unbounded"/>
</sequence>
<attribute name="handler" type="string" use="required">
<annotation>
<documentation>
The type system handler to be used to access the type system API.
</documentation>
<appInfo>
<meta.attribute kind="java" basedOn=":org.fortiss.af3.mira.relation.IRelationHandler"/>
</appInfo>
</annotation>
</attribute>
</complexType>
</element>
<annotation>
<appInfo>
<meta.section type="since"/>
</appInfo>
<documentation>
2011
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="examples"/>
</appInfo>
<documentation>
[Enter extension point usage example here.]
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="apiinfo"/>
</appInfo>
<documentation>
[Enter API information here.]
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="implementation"/>
</appInfo>
<documentation>
[Enter information about supplied implementation of this extension point.]
</documentation>
</annotation>
<annotation>
<appInfo>
<meta.section type="copyright"/>
</appInfo>
<documentation>
/*-------------------------------------------------------------------------+
| Copyright 2011 fortiss GmbH |
| |
| Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an &quot;AS IS&quot; BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
+--------------------------------------------------------------------------*/
</documentation>
</annotation>
</schema>
AnalysisRedundantRequirementChecker.java a3afd6e4b003f97104b3e348138aa8ec6db74345 GREEN
ConstraintMessage.java e9ded590ec0fbabf547c29251ee7e0d829f73e59 GREEN
RequirementConstraintViolation.java 9a21e7c397645eb00603cfb5dc376f3b8bd62b95 GREEN
AnalysisRequirementChecker.java 38f77e775e63d0a68df1c80883bf4620981a6a93 GREEN
ConstraintMessage.java ae5042e9f2cba030b43143ba0d0acebb0c1b7de7 GREEN
RequirementConstraintViolation.java 1e13c74b2c02f6591220243a5865c4f1cdc54fa5 GREEN
......@@ -16,6 +16,7 @@
package org.fortiss.af3.mira.verification;
import static org.fortiss.af3.mira.verification.ConstraintMessage.createSameDescriptionViolation;
import static org.fortiss.af3.mira.verification.ConstraintMessage.createSameIdViolation;
import static org.fortiss.af3.mira.verification.ConstraintMessage.createSameNameAndActorsViolation;
import static org.fortiss.af3.mira.verification.ConstraintMessage.createSameNameViolation;
......@@ -35,7 +36,7 @@ import org.fortiss.tooling.kernel.extension.base.ConstraintCheckerBase;
*
* @author uden
*/
public class AnalysisRedundantRequirementChecker extends ConstraintCheckerBase<Analysis> {
public class AnalysisRequirementChecker extends ConstraintCheckerBase<Analysis> {
/** {@inheritDoc} */
@Override
......@@ -44,14 +45,29 @@ public class AnalysisRedundantRequirementChecker extends ConstraintCheckerBase<A
ArrayList<RequirementConstraintViolation<Requirement>> result =
new ArrayList<RequirementConstraintViolation<Requirement>>();
/** (D) */
EList<Requirement> requirementsList = analysis.getRequirementsList();
for(int i = 0; i < requirementsList.size(); i++) {
Requirement req1 = requirementsList.get(i);
// Check Requirements' fields
if((req1.getName() == null) || (req1.getName().strip().length() == 0)) {
result.add(ConstraintMessage.createEmtpyNameViolation(req1));
}
if((req1.getAuthor() == null) || (req1.getAuthor().strip().length() == 0)) {
result.add(ConstraintMessage.createEmptyAuthorViolation(req1));
}
if((req1.getDescription() == null) || (req1.getDescription().strip().length() == 0)) {
result.add(ConstraintMessage.createEmptyDescriptionViolation(req1));
}
// Check for conflicts with other Requirements
for(int j = i + 1; j < requirementsList.size(); j++) {
Requirement req1 = requirementsList.get(i);
Requirement req2 = requirementsList.get(j);
boolean duplicatedName = false;
boolean duplicatedId = false;
boolean duplicatedDescription = false;
boolean duplicatedActor = false;
......@@ -60,6 +76,11 @@ public class AnalysisRedundantRequirementChecker extends ConstraintCheckerBase<A
duplicatedName = true;
}
if(!StringUtils.isEmpty(req1.getReqId()) && !StringUtils.isEmpty(req2.getReqId()) &&
req1.getReqId().strip().equalsIgnoreCase(req2.getReqId().strip())) {
duplicatedId = true;
}