Commit 3a67dcd8 authored by Simon Barner's avatar Simon Barner
Browse files

Make refinement, testing, and verification/model-checking optional

* Affected plugins
  * org.fortiss.af3.ocra
  * org.fortiss.af3.refinement
  * org.fortiss.af3.refinement.ui
  * org.fortiss.af3.specification
  * org.fortiss.af3.specification.ui
  * org.fortiss.af3.testing
  * org.fortiss.af3.testing.ui
  * org.fortiss.af3.tools
  * org.fortiss.pragmatictransformation
* In most of the cases, move integration of remaining plugins (e.g.,
  commands, actions, ...) to one of the know optional plugins
* A few code sections had to be commented. This is further tracked
  in #3863 and #3864

Issue-Ref: 3861
Issue-Url: https://af3-developer.fortiss.org/issues/3861

Signed-off-by: Simon Barner's avatarSimon Barner <barner@fortiss.org>
parent d8ddd7da
......@@ -7,7 +7,6 @@ Bundle-Version: 2.16.0.qualifier
Bundle-Activator: eu.fbk.af3.tools.diagram.ui.DiagramUIActivator
Require-Bundle: eu.fbk.af3.tools.diagram;bundle-version="1.0.0",
org.fortiss.af3.component.ui,
org.fortiss.af3.specification,
org.eclipse.ui.workbench,
org.apache.log4j
Bundle-RequiredExecutionEnvironment: JavaSE-11
......
AbstractComponentToImage.java 2da368d234415e072899b1827c83fa78b5523ffc GREEN
ExportComponentToImage.java 9f2c80bdb1af3bf3a6e6e7f8576785bd651e2d58 GREEN
ExportModelToDocument.java bae773e85bf862bfb45e6cdf7ae8959a9025e219 GREEN
ExportModelToDocument.java 4e13fb5d6bb0d264852bc490b51c3dd11b01f587 YELLOW
......@@ -25,7 +25,6 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.eclipse.core.runtime.Platform;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.ActionContributionItem;
......@@ -73,11 +72,6 @@ public class ExportModelToDocument extends AbstractComponentToImage {
@Override
public List<IContributionItem> getContributedItems(EObject selection,
ContextMenuContextProvider contextProvider) {
// Hacky trick to allow overriding by the ocra plugin. Eclipse extension point
// should be investigated
if(Platform.getBundle("eu.fbk.af3.tools.ocra.ui") != null) {
return Collections.emptyList();
}
selectedComponent = null;
......
AnnotationConfiguration.java 8bdbeff8581523d9366f56f629ed6406f266ef63 GREEN
CodeAndOCRAContractEditorConfiguration.java c1bb0e3ed8e146d08db80af104b23cab5840101d GREEN
CodeEditorConfiguration.java b0d6dd0f6ead1a8c88e8724e9e15d439da8c0550 GREEN
CodeEditorConfiguration.java 2ca751b161d20a07e24114ada36f6bbc6470a8f9 GREEN
CodeEditorConfigurationBase.java cacadee36c976c3e34be00f400cce4af4624a1fa GREEN
UndoRedo.java 7bd80ec2023194a737470b3ebcb7600873adc067 GREEN
......@@ -34,7 +34,7 @@ import org.fortiss.af3.component.ui.editor.CodeSpecificationEditor;
* @author doebber
*/
public class CodeEditorConfiguration
extends CodeAndOCRAContractEditorConfiguration<CodeSpecification> {
extends CodeEditorConfigurationBase<CodeSpecification> {
/** Constructor. */
public CodeEditorConfiguration(CodeSpecificationEditor editor) {
......
......@@ -58,11 +58,11 @@ import org.fortiss.tooling.base.ui.editor.SourceEditorConfigurationBase;
* @author doebber
*/
public abstract class CodeAndOCRAContractEditorConfiguration<T extends EObject>
public abstract class CodeEditorConfigurationBase<T extends EObject>
extends SourceEditorConfigurationBase<T> {
/** Constructor. */
public CodeAndOCRAContractEditorConfiguration(SourceEditorBase<T> editor) {
public CodeEditorConfigurationBase(SourceEditorBase<T> editor) {
super(editor);
}
......
......@@ -12,9 +12,7 @@ Bundle-ActivationPolicy: lazy
Bundle-Activator: org.fortiss.af3.component.AF3ComponentActivator
Require-Bundle: org.fortiss.af3.allocation;visibility:=reexport,
org.fortiss.af3.expression;visibility:=reexport,
org.fortiss.af3.project;visibility:=reexport,
org.fortiss.pragmatictransformation,
org.fortiss.af3.tools
org.fortiss.af3.project;visibility:=reexport
Export-Package: org.fortiss.af3.component;uses:="org.osgi.framework,
org.eclipse.core.runtime",
org.fortiss.af3.component.compose,
......
documentation.html 5dd7922ecb86cb895bb27d11d721a6dd286ec802 GREEN
documentation.html 837e8ee051327fd1cb745cf47de5075ba4786083 YELLOW
......@@ -42,7 +42,6 @@ is called the <i>Component Architecture Root</i>.</p>
<li><tt>component.generator.component</tt>: intermediate language generator for composite components and code
specifications.</li>
<li><tt>component.generator.java</tt>: Java-code generator.</li>
<li><tt>component.generator.nusmv</tt>: a collection of transformations from this model to <i>NuSMV</i>.</li>
<li><tt>component.library</tt>: classes for dealing with the library of components.</li>
<li><tt>component.library.prototypes</tt>: prototypes for the library of components.</li>
<li><tt>component.model.behavior.common.impl</tt>: static implementations for EOperations defined by
......
......@@ -17,7 +17,6 @@ Require-Bundle: org.fortiss.af3.generator.common;bundle-version="2.16.0";visibil
org.fortiss.af3.project;visibility:=reexport,
org.fortiss.tooling.kernel;visibility:=reexport,
org.fortiss.tooling.base;visibility:=reexport,
org.fortiss.pragmatictransformation;bundle-version="2.16.0",
com.microsoft.z3;bundle-version="2.16.0"
Export-Package: org.antlr.stringtemplate,
org.antlr.stringtemplate.language,
......
......@@ -13,7 +13,6 @@ Require-Bundle: org.eclipse.core.databinding.beans;bundle-version="1.2.100",
org.eclipse.swtbot.junit4_x;bundle-version="2.0.0";resolution:=optional,
org.fortiss.af3.mira;bundle-version="2.16.0";visibility:=reexport,
org.fortiss.af3.safety.ui;bundle-version="2.16.0",
org.fortiss.af3.refinement;bundle-version="2.16.0";visibility:=reexport,
org.fortiss.af3.mode;bundle-version="2.16.0",
org.fortiss.tooling.base.ui,
org.fortiss.tooling.kernel.ui,
......@@ -21,7 +20,8 @@ Require-Bundle: org.eclipse.core.databinding.beans;bundle-version="1.2.100",
org.eclipse.emf.ecore,
org.eclipse.jface.text,
org.fortiss.tooling.kernel,
org.eclipse.swt
org.eclipse.swt,
org.fortiss.af3.state
Bundle-ActivationPolicy: lazy
Bundle-Activator: org.fortiss.af3.mira.ui.AF3MiraUIActivator
Export-Package: org.fortiss.af3.mira.ui,
......
AF3MiraUIActivator.java d62d33969641622e01d11884bb8b4b8eb77840f9 GREEN
AF3MiraUIActivator.java 39d868e5aa2fcf5c4e556d7ea76caa83d096f401 YELLOW
MiraContextMenuContributor.java cd239d82182cf10c740e2e3449f37f6698b02f99 GREEN
......@@ -38,7 +38,6 @@ import org.fortiss.af3.mira.constraints.NonFunctionalReqsHaveExactlyOneFunctiona
import org.fortiss.af3.mira.constraints.OnlyOneSILConstraint;
import org.fortiss.af3.mira.constraints.ParameterTypeConstraint;
import org.fortiss.af3.mira.constraints.RationaleConstraint;
import org.fortiss.af3.mira.constraints.RequirementContainsTestSuiteConstraint;
import org.fortiss.af3.mira.constraints.RequirementExistsConstraint;
import org.fortiss.af3.mira.constraints.RequirementImplementedCorrectlyConstraint;
import org.fortiss.af3.mira.constraints.ReviewNonConflictingConstraint;
......@@ -69,7 +68,6 @@ import org.fortiss.af3.mira.ui.constraints.NonFunctionalReqsHaveExactlyOneFuncti
import org.fortiss.af3.mira.ui.constraints.OnlyOneSILConstraintUI;
import org.fortiss.af3.mira.ui.constraints.ParameterTypeConstraintUI;
import org.fortiss.af3.mira.ui.constraints.RationaleConstraintUI;
import org.fortiss.af3.mira.ui.constraints.RequirementContainsTestSuiteConstraintUI;
import org.fortiss.af3.mira.ui.constraints.RequirementExistsConstraintUI;
import org.fortiss.af3.mira.ui.constraints.RequirementImplementedCorrectlyConstraintUI;
import org.fortiss.af3.mira.ui.constraints.ReviewNonConflictingConstraintUI;
......@@ -119,9 +117,6 @@ public class AF3MiraUIActivator extends AbstractUIPlugin {
ReviewUnambiguousConstraint.class);
IConstraintUIService.getInstance().registerConstraintUI(UniqueSignalNameConstraintUI.class,
UniqueSignalNameConstraint.class);
IConstraintUIService.getInstance().registerConstraintUI(
RequirementContainsTestSuiteConstraintUI.class,
RequirementContainsTestSuiteConstraint.class);
IConstraintUIService.getInstance().registerConstraintUI(SignalTypeConstraintUI.class,
SignalTypeConstraint.class);
IConstraintUIService.getInstance().registerConstraintUI(NameConstraintUI.class,
......
ConnectExternalRelationToComponentAction.java 9a1c1c0f058a0c0d022ac7c1822728cd73e8b2ae GREEN
CreateGlossaryEntryAction.java 7714b7cc001a185f50993a19ec5d40c9caaefddf GREEN
CreateRefSpecAction.java 8353b4ea166f38e5ae76e1b71932b6c758bbcf86 GREEN
CreateRequirementSourceAction.java 07a6d69a9450b8f3204c44930fe6a06f68ba80b0 GREEN
DeleteRequirementSpecificationAction.java b31dcaa5c9f914bb3b0154ae84ea87d7fdf266be GREEN
GenerateSignals.java 42edd1c61955d67a34efddc879f26a82f23f46ed GREEN
......@@ -18,7 +18,6 @@ NonFunctionalReqsHaveExactlyOneFunctionalReqUI.java cf600a1f4498896a3536ff901e90
OnlyOneSILConstraintUI.java 4f5e86b846181d72c69e93a00970bb3af2a88fc9 GREEN
ParameterTypeConstraintUI.java d51da45415dffa135cb1ec093e0bd2865b9119d1 GREEN
RationaleConstraintUI.java 3e22eea390b00a4a9f9836199096c39421f47577 GREEN
RequirementContainsTestSuiteConstraintUI.java a627d2b5a7efccbaa6ec8c3287c60ede4f1f9fbd GREEN
RequirementExistsConstraintUI.java c400a0e7ede2c9b1b23e1d9a23853e73d21cfa64 GREEN
RequirementImplementedCorrectlyConstraintUI.java 8c2615c28a19ad6f5fe519593ff8bb3aafbb8311 GREEN
ReviewConstraintUI.java 6b15e767825718d8392bd4204112dd5f72248801 GREEN
......
RelationSection.java 17ee67da40292e54d8c4b269bad0b74464808d16 GREEN
RelationSection.java e5a51f90828e01e17caff076607e8fd06acf93c9 YELLOW
RequirementRelationStatusNameValidator.java 99cf70f3dded0944e9e24d50af6344fe7619e6e2 GREEN
RequirementRelationStatusSelectDialogEditSupport.java 3fc77479a7ef7fd272e9a450c52dfc5a762e0ef9 GREEN
......@@ -54,7 +54,6 @@ import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
......@@ -75,16 +74,13 @@ import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.actions.TextStyledTextActionHandler;
import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.fortiss.af3.component.model.Component;
import org.fortiss.af3.mira.command.CreateRequirementRelationCommand;
import org.fortiss.af3.mira.model.Analysis;
import org.fortiss.af3.mira.model.ExternalRelation;
import org.fortiss.af3.mira.model.Requirement;
import org.fortiss.af3.mira.model.RequirementRelation;
import org.fortiss.af3.mira.model.functional.FormalSpecification;
import org.fortiss.af3.mira.model.relations.DefinedRequirementRelationType;
import org.fortiss.af3.mira.model.relations.DirectedRequirementRelationType;
import org.fortiss.af3.mira.model.relations.RequirementRelationStatus;
......@@ -92,12 +88,9 @@ import org.fortiss.af3.mira.model.relations.RequirementRelationType;
import org.fortiss.af3.mira.model.relations.UndirectedRequirementRelationType;
import org.fortiss.af3.mira.relation.IRelationTypeHandler;
import org.fortiss.af3.mira.relation.IRelationTypeService;
import org.fortiss.af3.mira.ui.action.CreateRefSpecAction;
import org.fortiss.af3.mira.ui.editor.FormalSpecificationTreeContentProvider;
import org.fortiss.af3.mira.ui.editor.RequirementEditor;
import org.fortiss.af3.mira.ui.utils.TableRowIndexMap;
import org.fortiss.af3.mira.ui.utils.TableRowSelectionButtonMap;
import org.fortiss.af3.refinement.model.RefinementSpecification;
import org.fortiss.tooling.base.ui.editor.FormsEditorBase;
import org.fortiss.tooling.kernel.service.ICommandStackService;
import org.fortiss.tooling.kernel.ui.presentation.ModelElementLabelProvider;
......@@ -336,115 +329,119 @@ public class RelationSection {
createButtonAddRequirementRelation(relatedButtonToolbar);
createButtonRemoveRequirementRelation(relatedButtonToolbar);
createButtonCreateRefinementSpecification(relatedButtonToolbar);
// TODO (#3864): Refinement support has been moved to verification repository
// createButtonCreateRefinementSpecification(relatedButtonToolbar);
}
// TODO (#3864): Refinement support has been moved to verification repository
/**
* Creates a button that creates {@link RefinementSpecification}s from
* {@link RequirementRelation}s.
*/
private void createButtonCreateRefinementSpecification(Composite relatedButtonToolbar) {
Button refSpec = toolkit.createButton(relatedButtonToolbar, "Add refinement specification",
SWT.FLAT);
refSpec.addSelectionListener(new SelectionAdapter() {
/** {@inheritDoc} */
@Override
public void widgetSelected(SelectionEvent e) {
RequirementRelation selectedRelation = tableRowSelectionButtonMap.getSelectedRow();
if(selectedRelation == null) {
showWarning("No trace selected", "Please select a trace.");
return;
}
if(selectedRelation
.getRequirementRelationType() instanceof UndirectedRequirementRelationType) {
showWarning("Relation type incompatible",
"Only directed relations can be used to create refinement specifications.");
return;
}
if(selectedRelation.getSourceRequirement().size() == 0 ||
selectedRelation.getTargetRequirement().size() == 0) {
showWarning("Insufficient number of source/target requirements",
"At least one source and target requirement have to be assigned in the trace.");
return;
}
/** List of formal specifications of source requirements */
List<FormalSpecification> sourceSpecs = new ArrayList<FormalSpecification>();
/** List of formal specifications of target requirements */
List<FormalSpecification> targetSpecs = new ArrayList<FormalSpecification>();
for(Requirement sourceRequirement : selectedRelation.getSourceRequirement()) {
for(FormalSpecification fs : sourceRequirement.getFormalSpecifications()) {
if(fs.getTopComponent() != null)
sourceSpecs.add(fs);
}
}
for(Requirement targetRequirement : selectedRelation.getTargetRequirement()) {
for(FormalSpecification fs : targetRequirement.getFormalSpecifications()) {
if(fs.getTopComponent() != null)
targetSpecs.add(fs);
}
}
if(sourceSpecs.size() == 0) {
showWarning("No formal specification in source requirements found",
"No formal specifications for component refinement were found in any of the selected source requirements of this trace.");
return;
}
if(targetSpecs.size() == 0) {
showWarning("No formal specification in target requirements found",
"No formal specifications for component refinement were found in any of the selected target requirements of this trace.");
return;
}
// Open dialog of components.
ITreeContentProvider tcp = new FormalSpecificationTreeContentProvider();
ElementTreeSelectionDialog sourceDialog =
new ElementTreeSelectionDialog(shell, new ModelElementLabelProvider(), tcp);
sourceDialog.setAllowMultiple(false);
sourceDialog.setTitle(
"Select the refining component (from formal specifications of sources)");
sourceDialog.setInput(sourceSpecs);
if(sourceDialog.open() == 1 || sourceDialog.getFirstResult() == null) {
return;
}
ElementTreeSelectionDialog targetDialog =
new ElementTreeSelectionDialog(shell, new ModelElementLabelProvider(), tcp);
targetDialog.setAllowMultiple(false);
targetDialog.setTitle(
"Select the component to be refined (from formal specification of targets)");
targetDialog.setInput(targetSpecs);
if(targetDialog.open() == 1 || targetDialog.getFirstResult() == null) {
return;
}
// If a formal specification is chosen, instead its main component is set as the
// refinements target/source.
Object source = sourceDialog.getFirstResult();
Object target = targetDialog.getFirstResult();
if(source instanceof FormalSpecification) {
source = ((FormalSpecification)source).getTopComponent();
}
if(target instanceof FormalSpecification) {
target = ((FormalSpecification)target).getTopComponent();
}
// Create new refinement specification.
if(target != null && source != null && target instanceof Component &&
source instanceof Component) {
(new CreateRefSpecAction((Component)source, (Component)target)).run();
}
}
});
}
// private void createButtonCreateRefinementSpecification(Composite relatedButtonToolbar) {
// Button refSpec = toolkit.createButton(relatedButtonToolbar, "Add refinement specification",
// SWT.FLAT);
// refSpec.addSelectionListener(new SelectionAdapter() {
//
// /** {@inheritDoc} */
// @Override
// public void widgetSelected(SelectionEvent e) {
//
// RequirementRelation selectedRelation = tableRowSelectionButtonMap.getSelectedRow();
//
// if(selectedRelation == null) {
// showWarning("No trace selected", "Please select a trace.");
// return;
// }
//
// if(selectedRelation
// .getRequirementRelationType() instanceof UndirectedRequirementRelationType) {
// showWarning("Relation type incompatible",
// "Only directed relations can be used to create refinement specifications.");
// return;
// }
//
// if(selectedRelation.getSourceRequirement().size() == 0 ||
// selectedRelation.getTargetRequirement().size() == 0) {
// showWarning("Insufficient number of source/target requirements",
// "At least one source and target requirement have to be assigned in the trace.");
// return;
// }
//
// /** List of formal specifications of source requirements */
// List<FormalSpecification> sourceSpecs = new ArrayList<FormalSpecification>();
//
// /** List of formal specifications of target requirements */
// List<FormalSpecification> targetSpecs = new ArrayList<FormalSpecification>();
//
// for(Requirement sourceRequirement : selectedRelation.getSourceRequirement()) {
// for(FormalSpecification fs : sourceRequirement.getFormalSpecifications()) {
// if(fs.getTopComponent() != null)
// sourceSpecs.add(fs);
// }
// }
//
// for(Requirement targetRequirement : selectedRelation.getTargetRequirement()) {
// for(FormalSpecification fs : targetRequirement.getFormalSpecifications()) {
// if(fs.getTopComponent() != null)
// targetSpecs.add(fs);
// }
// }
//
// if(sourceSpecs.size() == 0) {
// showWarning("No formal specification in source requirements found",
// "No formal specifications for component refinement were found in any of the selected source
// requirements of this trace.");
// return;
// }
//
// if(targetSpecs.size() == 0) {
// showWarning("No formal specification in target requirements found",
// "No formal specifications for component refinement were found in any of the selected target
// requirements of this trace.");
// return;
// }
//
// // Open dialog of components.
// ITreeContentProvider tcp = new FormalSpecificationTreeContentProvider();
//
// ElementTreeSelectionDialog sourceDialog =
// new ElementTreeSelectionDialog(shell, new ModelElementLabelProvider(), tcp);
// sourceDialog.setAllowMultiple(false);
// sourceDialog.setTitle(
// "Select the refining component (from formal specifications of sources)");
// sourceDialog.setInput(sourceSpecs);
// if(sourceDialog.open() == 1 || sourceDialog.getFirstResult() == null) {
// return;
// }
// ElementTreeSelectionDialog targetDialog =
// new ElementTreeSelectionDialog(shell, new ModelElementLabelProvider(), tcp);
// targetDialog.setAllowMultiple(false);
// targetDialog.setTitle(
// "Select the component to be refined (from formal specification of targets)");
// targetDialog.setInput(targetSpecs);
// if(targetDialog.open() == 1 || targetDialog.getFirstResult() == null) {
// return;
// }
//
// // If a formal specification is chosen, instead its main component is set as the
// // refinements target/source.
// Object source = sourceDialog.getFirstResult();
// Object target = targetDialog.getFirstResult();
// if(source instanceof FormalSpecification) {
// source = ((FormalSpecification)source).getTopComponent();
// }
// if(target instanceof FormalSpecification) {
// target = ((FormalSpecification)target).getTopComponent();
// }
// // Create new refinement specification.
// if(target != null && source != null && target instanceof Component &&
// source instanceof Component) {
// (new CreateRefSpecAction((Component)source, (Component)target)).run();
// }
// }
// });
// }
/**
* Creates a button that removes a {@link RequirementRelation} from the selected requirement.
......
......@@ -4,7 +4,7 @@ ExternalSystemHandler.java 0b8613287068e6cd7dad78b52e1511a4ce58c8c1 GREEN
GlossaryEntryHandler.java e8d9100791c218e8897cf64f1beaf6afb42adeb5 GREEN
GlossaryHandler.java 5399ca3ba430b1f25f40e2b8f99fea126e686d34 GREEN
RequirementDocumentHandler.java cc7fd71e170994ce39896012a72ad939c5fa8888 GREEN
RequirementHandler.java faad09fcfac2d40a44396869f8a0eda15e6b84d2 GREEN
RequirementHandler.java 476150779a623880ee09602c7c5a4094e9b3bff5 YELLOW
RequirementRelationStatusHandler.java 4fca19e5048f4379ff98228c0b3065bfeb90122e GREEN
RequirementSourceHandler.java 032d9d026478ccf43711d15056763a70e8c21a8e GREEN
RequirementSpecificationHandler.java 8b40f9f3be20cdd70d7c7f9822c4e14c462284b7 GREEN
......
......@@ -20,11 +20,6 @@ import static org.eclipse.ui.plugin.AbstractUIPlugin.imageDescriptorFromPlugin;
import static org.fortiss.af3.mira.ui.AF3MiraUIActivator.PLUGIN_ID;
import static org.fortiss.af3.mira.ui.utils.RequirementUtils.getRequirementNavigatorViewWeight;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.jface.resource.ImageDescriptor;
import org.fortiss.af3.mira.model.DerivedRequirementSpecification;
import org.fortiss.af3.mira.model.ModeSpecification;
......@@ -37,7 +32,6 @@ import org.fortiss.af3.mira.model.safety.HazardRequirementSpecification;
import org.fortiss.af3.mira.model.safety.MooNSolutionRequirementSpecification;
import org.fortiss.af3.mira.model.timing.TimingRequirement;
import org.fortiss.af3.project.model.ParameterDefinition;
import org.fortiss.af3.testing.model.TestSuite;
import org.fortiss.tooling.base.model.element.IModelElementSpecification;
import org.fortiss.tooling.kernel.ui.extension.IModelElementHandler;
import org.fortiss.tooling.kernel.ui.extension.base.NamedCommentedModelElementHandlerBase;
......@@ -65,19 +59,20 @@ public class RequirementHandler extends NamedCommentedModelElementHandlerBase<Re
return comment.replaceAll("(\\r|\\n)", "");
}
/** {@inheritDoc} */
@Override
public List<EObject> getSubnodes(Requirement element) {
List<EObject> list = new ArrayList<EObject>(element.getContainedElements());
TreeIterator<EObject> treeIterator = element.eAllContents();
while(treeIterator.hasNext()) {
EObject eObject = treeIterator.next();
if(eObject instanceof TestSuite) {
list.add(eObject);
}
}
return list;
}
// TODO (#3864): Testing support has been moved to verification repository
// /** {@inheritDoc} */
// @Override
// public List<EObject> getSubnodes(Requirement element) {
// List<EObject> list = new ArrayList<EObject>(element.getContainedElements());
// TreeIterator<EObject> treeIterator = element.eAllContents();
// while(treeIterator.hasNext()) {
// EObject eObject = treeIterator.next();
// if(eObject instanceof TestSuite) {
// list.add(eObject);
// }
// }
// return list;
// }
/** {@inheritDoc} */
@Override
......
......@@ -60,9 +60,9 @@ Require-Bundle: org.eclipse.core.runtime,
org.fortiss.af3.expression;visibility:=reexport,
org.fortiss.af3.safety;bundle-version="2.16.0",
org.fortiss.af3.mode;bundle-version="2.16.0",
org.fortiss.af3.testing;bundle-version="2.16.0",
org.fortiss.af3.msc;bundle-version="2.16.0",
org.fortiss.tooling.base.ui
org.fortiss.tooling.base.ui,
org.fortiss.af3.state;bundle-version="2.16.0"
Bundle-ActivationPolicy: lazy
Bundle-NativeCode: lib/com4j-x86.dll; lib/com4j-amd64.dll
Bundle-Activator: org.fortiss.af3.mira.AF3MiraActivator
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment