Commit ce2f6b2b authored by Vincent Aravantinos's avatar Vincent Aravantinos
Browse files

fix build

parent 29436e0d
/*--------------------------------------------------------------------------+
$Id$
| |
| Copyright 2017 fortiss GmbH |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| 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 "AS IS" 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. |
+--------------------------------------------------------------------------*/
package org.fortiss.af3.mira.ui.editor;
import static org.fortiss.af3.mira.model.MiraPackage.Literals.PARAMETER_DEFINITION__VALUE;
import static org.fortiss.af3.mira.ui.utils.HighlightUtils.createSourceViewer;
import static org.fortiss.af3.mira.ui.utils.MiraLayoutUtils.singleLineInputFactory;
import static org.fortiss.af3.mira.ui.utils.MiraLayoutUtils.singleLineLabelFactory;
import static org.fortiss.tooling.kernel.model.FortissToolingKernelPackage.Literals.INAMED_ELEMENT__NAME;
import static org.fortiss.tooling.kernel.ui.util.DataBindingUtils.bind;
import java.util.List;
import org.eclipse.emf.databinding.EMFDataBindingContext;
import org.eclipse.jface.text.source.SourceViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.fortiss.af3.mira.model.Analysis;
import org.fortiss.af3.mira.model.ParameterDefinition;
import org.fortiss.af3.mira.model.Requirement;
/**
*
* @author aravantinos
* @author $Author$
* @version $Rev$
* @ConQAT.Rating RED Hash:
*/
public class ParameterDefinitionSectionExtension {
/** Composite for the safety part. */
private Composite composite;
/** Toolkit for creating widgets. */
private FormToolkit toolkit;
/** Databinding context. */
private EMFDataBindingContext dbc;
/** Edited specification. */
private ParameterDefinition editedObject;
/** Containing form. */
private ScrolledForm form;
/** List of "source viewers". For syntax highlighting. */
private List<SourceViewer> registeredSourceViewers;
/** Constructor. */
public ParameterDefinitionSectionExtension(Composite parameterSection, ParameterDefinition pd,
FormToolkit toolkit, EMFDataBindingContext dbc, ScrolledForm form,
List<SourceViewer> registeredSourceViewers) {
this.composite = parameterSection;
this.toolkit = toolkit;
this.dbc = dbc;
this.form = form;
this.editedObject = pd;
this.registeredSourceViewers = registeredSourceViewers;
}
/** Creates the safety section. */
public void apply() {
Label nameLabel = toolkit.createLabel(composite, "Name" + " ", SWT.READ_ONLY);
singleLineLabelFactory.applyTo(nameLabel);
Requirement req = (Requirement)editedObject.eContainer();
Analysis analysis = req.getAnalysis();
SourceViewer inputName = createSourceViewer(form, composite, SWT.BORDER, analysis);
registeredSourceViewers.add(inputName);
singleLineInputFactory.applyTo(inputName.getControl());
bind(dbc, inputName.getTextWidget(), editedObject, INAMED_ELEMENT__NAME);
Label valueLabel = toolkit.createLabel(composite, "Value" + " ", SWT.READ_ONLY);
singleLineLabelFactory.applyTo(valueLabel);
SourceViewer inputValue = createSourceViewer(form, composite, SWT.BORDER, analysis);
registeredSourceViewers.add(inputValue);
singleLineInputFactory.applyTo(inputValue.getControl());
bind(dbc, inputValue.getTextWidget(), editedObject, PARAMETER_DEFINITION__VALUE);
}
}
......@@ -95,6 +95,7 @@ import org.fortiss.af3.mira.model.ParameterDefinition;
import org.fortiss.af3.mira.model.Requirement;
import org.fortiss.af3.mira.model.RequirementPriority;
import org.fortiss.af3.mira.model.SafetyLevelRequirementSpecification;
import org.fortiss.af3.mira.model.functional.SignalContainerSpecification;
import org.fortiss.af3.mira.model.glossary.Glossary;
import org.fortiss.af3.mira.model.interfacebehaviour.InterfaceBehaviourSpecification;
import org.fortiss.af3.mira.model.requirementSource.FileItem;
......@@ -283,7 +284,7 @@ public class RequirementEditor<T extends Requirement> extends FormsEditorBase<T>
createNewSection("Parameter definition",
"This requirement defines the following parameter:");
parameterSection.setLayout(new GridLayout(2, false));
new ParameterDefinitionSectionExtension(parameterSection, pd, toolkit, dbc,
new ParameterDefinitionSectionExtension(parameterSection, pd, toolkit, dbc, form,
registeredSourceViewers).apply();
Button deleteButton = toolkit.createButton(parameterSection, "Remove aspect", SWT.None);
deleteButton.addSelectionListener(new SelectionAdapter() {
......
/*--------------------------------------------------------------------------+
$Id$
| |
| Copyright 2017 fortiss GmbH |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| 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 "AS IS" 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. |
+--------------------------------------------------------------------------*/
package org.fortiss.af3.mira.ui.editor;
import static org.eclipse.jface.databinding.viewers.ViewersObservables.observeSinglePostSelection;
import static org.fortiss.af3.mira.ui.utils.MiraLayoutUtils.singleLineInputFactory;
import static org.fortiss.af3.mira.ui.utils.MiraLayoutUtils.singleLineLabelFactory;
import static org.fortiss.af3.safety.model.annotation.SafetyAnnotationPackage.Literals.SAFETY_INTEGRITY_LEVEL__SAFETY_STANDARD;
import static org.fortiss.af3.safety.utils.SafetyUtils.getSafetyIntegrityLevelEnumOf;
import static org.fortiss.tooling.kernel.ui.util.ObservableUtils.observeValue;
import org.eclipse.emf.databinding.EMFDataBindingContext;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.fortiss.af3.mira.model.SafetyLevelRequirementSpecification;
import org.fortiss.af3.safety.model.ASIL;
import org.fortiss.af3.safety.model.DAL;
import org.fortiss.af3.safety.model.SIL;
import org.fortiss.af3.safety.model.SafetyStandard;
import org.fortiss.af3.safety.model.annotation.SafetyIntegrityLevel;
import org.fortiss.af3.safety.model.annotation.impl.SafetyIntegrityLevelStaticImpl;
import org.fortiss.tooling.base.utils.AnnotationUtils;
import org.fortiss.tooling.kernel.extension.data.ITopLevelElement;
import org.fortiss.tooling.kernel.service.IPersistencyService;
/**
*
* @author aravantinos
* @author $Author$
* @version $Rev$
* @ConQAT.Rating YELLOW Hash: 32982E16C703F64C14B229656E9FB833
*/
public class SafetyLevelSectionExtension {
/**
* Pair to obtain both the {@link ComboViewer} and the corresponding {@link Label} from
* {@link #createSingleLineFixedInputRequirementField2(Composite, String, Object, EObject, EStructuralFeature)}
* .
*/
private class ComboViewerLabelPair {
/** The {@link ComboViewer}. */
public ComboViewer comboViewer;
/** The {@link Label}. */
public Label label;
}
/** Combo viewer and Label for @link{SILLevel}s. */
private ComboViewerLabelPair silInputComboViewerAndLabel;
/** Combo viewer for @@ink {Standards}. */
private ComboViewer standardInput;
/** Composite for the safety part. */
private Composite safetyComposite;
/** Toolkit for creating widgets. */
private FormToolkit toolkit;
/** Databinding context. */
private EMFDataBindingContext dbc;
/** Edited specification. */
private SafetyLevelRequirementSpecification editedObject;
/**
* @param sectionComposite
* @param slrs
* @param toolkit
* @param dbc
*/
public SafetyLevelSectionExtension(Composite sectionComposite,
SafetyLevelRequirementSpecification slrs, FormToolkit toolkit, EMFDataBindingContext dbc) {
this.safetyComposite = sectionComposite;
this.toolkit = toolkit;
this.dbc = dbc;
this.editedObject = slrs;
}
/** Create a single line field of a requirement with given input. */
private ComboViewerLabelPair createSingleLineFixedInputRequirementField2(Composite composite,
String labelName, Object inputValues, EObject object,
EStructuralFeature observedStructuralFeature) {
Label label = toolkit.createLabel(composite, labelName + " ", SWT.READ_ONLY);
singleLineLabelFactory.applyTo(label);
ComboViewer comboViewer = new ComboViewer(composite, SWT.READ_ONLY);
singleLineInputFactory.applyTo(comboViewer.getCombo());
toolkit.adapt(comboViewer.getCombo());
comboViewer.setContentProvider(new ArrayContentProvider());
comboViewer.setLabelProvider(new LabelProvider());
comboViewer.setInput(inputValues);
dbc.bindValue(observeSinglePostSelection(comboViewer),
observeValue(object, observedStructuralFeature));
comboViewer.getControl().setEnabled(false);
ComboViewerLabelPair comboViewerLabelPair = new ComboViewerLabelPair();
comboViewerLabelPair.comboViewer = comboViewer;
comboViewerLabelPair.label = label;
return comboViewerLabelPair;
}
/** Create a single line field of a requirement with given input. */
private ComboViewer createSingleLineFixedInputRequirementField(Composite composite,
String labelName, Object inputValues, EObject object,
EStructuralFeature observedStructuralFeature) {
Label label = toolkit.createLabel(composite, labelName + " ", SWT.READ_ONLY);
singleLineLabelFactory.applyTo(label);
ComboViewer comboViewer = new ComboViewer(composite, SWT.READ_ONLY);
singleLineInputFactory.applyTo(comboViewer.getCombo());
toolkit.adapt(comboViewer.getCombo());
comboViewer.setContentProvider(new ArrayContentProvider());
comboViewer.setLabelProvider(new LabelProvider());
comboViewer.setInput(inputValues);
dbc.bindValue(observeSinglePostSelection(comboViewer),
observeValue(object, observedStructuralFeature));
comboViewer.getControl().setEnabled(true);
return comboViewer;
}
/**
* Creates or updates the SIL input. In case the input is updated (i.e., after a switch of the
* safety standard), the level from the old standard is converted to the new standard (if
* possible) and the value of the old standard is reset in order to avoid ambiguous
* specifications in the model.
*/
private void createOrUpdateSilInput(final SafetyIntegrityLevel requiredSIL) {
boolean update = false;
if(silInputComboViewerAndLabel != null) {
silInputComboViewerAndLabel.comboViewer.getControl().dispose();
silInputComboViewerAndLabel.label.dispose();
update = true;
}
silInputComboViewerAndLabel =
createSingleLineFixedInputRequirementField2(safetyComposite,
"Safety Integrity Level (SIL)", getSafetyIntegrityLevelEnumOf(requiredSIL),
requiredSIL, requiredSIL.getDerivedFeature());
if(update) {
ITopLevelElement modelContext =
IPersistencyService.getInstance().getTopLevelElementFor(editedObject);
modelContext.runAsCommand(() -> {
SafetyStandard newStandard = requiredSIL.getSafetyStandard();
SafetyStandard oldStandard = SafetyStandard.UNDEFINED;
// Standard has already been updated: Avoid endless recursion (see below).
if(newStandard.equals(oldStandard)) {
return;
}
// Try to determine old standard.
// Currently, we handle: IEC61508, ISO26262, DO178C, UNDEFINED.
assert (SafetyStandard.values().length == 4);
if(!requiredSIL.getAsilValue().equals(ASIL.QM)) {
oldStandard = SafetyStandard.ISO26262;
} else if(!requiredSIL.getSilValue().equals(SIL.SIL0)) {
oldStandard = SafetyStandard.IEC61508;
} else if(!requiredSIL.getDalValue().equals(DAL.DALE)) {
oldStandard = SafetyStandard.DO178C;
}
if(!oldStandard.equals(SafetyStandard.UNDEFINED)) {
// Temporarily reset to old standard. This will cause a recursive call of
// the selection listener in createSafetySection() from which this method
// will be called and which is caught beginning of this method.
requiredSIL.setSafetyStandard(oldStandard);
// Set the new standard again (this will also convert the safety level
// accordingly).
SafetyIntegrityLevelStaticImpl.setSafetyStandard(requiredSIL, newStandard);
} else {
// Old Standard could not be determined: reset values not corresponding to
// new standard to default value.
if(newStandard.equals(SafetyStandard.IEC61508)) {
requiredSIL.setAsilValue(ASIL.QM);
requiredSIL.setDalValue(DAL.DALE);
} else if(newStandard.equals(SafetyStandard.ISO26262)) {
requiredSIL.setSilValue(SIL.SIL0);
requiredSIL.setDalValue(DAL.DALE);
} else if(newStandard.equals(SafetyStandard.DO178C)) {
requiredSIL.setSilValue(SIL.SIL0);
requiredSIL.setAsilValue(ASIL.QM);
}
}
});
}
silInputComboViewerAndLabel.comboViewer.getControl().setEnabled(true);
silInputComboViewerAndLabel.comboViewer.getControl().getParent().layout();
}
/** Creates the safety section. */
public void apply() {
SafetyIntegrityLevel requiredSIL =
AnnotationUtils.getAnnotation(editedObject, SafetyIntegrityLevel.class);
standardInput =
createSingleLineFixedInputRequirementField(safetyComposite, "Safety Standard",
SafetyStandard.values(), requiredSIL,
SAFETY_INTEGRITY_LEVEL__SAFETY_STANDARD);
standardInput.addPostSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
createOrUpdateSilInput(AnnotationUtils.getAnnotation(editedObject,
SafetyIntegrityLevel.class));
}
});
createOrUpdateSilInput(requiredSIL);
}
}
......@@ -286,6 +286,11 @@
<eLiterals name="Functional" value="2"/>
<eLiterals name="Hardware" value="3" literal="Hardware"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="SafetyLevelRequirementSpecification"
eSuperTypes="platform:/resource/org.fortiss.tooling.base/model/base.ecore#//element/IModelElementSpecification platform:/resource/org.fortiss.tooling.base/model/base.ecore#//element/IModelElement"/>
<eClassifiers xsi:type="ecore:EClass" name="ParameterDefinition" eSuperTypes="platform:/resource/org.fortiss.tooling.base/model/base.ecore#//element/IModelElementSpecification platform:/resource/org.fortiss.tooling.kernel/model/kernel.ecore#//INamedElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eSubpackages name="usecase" nsURI="http://www.fortiss.org/af3/mira/usecase" nsPrefix="org-fortiss-af3-mira-usecase">
<eClassifiers xsi:type="ecore:EClass" name="UseCase" eSuperTypes="#//Requirement platform:/resource/org.fortiss.tooling.base/model/base.ecore#//element/IHierarchicElementContainer #//usecase/UseCaseSpecification">
<eOperations name="getScopeSpecification" eType="#//usecase/ScopeSpecification">
......
......@@ -138,6 +138,10 @@
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference mira.ecore#//DocumentReference/document"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute mira.ecore#//DocumentReference/page"/>
</genClasses>
<genClasses ecoreClass="mira.ecore#//SafetyLevelRequirementSpecification"/>
<genClasses ecoreClass="mira.ecore#//ParameterDefinition">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute mira.ecore#//ParameterDefinition/value"/>
</genClasses>
<nestedGenPackages prefix="Usecase" basePackage="org.fortiss.af3.mira.model" disposableProviderFactory="true"
ecorePackage="mira.ecore#//usecase">
<genEnums typeSafeEnumCompatible="false" ecoreEnum="mira.ecore#//usecase/ScenarioStepActionType">
......
......@@ -22,7 +22,9 @@ import static org.fortiss.tooling.kernel.utils.EcoreUtils.pickInstanceOf;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.fortiss.af3.mira.model.ParameterDefinition;
import org.fortiss.af3.mira.model.Requirement;
import org.fortiss.af3.mira.model.SafetyLevelRequirementSpecification;
import org.fortiss.af3.mira.model.functional.FormalSpecification;
import org.fortiss.af3.mira.model.functional.SignalContainerSpecification;
import org.fortiss.af3.mira.model.interfacebehaviour.InterfaceBehaviourSpecification;
......@@ -67,10 +69,18 @@ public class RequirementCompositor extends HierarchicElementCompositorBase<Requi
if(ucs == null && contained instanceof UseCaseSpecification) {
return true;
}
SafetyLevelRequirementSpecification slrs =
pickFirstInstanceOf(SafetyLevelRequirementSpecification.class, specs);
if(slrs == null && contained instanceof SafetyLevelRequirementSpecification) {
return true;
}
if(!pickInstanceOf(UseCaseSpecification.class, container.getSpecifications()).isEmpty()) {
return contained instanceof Scenario || contained instanceof MSCSpecification ||
contained instanceof FormalSpecification;
}
if(contained instanceof ParameterDefinition) {
return true;
}
return false;
}
......@@ -80,7 +90,8 @@ public class RequirementCompositor extends HierarchicElementCompositorBase<Requi
EObject elt = prototype.getPrototype();
return elt instanceof FormalSpecification ||
elt instanceof InterfaceBehaviourSpecification ||
elt instanceof SignalContainerSpecification ||
elt instanceof SignalContainerSpecification || elt instanceof ParameterDefinition ||
elt instanceof SafetyLevelRequirementSpecification ||
elt instanceof UseCaseSpecification || elt instanceof Scenario ||
elt instanceof MSCSpecification || elt instanceof FormalSpecification;
}
......
......@@ -23,19 +23,23 @@ import static org.fortiss.af3.mira.utils.MiraModelElementFactory.createFunctiona
import static org.fortiss.af3.mira.utils.MiraModelElementFactory.createGlossary;
import static org.fortiss.af3.mira.utils.MiraModelElementFactory.createGlossaryEntry;
import static org.fortiss.af3.mira.utils.MiraModelElementFactory.createInterfaceBehaviourSpecification;
import static org.fortiss.af3.mira.utils.MiraModelElementFactory.createParameterDefinition;
import static org.fortiss.af3.mira.utils.MiraModelElementFactory.createRequirement;
import static org.fortiss.af3.mira.utils.MiraModelElementFactory.createRequirementDocument;
import static org.fortiss.af3.mira.utils.MiraModelElementFactory.createRequirementSource;
import static org.fortiss.af3.mira.utils.MiraModelElementFactory.createRequirementsContainer;
import static org.fortiss.af3.mira.utils.MiraModelElementFactory.createRequirementsPackage;
import static org.fortiss.af3.mira.utils.MiraModelElementFactory.createSafetyLevelReqSpecification;
import static org.fortiss.af3.mira.utils.MiraModelElementFactory.createScenario;
import static org.fortiss.af3.mira.utils.MiraModelElementFactory.createSignalRequirement;
import static org.fortiss.af3.mira.utils.MiraModelElementFactory.createStakeholder;
import static org.fortiss.af3.mira.utils.MiraModelElementFactory.createUseCaseSpecification;
import org.fortiss.af3.mira.model.ParameterDefinition;
import org.fortiss.af3.mira.model.Requirement;
import org.fortiss.af3.mira.model.RequirementsContainer;
import org.fortiss.af3.mira.model.RequirementsPackage;
import org.fortiss.af3.mira.model.SafetyLevelRequirementSpecification;
import org.fortiss.af3.mira.model.functional.FormalSpecification;
import org.fortiss.af3.mira.model.functional.SignalContainerSpecification;
import org.fortiss.af3.mira.model.glossary.Glossary;
......@@ -85,12 +89,18 @@ public class PrototypeProvider extends PrototypeProviderBase {
registerPrimaryPrototype("Scenario", createScenario("", "", false), CATEGORY_NAME);
InterfaceBehaviourSpecification ifbs = createInterfaceBehaviourSpecification();
registerPrimaryPrototype("Behaviour increment", ifbs, CATEGORY_NAME);
registerPrimaryPrototype("Behaviour aspect", ifbs, CATEGORY_NAME);
SignalContainerSpecification sig = createSignalRequirement();
registerPrimaryPrototype("Signal increment", sig, CATEGORY_NAME);
registerPrimaryPrototype("Signal aspect", sig, CATEGORY_NAME);
UseCaseSpecification uc = createUseCaseSpecification();
registerPrimaryPrototype("Use case increment", uc, CATEGORY_NAME);
registerPrimaryPrototype("Use case aspect", uc, CATEGORY_NAME);
ParameterDefinition pd = createParameterDefinition();
registerPrimaryPrototype("Parameter definition aspect", pd, CATEGORY_NAME);
SafetyLevelRequirementSpecification slr = createSafetyLevelReqSpecification();
registerPrimaryPrototype("Safety level aspect", slr, CATEGORY_NAME);
}
}
......@@ -30,11 +30,13 @@ import org.fortiss.af3.mira.model.ExternalRelation;
import org.fortiss.af3.mira.model.ExternalRelationSpecification;
import org.fortiss.af3.mira.model.ImageItem;
import org.fortiss.af3.mira.model.MiraFactory;
import org.fortiss.af3.mira.model.ParameterDefinition;
import org.fortiss.af3.mira.model.Requirement;
import org.fortiss.af3.mira.model.RequirementPriority;
import org.fortiss.af3.mira.model.RequirementRelation;
import org.fortiss.af3.mira.model.RequirementsContainer;
import org.fortiss.af3.mira.model.RequirementsPackage;
import org.fortiss.af3.mira.model.SafetyLevelRequirementSpecification;
import org.fortiss.af3.mira.model.WordElement;
import org.fortiss.af3.mira.model.functional.FormalSpecification;
import org.fortiss.af3.mira.model.functional.FunctionalFactory;
......@@ -145,7 +147,7 @@ public final class MiraModelElementFactory {
uc.setPriority(RequirementPriority.NORMAL);
uc.setScope(UsecaseFactory.eINSTANCE.createScope());
extendUseCaseSpecification(uc);
initUseCaseSpecification(uc);
// create check list prototype
ArrayList<CheckList> checklists_usecase = new ArrayList<CheckList>();
......@@ -159,14 +161,22 @@ public final class MiraModelElementFactory {
/** Creates a {@link UseCase}. */
public static UseCaseSpecification createUseCaseSpecification() {
UseCaseSpecification uc = UsecaseFactory.eINSTANCE.createUseCaseSpecification();
extendUseCaseSpecification(uc);
initUseCaseSpecification(uc);
return uc;
}
/**
* @param uc
*/
private static void extendUseCaseSpecification(UseCaseSpecification uc) {
/** Creates a {@link ParameterDefinition}. */
public static ParameterDefinition createParameterDefinition() {
return MiraFactory.eINSTANCE.createParameterDefinition();
}
/** Creates a {@link SafetyLevelRequirementSpecification}. */
public static SafetyLevelRequirementSpecification createSafetyLevelReqSpecification() {
return MiraFactory.eINSTANCE.createSafetyLevelRequirementSpecification();
}
/** Initializes the given use case specification. */
private static void initUseCaseSpecification(UseCaseSpecification uc) {
uc.setInputs(UsecaseFactory.eINSTANCE.createInputs());
uc.setOutputs(UsecaseFactory.eINSTANCE.createOutputs());
uc.setTrigger(UsecaseFactory.eINSTANCE.createTrigger());
......
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