Search in sources :

Example 11 with ErrorSource

use of org.osate.xtext.aadl2.errormodel.errorModel.ErrorSource in project osate2 by osate.

the class FaultTreeUtils method getInstanceDescription.

public static String getInstanceDescription(Event event) {
    InstanceObject io = (InstanceObject) event.getRelatedInstanceObject();
    String description = "";
    if (io instanceof ComponentInstance) {
        description = "'" + getName((ComponentInstance) io) + "'";
    } else if (io instanceof ConnectionInstance) {
        description = "Connection '" + ((ConnectionInstance) io).getName() + "'";
    }
    EObject errorModelArtifact = event.getRelatedEMV2Object();
    if (errorModelArtifact instanceof ErrorSource) {
        ErrorSource errorSource = (ErrorSource) errorModelArtifact;
        description += " source '" + EMV2Util.getName(errorSource) + "'";
    }
    if (errorModelArtifact instanceof ErrorEvent) {
        ErrorEvent errorSource = (ErrorEvent) errorModelArtifact;
        description += " event '" + EMV2Util.getName(errorSource) + "'";
    }
    if (errorModelArtifact instanceof ErrorPropagation) {
        ErrorPropagation ep = (ErrorPropagation) errorModelArtifact;
        String directionLabel = ep.getDirection() == DirectionType.IN ? " incoming " : " outgoing ";
        description += directionLabel + "'" + EMV2Util.getName(ep) + "'";
    }
    return description;
}
Also used : InstanceObject(org.osate.aadl2.instance.InstanceObject) ConnectionInstance(org.osate.aadl2.instance.ConnectionInstance) ErrorSource(org.osate.xtext.aadl2.errormodel.errorModel.ErrorSource) EObject(org.eclipse.emf.ecore.EObject) ComponentInstance(org.osate.aadl2.instance.ComponentInstance) ErrorEvent(org.osate.xtext.aadl2.errormodel.errorModel.ErrorEvent) ErrorPropagation(org.osate.xtext.aadl2.errormodel.errorModel.ErrorPropagation)

Example 12 with ErrorSource

use of org.osate.xtext.aadl2.errormodel.errorModel.ErrorSource in project osate2 by osate.

the class FaultTreeUtils method getEMV2ElementDescription.

public static String getEMV2ElementDescription(Event event) {
    // JH looks like the code to do the boxes in FTA
    EObject errorModelArtifact = event.getRelatedEMV2Object();
    TypeToken type = (TypeToken) event.getRelatedErrorType();
    String description;
    description = "";
    if (errorModelArtifact instanceof ErrorSource) {
        ErrorSource errorSource = (ErrorSource) errorModelArtifact;
        description = (type != null ? "{" + EMV2Util.getName(type) + "} from " : "") + "error source '" + EMV2Util.getName(errorSource) + "'";
    }
    if (errorModelArtifact instanceof ErrorEvent) {
        ErrorEvent ee = (ErrorEvent) errorModelArtifact;
        if (type != null) {
            description += "{" + EMV2Util.getName(type) + "} from ";
        }
        description += "error event '" + EMV2Util.getName(ee) + "'";
    }
    if (errorModelArtifact instanceof ErrorBehaviorState) {
        if (type != null) {
            description += "{" + EMV2Util.getName(type) + "} from ";
        }
        description += "error state '" + ((ErrorBehaviorState) errorModelArtifact).getName() + "'";
    }
    if (errorModelArtifact instanceof ErrorPropagation) {
        String boundaryLabel = "";
        if (event.getType() == EventType.EXTERNAL) {
            boundaryLabel = "external";
        } else if (event.getType() == EventType.UNDEVELOPED) {
            boundaryLabel = "undeveloped";
        }
        if (type != null) {
            description = "{" + EMV2Util.getName(type) + "}";
            if (!boundaryLabel.isEmpty()) {
                description += " from " + boundaryLabel;
            }
        } else {
            description = boundaryLabel;
        }
    }
    if (errorModelArtifact instanceof ConditionExpression) {
        // TODO
        errorModelArtifact = EMV2Util.getConditionExpressionContext(errorModelArtifact);
        String opcontext = "";
        if (type instanceof TypeSet) {
            opcontext = " on type set " + EMV2Util.getPrintName((TypeSet) type);
        } else if (errorModelArtifact instanceof ErrorBehaviorTransition) {
            String branch = ((ErrorBehaviorTransition) errorModelArtifact).getDestinationBranches().isEmpty() ? "" : "branch ";
            opcontext = " in transition " + branch + EMV2Util.getName(errorModelArtifact);
        } else if (errorModelArtifact instanceof OutgoingPropagationCondition) {
            opcontext = " in outgoing propagation condition " + EMV2Util.getName(errorModelArtifact);
        } else if (errorModelArtifact instanceof ErrorDetection) {
            opcontext = " in error detection " + EMV2Util.getName(errorModelArtifact);
        } else if (errorModelArtifact instanceof CompositeState) {
            opcontext = " in composite state " + EMV2Util.getName(errorModelArtifact);
        }
        if (event.getSubEventLogic() == LogicOperation.KORMORE) {
            description = "'" + event.getSubEventLogic() + "' with k =" + event.getK() + opcontext;
        } else {
            description = "'" + event.getSubEventLogic() + "'" + opcontext;
        }
    }
    return description;
}
Also used : ErrorBehaviorState(org.osate.xtext.aadl2.errormodel.errorModel.ErrorBehaviorState) ErrorDetection(org.osate.xtext.aadl2.errormodel.errorModel.ErrorDetection) ErrorBehaviorTransition(org.osate.xtext.aadl2.errormodel.errorModel.ErrorBehaviorTransition) ErrorSource(org.osate.xtext.aadl2.errormodel.errorModel.ErrorSource) TypeToken(org.osate.xtext.aadl2.errormodel.errorModel.TypeToken) ConditionExpression(org.osate.xtext.aadl2.errormodel.errorModel.ConditionExpression) EObject(org.eclipse.emf.ecore.EObject) TypeSet(org.osate.xtext.aadl2.errormodel.errorModel.TypeSet) ErrorEvent(org.osate.xtext.aadl2.errormodel.errorModel.ErrorEvent) CompositeState(org.osate.xtext.aadl2.errormodel.errorModel.CompositeState) ErrorPropagation(org.osate.xtext.aadl2.errormodel.errorModel.ErrorPropagation) OutgoingPropagationCondition(org.osate.xtext.aadl2.errormodel.errorModel.OutgoingPropagationCondition)

Example 13 with ErrorSource

use of org.osate.xtext.aadl2.errormodel.errorModel.ErrorSource in project osate2 by osate.

the class AbstractErrorModelSemanticSequencer method sequence.

@Override
public void sequence(ISerializationContext context, EObject semanticObject) {
    EPackage epackage = semanticObject.eClass().getEPackage();
    ParserRule rule = context.getParserRule();
    Action action = context.getAssignedAction();
    Set<Parameter> parameters = context.getEnabledBooleanParameters();
    if (epackage == Aadl2Package.eINSTANCE)
        switch(semanticObject.eClass().getClassifierID()) {
            case Aadl2Package.ARRAY_RANGE:
                sequence_ArrayRange(context, (ArrayRange) semanticObject);
                return;
            case Aadl2Package.BASIC_PROPERTY_ASSOCIATION:
                sequence_FieldPropertyAssociation(context, (BasicPropertyAssociation) semanticObject);
                return;
            case Aadl2Package.BOOLEAN_LITERAL:
                sequence_BooleanLiteral(context, (BooleanLiteral) semanticObject);
                return;
            case Aadl2Package.CLASSIFIER_VALUE:
                sequence_ComponentClassifierTerm(context, (ClassifierValue) semanticObject);
                return;
            case Aadl2Package.COMPUTED_VALUE:
                sequence_ComputedTerm(context, (ComputedValue) semanticObject);
                return;
            case Aadl2Package.CONTAINED_NAMED_ELEMENT:
                sequence_ContainmentPath(context, (ContainedNamedElement) semanticObject);
                return;
            case Aadl2Package.CONTAINMENT_PATH_ELEMENT:
                sequence_ContainmentPathElement(context, (ContainmentPathElement) semanticObject);
                return;
            case Aadl2Package.INTEGER_LITERAL:
                sequence_IntegerTerm(context, (IntegerLiteral) semanticObject);
                return;
            case Aadl2Package.LIST_VALUE:
                sequence_ListTerm(context, (ListValue) semanticObject);
                return;
            case Aadl2Package.MODAL_PROPERTY_VALUE:
                if (rule == grammarAccess.getModalPropertyValueRule()) {
                    sequence_ModalPropertyValue(context, (ModalPropertyValue) semanticObject);
                    return;
                } else if (rule == grammarAccess.getOptionalModalPropertyValueRule()) {
                    sequence_OptionalModalPropertyValue(context, (ModalPropertyValue) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPropertyValueRule()) {
                    sequence_PropertyValue(context, (ModalPropertyValue) semanticObject);
                    return;
                } else
                    break;
            case Aadl2Package.NAMED_VALUE:
                if (rule == grammarAccess.getConstantValueRule() || rule == grammarAccess.getNumAltRule()) {
                    sequence_ConstantValue(context, (NamedValue) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPropertyExpressionRule() || rule == grammarAccess.getLiteralorReferenceTermRule()) {
                    sequence_LiteralorReferenceTerm(context, (NamedValue) semanticObject);
                    return;
                } else
                    break;
            case Aadl2Package.OPERATION:
                sequence_SignedConstant(context, (Operation) semanticObject);
                return;
            case Aadl2Package.PROPERTY_ASSOCIATION:
                if (rule == grammarAccess.getBasicPropertyAssociationRule()) {
                    sequence_BasicPropertyAssociation(context, (PropertyAssociation) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPModelRule() || rule == grammarAccess.getContainedPropertyAssociationRule()) {
                    sequence_ContainedPropertyAssociation(context, (PropertyAssociation) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPropertyAssociationRule()) {
                    sequence_PropertyAssociation(context, (PropertyAssociation) semanticObject);
                    return;
                } else
                    break;
            case Aadl2Package.RANGE_VALUE:
                sequence_NumericRangeTerm(context, (RangeValue) semanticObject);
                return;
            case Aadl2Package.REAL_LITERAL:
                sequence_RealTerm(context, (RealLiteral) semanticObject);
                return;
            case Aadl2Package.RECORD_VALUE:
                if (rule == grammarAccess.getOldRecordTermRule()) {
                    sequence_OldRecordTerm(context, (RecordValue) semanticObject);
                    return;
                } else if (rule == grammarAccess.getPropertyExpressionRule() || rule == grammarAccess.getRecordTermRule()) {
                    sequence_RecordTerm(context, (RecordValue) semanticObject);
                    return;
                } else
                    break;
            case Aadl2Package.REFERENCE_VALUE:
                sequence_ReferenceTerm(context, (ReferenceValue) semanticObject);
                return;
            case Aadl2Package.STRING_LITERAL:
                sequence_StringTerm(context, (StringLiteral) semanticObject);
                return;
        }
    else if (epackage == ErrorModelPackage.eINSTANCE)
        switch(semanticObject.eClass().getClassifierID()) {
            case ErrorModelPackage.ALL_EXPRESSION:
                if (rule == grammarAccess.getElementRule() || rule == grammarAccess.getConditionExpressionRule() || action == grammarAccess.getConditionExpressionAccess().getOrExpressionOperandsAction_1_0() || rule == grammarAccess.getAndExpressionRule() || action == grammarAccess.getAndExpressionAccess().getAndExpressionOperandsAction_1_0() || rule == grammarAccess.getAllExpressionRule() || rule == grammarAccess.getConditionTermRule()) {
                    sequence_AllExpression(context, (AllExpression) semanticObject);
                    return;
                } else if (rule == grammarAccess.getSConditionExpressionRule() || action == grammarAccess.getSConditionExpressionAccess().getOrExpressionOperandsAction_1_0() || rule == grammarAccess.getSAndExpressionRule() || action == grammarAccess.getSAndExpressionAccess().getAndExpressionOperandsAction_1_0() || rule == grammarAccess.getSAllExpressionRule() || rule == grammarAccess.getSConditionTermRule()) {
                    sequence_SAllExpression(context, (AllExpression) semanticObject);
                    return;
                } else
                    break;
            case ErrorModelPackage.AND_EXPRESSION:
                if (rule == grammarAccess.getElementRule() || rule == grammarAccess.getConditionExpressionRule() || action == grammarAccess.getConditionExpressionAccess().getOrExpressionOperandsAction_1_0() || rule == grammarAccess.getAndExpressionRule() || action == grammarAccess.getAndExpressionAccess().getAndExpressionOperandsAction_1_0() || rule == grammarAccess.getConditionTermRule()) {
                    sequence_AndExpression(context, (AndExpression) semanticObject);
                    return;
                } else if (rule == grammarAccess.getSConditionExpressionRule() || action == grammarAccess.getSConditionExpressionAccess().getOrExpressionOperandsAction_1_0() || rule == grammarAccess.getSAndExpressionRule() || action == grammarAccess.getSAndExpressionAccess().getAndExpressionOperandsAction_1_0() || rule == grammarAccess.getSConditionTermRule()) {
                    sequence_SAndExpression(context, (AndExpression) semanticObject);
                    return;
                } else
                    break;
            case ErrorModelPackage.BRANCH_VALUE:
                sequence_BranchValue(context, (BranchValue) semanticObject);
                return;
            case ErrorModelPackage.COMPOSITE_STATE:
                sequence_CompositeState(context, (CompositeState) semanticObject);
                return;
            case ErrorModelPackage.CONDITION_ELEMENT:
                sequence_ConditionElement(context, (ConditionElement) semanticObject);
                return;
            case ErrorModelPackage.EMV2_PATH:
                if (rule == grammarAccess.getBasicEMV2PathRule()) {
                    sequence_BasicEMV2Path(context, (EMV2Path) semanticObject);
                    return;
                } else if (rule == grammarAccess.getElementRule() || rule == grammarAccess.getEMV2PathRule()) {
                    sequence_EMV2Path(context, (EMV2Path) semanticObject);
                    return;
                } else
                    break;
            case ErrorModelPackage.EMV2_PATH_ELEMENT:
                if (rule == grammarAccess.getEMV2ErrorPropagationPathRule()) {
                    sequence_EMV2ErrorPropagationPath(context, (EMV2PathElement) semanticObject);
                    return;
                } else if (rule == grammarAccess.getEMV2PathElementOrKindRule()) {
                    sequence_EMV2PathElementOrKind(context, (EMV2PathElement) semanticObject);
                    return;
                } else if (rule == grammarAccess.getElementRule() || rule == grammarAccess.getEMV2PathElementRule()) {
                    sequence_EMV2PathElement(context, (EMV2PathElement) semanticObject);
                    return;
                } else
                    break;
            case ErrorModelPackage.EMV2_PROPERTY_ASSOCIATION:
                if (rule == grammarAccess.getBasicEMV2PropertyAssociationRule()) {
                    sequence_BasicEMV2PropertyAssociation(context, (EMV2PropertyAssociation) semanticObject);
                    return;
                } else if (rule == grammarAccess.getElementRule() || rule == grammarAccess.getEMV2PropertyAssociationRule()) {
                    sequence_EMV2PropertyAssociation(context, (EMV2PropertyAssociation) semanticObject);
                    return;
                } else
                    break;
            case ErrorModelPackage.EMV2_ROOT:
                sequence_EMV2Root(context, (EMV2Root) semanticObject);
                return;
            case ErrorModelPackage.ERROR_BEHAVIOR_STATE:
                sequence_ErrorBehaviorState(context, (ErrorBehaviorState) semanticObject);
                return;
            case ErrorModelPackage.ERROR_BEHAVIOR_STATE_MACHINE:
                sequence_ErrorBehaviorStateMachine(context, (ErrorBehaviorStateMachine) semanticObject);
                return;
            case ErrorModelPackage.ERROR_BEHAVIOR_TRANSITION:
                sequence_ErrorBehaviorTransition(context, (ErrorBehaviorTransition) semanticObject);
                return;
            case ErrorModelPackage.ERROR_CODE_VALUE:
                sequence_ErrorCodeValue(context, (ErrorCodeValue) semanticObject);
                return;
            case ErrorModelPackage.ERROR_DETECTION:
                sequence_ErrorDetection(context, (ErrorDetection) semanticObject);
                return;
            case ErrorModelPackage.ERROR_EVENT:
                sequence_ErrorEvent(context, (ErrorEvent) semanticObject);
                return;
            case ErrorModelPackage.ERROR_MODEL_LIBRARY:
                if (rule == grammarAccess.getEMV2LibraryRule()) {
                    sequence_EMV2Library(context, (ErrorModelLibrary) semanticObject);
                    return;
                } else if (rule == grammarAccess.getAnnexLibraryRule() || rule == grammarAccess.getNamedElementRule() || rule == grammarAccess.getErrorModelLibraryRule()) {
                    sequence_ErrorModelLibrary(context, (ErrorModelLibrary) semanticObject);
                    return;
                } else
                    break;
            case ErrorModelPackage.ERROR_MODEL_SUBCLAUSE:
                if (rule == grammarAccess.getEMV2SubclauseRule()) {
                    sequence_EMV2Subclause(context, (ErrorModelSubclause) semanticObject);
                    return;
                } else if (rule == grammarAccess.getAnnexSubclauseRule() || rule == grammarAccess.getModalElementRule() || rule == grammarAccess.getErrorModelSubclauseRule()) {
                    sequence_ErrorModelSubclause(context, (ErrorModelSubclause) semanticObject);
                    return;
                } else
                    break;
            case ErrorModelPackage.ERROR_PATH:
                sequence_ErrorPath(context, (ErrorPath) semanticObject);
                return;
            case ErrorModelPackage.ERROR_PROPAGATION:
                sequence_ErrorPropagation(context, (ErrorPropagation) semanticObject);
                return;
            case ErrorModelPackage.ERROR_SINK:
                sequence_ErrorSink(context, (ErrorSink) semanticObject);
                return;
            case ErrorModelPackage.ERROR_SOURCE:
                sequence_ErrorSource(context, (ErrorSource) semanticObject);
                return;
            case ErrorModelPackage.ERROR_STATE_TO_MODE_MAPPING:
                sequence_ErrorStateToModeMapping(context, (ErrorStateToModeMapping) semanticObject);
                return;
            case ErrorModelPackage.ERROR_TYPE:
                sequence_TypeDefinition(context, (ErrorType) semanticObject);
                return;
            case ErrorModelPackage.FEATUREOR_PP_REFERENCE:
                sequence_FeatureorPPReference(context, (FeatureorPPReference) semanticObject);
                return;
            case ErrorModelPackage.IF_CONDITION:
                sequence_IfCondition(context, (IfCondition) semanticObject);
                return;
            case ErrorModelPackage.OR_EXPRESSION:
                if (rule == grammarAccess.getElementRule() || rule == grammarAccess.getConditionExpressionRule() || action == grammarAccess.getConditionExpressionAccess().getOrExpressionOperandsAction_1_0() || rule == grammarAccess.getAndExpressionRule() || action == grammarAccess.getAndExpressionAccess().getAndExpressionOperandsAction_1_0() || rule == grammarAccess.getConditionTermRule()) {
                    sequence_ConditionExpression(context, (OrExpression) semanticObject);
                    return;
                } else if (rule == grammarAccess.getSConditionExpressionRule() || action == grammarAccess.getSConditionExpressionAccess().getOrExpressionOperandsAction_1_0() || rule == grammarAccess.getSAndExpressionRule() || action == grammarAccess.getSAndExpressionAccess().getAndExpressionOperandsAction_1_0() || rule == grammarAccess.getSConditionTermRule()) {
                    sequence_SConditionExpression(context, (OrExpression) semanticObject);
                    return;
                } else
                    break;
            case ErrorModelPackage.ORLESS_EXPRESSION:
                if (rule == grammarAccess.getElementRule() || rule == grammarAccess.getConditionExpressionRule() || action == grammarAccess.getConditionExpressionAccess().getOrExpressionOperandsAction_1_0() || rule == grammarAccess.getAndExpressionRule() || action == grammarAccess.getAndExpressionAccess().getAndExpressionOperandsAction_1_0() || rule == grammarAccess.getOrlessExpressionRule() || rule == grammarAccess.getConditionTermRule()) {
                    sequence_OrlessExpression(context, (OrlessExpression) semanticObject);
                    return;
                } else if (rule == grammarAccess.getSConditionExpressionRule() || action == grammarAccess.getSConditionExpressionAccess().getOrExpressionOperandsAction_1_0() || rule == grammarAccess.getSAndExpressionRule() || action == grammarAccess.getSAndExpressionAccess().getAndExpressionOperandsAction_1_0() || rule == grammarAccess.getSOrlessExpressionRule() || rule == grammarAccess.getSConditionTermRule()) {
                    sequence_SOrlessExpression(context, (OrlessExpression) semanticObject);
                    return;
                } else
                    break;
            case ErrorModelPackage.ORMORE_EXPRESSION:
                if (rule == grammarAccess.getElementRule() || rule == grammarAccess.getConditionExpressionRule() || action == grammarAccess.getConditionExpressionAccess().getOrExpressionOperandsAction_1_0() || rule == grammarAccess.getAndExpressionRule() || action == grammarAccess.getAndExpressionAccess().getAndExpressionOperandsAction_1_0() || rule == grammarAccess.getOrmoreExpressionRule() || rule == grammarAccess.getConditionTermRule()) {
                    sequence_OrmoreExpression(context, (OrmoreExpression) semanticObject);
                    return;
                } else if (rule == grammarAccess.getSConditionExpressionRule() || action == grammarAccess.getSConditionExpressionAccess().getOrExpressionOperandsAction_1_0() || rule == grammarAccess.getSAndExpressionRule() || action == grammarAccess.getSAndExpressionAccess().getAndExpressionOperandsAction_1_0() || rule == grammarAccess.getSOrmoreExpressionRule() || rule == grammarAccess.getSConditionTermRule()) {
                    sequence_SOrmoreExpression(context, (OrmoreExpression) semanticObject);
                    return;
                } else
                    break;
            case ErrorModelPackage.OUTGOING_PROPAGATION_CONDITION:
                sequence_OutgoingPropagationCondition(context, (OutgoingPropagationCondition) semanticObject);
                return;
            case ErrorModelPackage.PROPAGATION_PATH:
                sequence_PropagationPath(context, (PropagationPath) semanticObject);
                return;
            case ErrorModelPackage.PROPAGATION_POINT:
                sequence_PropagationPoint(context, (PropagationPoint) semanticObject);
                return;
            case ErrorModelPackage.QUALIFIED_ERROR_BEHAVIOR_STATE:
                sequence_QualifiedErrorBehaviorState(context, (QualifiedErrorBehaviorState) semanticObject);
                return;
            case ErrorModelPackage.QUALIFIED_ERROR_EVENT_OR_PROPAGATION:
                sequence_QualifiedErrorEventOrPropagation(context, (QualifiedErrorEventOrPropagation) semanticObject);
                return;
            case ErrorModelPackage.QUALIFIED_ERROR_PROPAGATION:
                sequence_QualifiedErrorPropagation(context, (QualifiedErrorPropagation) semanticObject);
                return;
            case ErrorModelPackage.QUALIFIED_PROPAGATION_POINT:
                sequence_QualifiedPropagationPoint(context, (QualifiedPropagationPoint) semanticObject);
                return;
            case ErrorModelPackage.RECOVER_EVENT:
                sequence_RecoverEvent(context, (RecoverEvent) semanticObject);
                return;
            case ErrorModelPackage.REPAIR_EVENT:
                sequence_RepairEvent(context, (RepairEvent) semanticObject);
                return;
            case ErrorModelPackage.REPORTING_PORT_REFERENCE:
                sequence_ReportingPortReference(context, (ReportingPortReference) semanticObject);
                return;
            case ErrorModelPackage.SCONDITION_ELEMENT:
                sequence_SConditionElement(context, (SConditionElement) semanticObject);
                return;
            case ErrorModelPackage.SUBCOMPONENT_ELEMENT:
                sequence_SubcomponentElement(context, (SubcomponentElement) semanticObject);
                return;
            case ErrorModelPackage.TRANSITION_BRANCH:
                sequence_TransitionBranch(context, (TransitionBranch) semanticObject);
                return;
            case ErrorModelPackage.TYPE_MAPPING:
                sequence_TypeMapping(context, (TypeMapping) semanticObject);
                return;
            case ErrorModelPackage.TYPE_MAPPING_SET:
                sequence_TypeMappingSet(context, (TypeMappingSet) semanticObject);
                return;
            case ErrorModelPackage.TYPE_SET:
                if (rule == grammarAccess.getNoErrorTypeSetRule()) {
                    sequence_NoErrorTypeSet(context, (TypeSet) semanticObject);
                    return;
                } else if (rule == grammarAccess.getTypeTokenOrNoErrorRule() || rule == grammarAccess.getTypeTokenConstraintNoErrorRule()) {
                    sequence_NoErrorTypeSet_TypeSetConstructor(context, (TypeSet) semanticObject);
                    return;
                } else if (rule == grammarAccess.getTypeSetConstructorRule() || rule == grammarAccess.getTypeSetReferenceRule() || rule == grammarAccess.getTypeTokenRule() || rule == grammarAccess.getTypeTokenConstraintRule()) {
                    sequence_TypeSetConstructor(context, (TypeSet) semanticObject);
                    return;
                } else if (rule == grammarAccess.getNamedElementRule() || rule == grammarAccess.getErrorTypesRule() || rule == grammarAccess.getTypeSetDefinitionRule()) {
                    sequence_TypeSetDefinition(context, (TypeSet) semanticObject);
                    return;
                } else
                    break;
            case ErrorModelPackage.TYPE_TOKEN:
                if (rule == grammarAccess.getNoErrorTypeTokenRule()) {
                    sequence_NoErrorTypeToken(context, (TypeToken) semanticObject);
                    return;
                } else if (rule == grammarAccess.getElementRule() || rule == grammarAccess.getTypeSetElementRule()) {
                    sequence_TypeSetElement(context, (TypeToken) semanticObject);
                    return;
                } else
                    break;
            case ErrorModelPackage.TYPE_TRANSFORMATION:
                sequence_TypeTransformation(context, (TypeTransformation) semanticObject);
                return;
            case ErrorModelPackage.TYPE_TRANSFORMATION_SET:
                sequence_TypeTransformationSet(context, (TypeTransformationSet) semanticObject);
                return;
        }
    if (errorAcceptor != null)
        errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
Also used : EMV2PathElement(org.osate.xtext.aadl2.errormodel.errorModel.EMV2PathElement) ParserRule(org.eclipse.xtext.ParserRule) ComputedValue(org.osate.aadl2.ComputedValue) Action(org.eclipse.xtext.Action) ClassifierValue(org.osate.aadl2.ClassifierValue) ModalPropertyValue(org.osate.aadl2.ModalPropertyValue) ErrorModelLibrary(org.osate.xtext.aadl2.errormodel.errorModel.ErrorModelLibrary) BooleanLiteral(org.osate.aadl2.BooleanLiteral) EMV2PropertyAssociation(org.osate.xtext.aadl2.errormodel.errorModel.EMV2PropertyAssociation) PropertyAssociation(org.osate.aadl2.PropertyAssociation) BasicPropertyAssociation(org.osate.aadl2.BasicPropertyAssociation) ReferenceValue(org.osate.aadl2.ReferenceValue) AllExpression(org.osate.xtext.aadl2.errormodel.errorModel.AllExpression) OrlessExpression(org.osate.xtext.aadl2.errormodel.errorModel.OrlessExpression) ArrayRange(org.osate.aadl2.ArrayRange) NamedValue(org.osate.aadl2.NamedValue) Operation(org.osate.aadl2.Operation) OrmoreExpression(org.osate.xtext.aadl2.errormodel.errorModel.OrmoreExpression) OrExpression(org.osate.xtext.aadl2.errormodel.errorModel.OrExpression) RangeValue(org.osate.aadl2.RangeValue) EPackage(org.eclipse.emf.ecore.EPackage) RealLiteral(org.osate.aadl2.RealLiteral) EMV2Path(org.osate.xtext.aadl2.errormodel.errorModel.EMV2Path) AndExpression(org.osate.xtext.aadl2.errormodel.errorModel.AndExpression) BasicPropertyAssociation(org.osate.aadl2.BasicPropertyAssociation) IntegerLiteral(org.osate.aadl2.IntegerLiteral) ErrorModelSubclause(org.osate.xtext.aadl2.errormodel.errorModel.ErrorModelSubclause) ListValue(org.osate.aadl2.ListValue) ContainmentPathElement(org.osate.aadl2.ContainmentPathElement) RecordValue(org.osate.aadl2.RecordValue) EMV2PropertyAssociation(org.osate.xtext.aadl2.errormodel.errorModel.EMV2PropertyAssociation) StringLiteral(org.osate.aadl2.StringLiteral) TypeToken(org.osate.xtext.aadl2.errormodel.errorModel.TypeToken) TypeSet(org.osate.xtext.aadl2.errormodel.errorModel.TypeSet) Parameter(org.eclipse.xtext.Parameter) ContainedNamedElement(org.osate.aadl2.ContainedNamedElement)

Example 14 with ErrorSource

use of org.osate.xtext.aadl2.errormodel.errorModel.ErrorSource in project osate2 by osate.

the class ErrorFlowHandler method getGraphicalConfiguration.

@Override
public Optional<GraphicalConfiguration> getGraphicalConfiguration(final GetGraphicalConfigurationContext ctx) {
    final ErrorFlow bo = ctx.getBusinessObjectContext().getBusinessObject(ErrorFlow.class).get();
    final BusinessObjectContext classifierBoc = ctx.getBusinessObjectContext().getParent();
    if (classifierBoc == null) {
        return Optional.empty();
    }
    // Determine the type of graphic and the source and destination of the connection
    final ErrorFlowEnd src;
    final ErrorFlowEnd dst;
    final Graphic graphic;
    if (bo instanceof ErrorSource) {
        graphic = SOURCE_GRAPHIC;
        final ErrorSource es = (ErrorSource) bo;
        src = getErrorFlowEnd(ctx.getQueryService(), classifierBoc, es.isAll(), es.getSourceModelElement()).orElse(null);
        dst = null;
    } else if (bo instanceof ErrorSink) {
        graphic = SINK_GRAPHIC;
        final ErrorSink es = (ErrorSink) bo;
        src = getErrorFlowEnd(ctx.getQueryService(), classifierBoc, es.isAllIncoming(), es.getIncoming()).orElse(null);
        dst = null;
    } else if (bo instanceof ErrorPath) {
        graphic = PATH_GRAPHIC;
        final ErrorPath ep = (ErrorPath) bo;
        src = getErrorFlowEnd(ctx.getQueryService(), classifierBoc, ep.isAllIncoming(), ep.getIncoming()).orElse(null);
        dst = getErrorFlowEnd(ctx.getQueryService(), classifierBoc, ep.isAllOutgoing(), ep.getOutgoing()).orElse(null);
    } else {
        return Optional.empty();
    }
    // Determine style
    final StyleBuilder sb = StyleBuilder.create(GraphicalExtensionUtil.isInherited(ctx.getBusinessObjectContext()) ? GraphicalExtensionUtil.STYLE_INHERITED_ELEMENT : Style.EMPTY).lineWidth(4.0);
    final boolean partial = (src != null && src.partial) || (dst != null && dst.partial);
    if (partial) {
        sb.dotted();
    }
    return Optional.of(GraphicalConfigurationBuilder.create().graphic(graphic).style(sb.build()).defaultDockingPosition(DockingPosition.ANY).source(src == null ? null : src.boc).destination(dst == null ? null : dst.boc).build());
}
Also used : ErrorSource(org.osate.xtext.aadl2.errormodel.errorModel.ErrorSource) ErrorFlow(org.osate.xtext.aadl2.errormodel.errorModel.ErrorFlow) Graphic(org.osate.ge.graphics.Graphic) StyleBuilder(org.osate.ge.graphics.StyleBuilder) ErrorPath(org.osate.xtext.aadl2.errormodel.errorModel.ErrorPath) BusinessObjectContext(org.osate.ge.BusinessObjectContext) ErrorSink(org.osate.xtext.aadl2.errormodel.errorModel.ErrorSink)

Example 15 with ErrorSource

use of org.osate.xtext.aadl2.errormodel.errorModel.ErrorSource in project osate2 by osate.

the class ErrorPropagationHandler method canDelete.

@Override
public boolean canDelete(final CanDeleteContext ctx) {
    final ErrorPropagation bo = ctx.getBusinessObject(ErrorPropagation.class).get();
    // Don't allow deleting if there exists an error flow that references the error propagation
    final CombinedErrorModelSubclause combined = CombinedErrorModelSubclause.create(bo.getContainingClassifier());
    return !combined.getFlows().anyMatch(f -> {
        if (f instanceof ErrorSource) {
            final ErrorSource src = (ErrorSource) f;
            return src.getSourceModelElement() == bo;
        } else if (f instanceof ErrorSink) {
            final ErrorSink snk = (ErrorSink) f;
            return snk.getIncoming() == bo;
        } else if (f instanceof ErrorPath) {
            final ErrorPath path = (ErrorPath) f;
            return path.getIncoming() == bo || path.getOutgoing() == bo;
        }
        return false;
    });
}
Also used : GetNameForDiagramContext(org.osate.ge.businessobjecthandling.GetNameForDiagramContext) BusinessObjectHandler(org.osate.ge.businessobjecthandling.BusinessObjectHandler) ErrorPath(org.osate.xtext.aadl2.errormodel.errorModel.ErrorPath) CanDeleteContext(org.osate.ge.businessobjecthandling.CanDeleteContext) GraphicalConfiguration(org.osate.ge.GraphicalConfiguration) Style(org.osate.ge.graphics.Style) ErrorSink(org.osate.xtext.aadl2.errormodel.errorModel.ErrorSink) Strings(com.google.common.base.Strings) ErrorPropagation(org.osate.xtext.aadl2.errormodel.errorModel.ErrorPropagation) Graphic(org.osate.ge.graphics.Graphic) GetGraphicalConfigurationContext(org.osate.ge.businessobjecthandling.GetGraphicalConfigurationContext) ErrorSource(org.osate.xtext.aadl2.errormodel.errorModel.ErrorSource) GetNameContext(org.osate.ge.businessobjecthandling.GetNameContext) RelativeBusinessObjectReference(org.osate.ge.RelativeBusinessObjectReference) CanCopyContext(org.osate.ge.businessobjecthandling.CanCopyContext) LabelBuilder(org.osate.ge.graphics.LabelBuilder) GraphicalConfigurationBuilder(org.osate.ge.GraphicalConfigurationBuilder) CombinedErrorModelSubclause(org.osate.ge.errormodel.combined.CombinedErrorModelSubclause) GraphicalExtensionUtil(org.osate.ge.aadl2.GraphicalExtensionUtil) FeatureorPPReference(org.osate.xtext.aadl2.errormodel.errorModel.FeatureorPPReference) CanonicalBusinessObjectReference(org.osate.ge.CanonicalBusinessObjectReference) StyleBuilder(org.osate.ge.graphics.StyleBuilder) IsApplicableContext(org.osate.ge.businessobjecthandling.IsApplicableContext) ReferenceContext(org.osate.ge.businessobjecthandling.ReferenceContext) Optional(java.util.Optional) ErrorSource(org.osate.xtext.aadl2.errormodel.errorModel.ErrorSource) ErrorPath(org.osate.xtext.aadl2.errormodel.errorModel.ErrorPath) ErrorPropagation(org.osate.xtext.aadl2.errormodel.errorModel.ErrorPropagation) CombinedErrorModelSubclause(org.osate.ge.errormodel.combined.CombinedErrorModelSubclause) ErrorSink(org.osate.xtext.aadl2.errormodel.errorModel.ErrorSink)

Aggregations

ErrorSource (org.osate.xtext.aadl2.errormodel.errorModel.ErrorSource)16 ErrorPropagation (org.osate.xtext.aadl2.errormodel.errorModel.ErrorPropagation)13 TypeSet (org.osate.xtext.aadl2.errormodel.errorModel.TypeSet)9 ErrorFlow (org.osate.xtext.aadl2.errormodel.errorModel.ErrorFlow)7 TypeToken (org.osate.xtext.aadl2.errormodel.errorModel.TypeToken)7 ErrorEvent (org.osate.xtext.aadl2.errormodel.errorModel.ErrorEvent)6 ErrorPath (org.osate.xtext.aadl2.errormodel.errorModel.ErrorPath)6 EObject (org.eclipse.emf.ecore.EObject)5 NamedElement (org.osate.aadl2.NamedElement)5 ErrorModelSubclause (org.osate.xtext.aadl2.errormodel.errorModel.ErrorModelSubclause)5 LinkedHashMap (java.util.LinkedHashMap)4 ErrorBehaviorState (org.osate.xtext.aadl2.errormodel.errorModel.ErrorBehaviorState)4 ErrorSink (org.osate.xtext.aadl2.errormodel.errorModel.ErrorSink)4 Classifier (org.osate.aadl2.Classifier)3 ContainedNamedElement (org.osate.aadl2.ContainedNamedElement)3 PropagationPathEnd (org.osate.aadl2.errormodel.PropagationGraph.PropagationPathEnd)3 ComponentInstance (org.osate.aadl2.instance.ComponentInstance)3 ConditionExpression (org.osate.xtext.aadl2.errormodel.errorModel.ConditionExpression)3 ErrorBehaviorTransition (org.osate.xtext.aadl2.errormodel.errorModel.ErrorBehaviorTransition)3 LinkedList (java.util.LinkedList)2