Search in sources :

Example 6 with ConnectionReference

use of org.osate.aadl2.instance.ConnectionReference in project osate2 by osate.

the class InstancePackageImpl method initializePackageContents.

/**
 * Complete the initialization of the package and its meta-model.  This
 * method is guarded to have no affect on any invocation but its first.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public void initializePackageContents() {
    if (isInitialized) {
        return;
    }
    isInitialized = true;
    // Initialize package
    setName(eNAME);
    setNsPrefix(eNS_PREFIX);
    setNsURI(eNS_URI);
    // Obtain other dependent packages
    Aadl2Package theAadl2Package = (Aadl2Package) EPackage.Registry.INSTANCE.getEPackage(Aadl2Package.eNS_URI);
    // Create type parameters
    // Set bounds for type parameters
    // Add supertypes to classes
    featureInstanceEClass.getESuperTypes().add(getConnectionInstanceEnd());
    featureInstanceEClass.getESuperTypes().add(getInstanceObject());
    instanceObjectEClass.getESuperTypes().add(theAadl2Package.getNamedElement());
    annexInstanceEClass.getESuperTypes().add(theAadl2Package.getNamedElement());
    propertyAssociationInstanceEClass.getESuperTypes().add(theAadl2Package.getPropertyAssociation());
    connectionInstanceEndEClass.getESuperTypes().add(getInstanceObject());
    connectionInstanceEClass.getESuperTypes().add(getFlowElementInstance());
    flowElementInstanceEClass.getESuperTypes().add(getInstanceObject());
    systemOperationModeEClass.getESuperTypes().add(theAadl2Package.getMode());
    modeInstanceEClass.getESuperTypes().add(getInstanceObject());
    modeTransitionInstanceEClass.getESuperTypes().add(getConnectionInstanceEnd());
    modeTransitionInstanceEClass.getESuperTypes().add(getInstanceObject());
    connectionReferenceEClass.getESuperTypes().add(getInstanceObject());
    componentInstanceEClass.getESuperTypes().add(getConnectionInstanceEnd());
    componentInstanceEClass.getESuperTypes().add(getFlowElementInstance());
    flowSpecificationInstanceEClass.getESuperTypes().add(getFlowElementInstance());
    endToEndFlowInstanceEClass.getESuperTypes().add(getFlowElementInstance());
    systemInstanceEClass.getESuperTypes().add(getComponentInstance());
    instanceReferenceValueEClass.getESuperTypes().add(theAadl2Package.getPropertyValue());
    // Initialize classes and features; add operations and parameters
    initEClass(// $NON-NLS-1$
    featureInstanceEClass, // $NON-NLS-1$
    FeatureInstance.class, // $NON-NLS-1$
    "FeatureInstance", // $NON-NLS-1$
    !IS_ABSTRACT, // $NON-NLS-1$
    !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getFeatureInstance_SrcFlowSpec(), getFlowSpecificationInstance(), // $NON-NLS-1$
    getFlowSpecificationInstance_Source(), // $NON-NLS-1$
    "srcFlowSpec", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, // $NON-NLS-1$
    FeatureInstance.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(getFeatureInstance_DstFlowSpec(), getFlowSpecificationInstance(), // $NON-NLS-1$
    getFlowSpecificationInstance_Destination(), // $NON-NLS-1$
    "dstFlowSpec", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, // $NON-NLS-1$
    FeatureInstance.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getFeatureInstance_FeatureInstance(), // $NON-NLS-1$
    getFeatureInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "featureInstance", // $NON-NLS-1$
    null, 0, -1, FeatureInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEAttribute(// $NON-NLS-1$
    getFeatureInstance_Category(), // $NON-NLS-1$
    getFeatureCategory(), // $NON-NLS-1$
    "category", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, FeatureInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEAttribute(// $NON-NLS-1$
    getFeatureInstance_Direction(), // $NON-NLS-1$
    theAadl2Package.getDirectionType(), // $NON-NLS-1$
    "direction", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, FeatureInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getFeatureInstance_Feature(), // $NON-NLS-1$
    theAadl2Package.getFeature(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "feature", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, FeatureInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEAttribute(// $NON-NLS-1$
    getFeatureInstance_Index(), // $NON-NLS-1$
    theAadl2Package.getInteger(), // $NON-NLS-1$
    "index", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    1, FeatureInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEClass(// $NON-NLS-1$
    instanceObjectEClass, // $NON-NLS-1$
    InstanceObject.class, // $NON-NLS-1$
    "InstanceObject", // $NON-NLS-1$
    IS_ABSTRACT, // $NON-NLS-1$
    !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(// $NON-NLS-1$
    getInstanceObject_AnnexInstance(), // $NON-NLS-1$
    getAnnexInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "annexInstance", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, InstanceObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEClass(// $NON-NLS-1$
    annexInstanceEClass, // $NON-NLS-1$
    AnnexInstance.class, // $NON-NLS-1$
    "AnnexInstance", // $NON-NLS-1$
    IS_ABSTRACT, // $NON-NLS-1$
    !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(// $NON-NLS-1$
    getAnnexInstance_AnnexSubclause(), // $NON-NLS-1$
    theAadl2Package.getAnnexSubclause(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "annexSubclause", null, 1, 1, AnnexInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEClass(// $NON-NLS-1$
    propertyAssociationInstanceEClass, // $NON-NLS-1$
    PropertyAssociationInstance.class, // $NON-NLS-1$
    "PropertyAssociationInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getPropertyAssociationInstance_PropertyAssociation(), theAadl2Package.getPropertyAssociation(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "propertyAssociation", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    1, // $NON-NLS-1$
    PropertyAssociationInstance.class, // $NON-NLS-1$
    !IS_TRANSIENT, // $NON-NLS-1$
    !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEClass(// $NON-NLS-1$
    connectionInstanceEndEClass, // $NON-NLS-1$
    ConnectionInstanceEnd.class, // $NON-NLS-1$
    "ConnectionInstanceEnd", // $NON-NLS-1$
    IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getConnectionInstanceEnd_SrcConnectionInstance(), getConnectionInstance(), // $NON-NLS-1$
    getConnectionInstance_Source(), // $NON-NLS-1$
    "srcConnectionInstance", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, // $NON-NLS-1$
    ConnectionInstanceEnd.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(getConnectionInstanceEnd_DstConnectionInstance(), getConnectionInstance(), // $NON-NLS-1$
    getConnectionInstance_Destination(), // $NON-NLS-1$
    "dstConnectionInstance", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, ConnectionInstanceEnd.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEClass(// $NON-NLS-1$
    connectionInstanceEClass, // $NON-NLS-1$
    ConnectionInstance.class, // $NON-NLS-1$
    "ConnectionInstance", // $NON-NLS-1$
    !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getConnectionInstance_InSystemOperationMode(), getSystemOperationMode(), null, // $NON-NLS-1$
    "inSystemOperationMode", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, // $NON-NLS-1$
    ConnectionInstance.class, // $NON-NLS-1$
    !IS_TRANSIENT, // $NON-NLS-1$
    !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getConnectionInstance_InModeTransition(), // $NON-NLS-1$
    getModeTransitionInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "inModeTransition", null, 0, -1, ConnectionInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEAttribute(// $NON-NLS-1$
    getConnectionInstance_Complete(), // $NON-NLS-1$
    theAadl2Package.getBoolean(), // $NON-NLS-1$
    "complete", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, ConnectionInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEAttribute(// $NON-NLS-1$
    getConnectionInstance_Kind(), // $NON-NLS-1$
    getConnectionKind(), // $NON-NLS-1$
    "kind", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, ConnectionInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(getConnectionInstance_Destination(), getConnectionInstanceEnd(), // $NON-NLS-1$
    getConnectionInstanceEnd_DstConnectionInstance(), // $NON-NLS-1$
    "destination", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, ConnectionInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(getConnectionInstance_ConnectionReference(), getConnectionReference(), null, // $NON-NLS-1$
    "connectionReference", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    -1, // $NON-NLS-1$
    ConnectionInstance.class, // $NON-NLS-1$
    !IS_TRANSIENT, // $NON-NLS-1$
    !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEAttribute(// $NON-NLS-1$
    getConnectionInstance_Bidirectional(), // $NON-NLS-1$
    theAadl2Package.getBoolean(), // $NON-NLS-1$
    "bidirectional", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, ConnectionInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(getConnectionInstance_Source(), getConnectionInstanceEnd(), // $NON-NLS-1$
    getConnectionInstanceEnd_SrcConnectionInstance(), // $NON-NLS-1$
    "source", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, // $NON-NLS-1$
    ConnectionInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEClass(// $NON-NLS-1$
    flowElementInstanceEClass, // $NON-NLS-1$
    FlowElementInstance.class, // $NON-NLS-1$
    "FlowElementInstance", // $NON-NLS-1$
    IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEClass(// $NON-NLS-1$
    systemOperationModeEClass, // $NON-NLS-1$
    SystemOperationMode.class, // $NON-NLS-1$
    "SystemOperationMode", // $NON-NLS-1$
    !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(// $NON-NLS-1$
    getSystemOperationMode_CurrentMode(), // $NON-NLS-1$
    getModeInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "currentMode", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, SystemOperationMode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEClass(// $NON-NLS-1$
    modeInstanceEClass, // $NON-NLS-1$
    ModeInstance.class, // $NON-NLS-1$
    "ModeInstance", // $NON-NLS-1$
    !IS_ABSTRACT, // $NON-NLS-1$
    !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getModeInstance_SrcModeTransition(), getModeTransitionInstance(), // $NON-NLS-1$
    getModeTransitionInstance_Source(), // $NON-NLS-1$
    "srcModeTransition", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, // $NON-NLS-1$
    ModeInstance.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(getModeInstance_DstModeTransition(), getModeTransitionInstance(), // $NON-NLS-1$
    getModeTransitionInstance_Destination(), // $NON-NLS-1$
    "dstModeTransition", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, // $NON-NLS-1$
    ModeInstance.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEAttribute(// $NON-NLS-1$//$NON-NLS-2$
    getModeInstance_Initial(), // $NON-NLS-1$//$NON-NLS-2$
    theAadl2Package.getBoolean(), // $NON-NLS-1$//$NON-NLS-2$
    "initial", // $NON-NLS-1$//$NON-NLS-2$
    "false", // $NON-NLS-1$//$NON-NLS-2$
    1, // $NON-NLS-1$//$NON-NLS-2$
    1, ModeInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getModeInstance_Mode(), // $NON-NLS-1$
    theAadl2Package.getMode(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "mode", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, // $NON-NLS-1$
    ModeInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEAttribute(// $NON-NLS-1$//$NON-NLS-2$
    getModeInstance_Derived(), // $NON-NLS-1$//$NON-NLS-2$
    theAadl2Package.getBoolean(), // $NON-NLS-1$//$NON-NLS-2$
    "derived", // $NON-NLS-1$//$NON-NLS-2$
    "false", // $NON-NLS-1$//$NON-NLS-2$
    1, // $NON-NLS-1$//$NON-NLS-2$
    1, ModeInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getModeInstance_Parent(), // $NON-NLS-1$
    getModeInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "parent", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, ModeInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEClass(// $NON-NLS-1$
    modeTransitionInstanceEClass, // $NON-NLS-1$
    ModeTransitionInstance.class, // $NON-NLS-1$
    "ModeTransitionInstance", // $NON-NLS-1$
    !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getModeTransitionInstance_Destination(), getModeInstance(), getModeInstance_DstModeTransition(), // $NON-NLS-1$
    "destination", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, // $NON-NLS-1$
    ModeTransitionInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(getModeTransitionInstance_ModeTransition(), theAadl2Package.getModeTransition(), null, // $NON-NLS-1$
    "modeTransition", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, // $NON-NLS-1$
    ModeTransitionInstance.class, // $NON-NLS-1$
    !IS_TRANSIENT, // $NON-NLS-1$
    !IS_VOLATILE, // $NON-NLS-1$
    IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getModeTransitionInstance_Trigger(), // $NON-NLS-1$
    getFeatureInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "trigger", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, ModeTransitionInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(getModeTransitionInstance_Source(), getModeInstance(), getModeInstance_SrcModeTransition(), // $NON-NLS-1$
    "source", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, // $NON-NLS-1$
    ModeTransitionInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEClass(// $NON-NLS-1$
    connectionReferenceEClass, // $NON-NLS-1$
    ConnectionReference.class, // $NON-NLS-1$
    "ConnectionReference", // $NON-NLS-1$
    !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(// $NON-NLS-1$
    getConnectionReference_Context(), // $NON-NLS-1$
    getComponentInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "context", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, ConnectionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getConnectionReference_Connection(), // $NON-NLS-1$
    theAadl2Package.getConnection(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "connection", // $NON-NLS-1$
    null, 1, 1, ConnectionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getConnectionReference_Source(), // $NON-NLS-1$
    getConnectionInstanceEnd(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "source", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, ConnectionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getConnectionReference_Destination(), // $NON-NLS-1$
    getConnectionInstanceEnd(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "destination", // $NON-NLS-1$
    null, 1, 1, ConnectionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEAttribute(// $NON-NLS-1$
    getConnectionReference_Reverse(), // $NON-NLS-1$
    theAadl2Package.getBoolean(), // $NON-NLS-1$
    "reverse", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, ConnectionReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEClass(// $NON-NLS-1$
    componentInstanceEClass, // $NON-NLS-1$
    ComponentInstance.class, // $NON-NLS-1$
    "ComponentInstance", // $NON-NLS-1$
    !IS_ABSTRACT, // $NON-NLS-1$
    !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(// $NON-NLS-1$
    getComponentInstance_FeatureInstance(), // $NON-NLS-1$
    getFeatureInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "featureInstance", // $NON-NLS-1$
    null, 0, -1, ComponentInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getComponentInstance_ComponentInstance(), // $NON-NLS-1$
    getComponentInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "componentInstance", null, 0, -1, ComponentInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getComponentInstance_ModeInstance(), // $NON-NLS-1$
    getModeInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "modeInstance", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, ComponentInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(getComponentInstance_ModeTransitionInstance(), getModeTransitionInstance(), null, // $NON-NLS-1$
    "modeTransitionInstance", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, // $NON-NLS-1$
    ComponentInstance.class, // $NON-NLS-1$
    !IS_TRANSIENT, // $NON-NLS-1$
    !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEAttribute(// $NON-NLS-1$
    getComponentInstance_Category(), // $NON-NLS-1$
    theAadl2Package.getComponentCategory(), // $NON-NLS-1$
    "category", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, ComponentInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getComponentInstance_InMode(), // $NON-NLS-1$
    getModeInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "inMode", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, ComponentInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(getComponentInstance_FlowSpecification(), getFlowSpecificationInstance(), null, // $NON-NLS-1$
    "flowSpecification", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, // $NON-NLS-1$
    ComponentInstance.class, // $NON-NLS-1$
    !IS_TRANSIENT, // $NON-NLS-1$
    !IS_VOLATILE, // $NON-NLS-1$
    IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getComponentInstance_EndToEndFlow(), // $NON-NLS-1$
    getEndToEndFlowInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "endToEndFlow", // $NON-NLS-1$
    null, 0, -1, ComponentInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getComponentInstance_ConnectionInstance(), // $NON-NLS-1$
    getConnectionInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "connectionInstance", null, 0, -1, ComponentInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getComponentInstance_Subcomponent(), // $NON-NLS-1$
    theAadl2Package.getSubcomponent(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "subcomponent", null, 0, 1, ComponentInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEAttribute(// $NON-NLS-1$
    getComponentInstance_Index(), // $NON-NLS-1$
    theAadl2Package.getInteger(), // $NON-NLS-1$
    "index", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, ComponentInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getComponentInstance_Classifier(), // $NON-NLS-1$
    theAadl2Package.getComponentClassifier(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "classifier", null, 0, 1, ComponentInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEClass(// $NON-NLS-1$
    flowSpecificationInstanceEClass, // $NON-NLS-1$
    FlowSpecificationInstance.class, // $NON-NLS-1$
    "FlowSpecificationInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getFlowSpecificationInstance_Source(), getFeatureInstance(), getFeatureInstance_SrcFlowSpec(), // $NON-NLS-1$
    "source", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    1, // $NON-NLS-1$
    FlowSpecificationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(getFlowSpecificationInstance_Destination(), getFeatureInstance(), // $NON-NLS-1$
    getFeatureInstance_DstFlowSpec(), // $NON-NLS-1$
    "destination", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    1, // $NON-NLS-1$
    FlowSpecificationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(getFlowSpecificationInstance_FlowSpecification(), theAadl2Package.getFlowSpecification(), null, // $NON-NLS-1$
    "flowSpecification", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, // $NON-NLS-1$
    FlowSpecificationInstance.class, // $NON-NLS-1$
    !IS_TRANSIENT, // $NON-NLS-1$
    !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getFlowSpecificationInstance_InMode(), // $NON-NLS-1$
    getModeInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "inMode", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, FlowSpecificationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(getFlowSpecificationInstance_InModeTransition(), getModeTransitionInstance(), null, // $NON-NLS-1$
    "inModeTransition", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, // $NON-NLS-1$
    FlowSpecificationInstance.class, // $NON-NLS-1$
    !IS_TRANSIENT, // $NON-NLS-1$
    !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEClass(// $NON-NLS-1$
    endToEndFlowInstanceEClass, // $NON-NLS-1$
    EndToEndFlowInstance.class, // $NON-NLS-1$
    "EndToEndFlowInstance", // $NON-NLS-1$
    !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(// $NON-NLS-1$
    getEndToEndFlowInstance_FlowElement(), // $NON-NLS-1$
    getFlowElementInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "flowElement", // $NON-NLS-1$
    null, 0, -1, EndToEndFlowInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getEndToEndFlowInstance_InMode(), // $NON-NLS-1$
    getModeInstance(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "inMode", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, EndToEndFlowInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(getEndToEndFlowInstance_InSystemOperationMode(), getSystemOperationMode(), null, // $NON-NLS-1$
    "inSystemOperationMode", // $NON-NLS-1$
    null, // $NON-NLS-1$
    0, // $NON-NLS-1$
    -1, // $NON-NLS-1$
    EndToEndFlowInstance.class, // $NON-NLS-1$
    !IS_TRANSIENT, // $NON-NLS-1$
    !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEReference(// $NON-NLS-1$
    getEndToEndFlowInstance_EndToEndFlow(), // $NON-NLS-1$
    theAadl2Package.getEndToEndFlow(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "endToEndFlow", null, 1, 1, EndToEndFlowInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEClass(// $NON-NLS-1$
    systemInstanceEClass, // $NON-NLS-1$
    SystemInstance.class, // $NON-NLS-1$
    "SystemInstance", // $NON-NLS-1$
    !IS_ABSTRACT, // $NON-NLS-1$
    !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(// $NON-NLS-1$
    getSystemInstance_SystemOperationMode(), // $NON-NLS-1$
    getSystemOperationMode(), // $NON-NLS-1$
    null, // $NON-NLS-1$
    "systemOperationMode", null, 0, -1, SystemInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    initEReference(getSystemInstance_ComponentImplementation(), theAadl2Package.getComponentImplementation(), null, // $NON-NLS-1$
    "componentImplementation", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, // $NON-NLS-1$
    SystemInstance.class, // $NON-NLS-1$
    !IS_TRANSIENT, // $NON-NLS-1$
    !IS_VOLATILE, // $NON-NLS-1$
    IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    initEClass(// $NON-NLS-1$
    instanceReferenceValueEClass, // $NON-NLS-1$
    InstanceReferenceValue.class, // $NON-NLS-1$
    "InstanceReferenceValue", // $NON-NLS-1$
    !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    initEReference(getInstanceReferenceValue_ReferencedInstanceObject(), getInstanceObject(), null, // $NON-NLS-1$
    "referencedInstanceObject", // $NON-NLS-1$
    null, // $NON-NLS-1$
    1, // $NON-NLS-1$
    1, // $NON-NLS-1$
    InstanceReferenceValue.class, // $NON-NLS-1$
    !IS_TRANSIENT, // $NON-NLS-1$
    !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
    // Initialize enums and add enum literals
    // $NON-NLS-1$
    initEEnum(connectionKindEEnum, ConnectionKind.class, "ConnectionKind");
    addEEnumLiteral(connectionKindEEnum, ConnectionKind.FEATURE_CONNECTION);
    addEEnumLiteral(connectionKindEEnum, ConnectionKind.ACCESS_CONNECTION);
    addEEnumLiteral(connectionKindEEnum, ConnectionKind.PARAMETER_CONNECTION);
    addEEnumLiteral(connectionKindEEnum, ConnectionKind.PORT_CONNECTION);
    addEEnumLiteral(connectionKindEEnum, ConnectionKind.MODE_TRANSITION_CONNECTION);
    addEEnumLiteral(connectionKindEEnum, ConnectionKind.FEATURE_GROUP_CONNECTION);
    // $NON-NLS-1$
    initEEnum(featureCategoryEEnum, FeatureCategory.class, "FeatureCategory");
    addEEnumLiteral(featureCategoryEEnum, FeatureCategory.DATA_PORT);
    addEEnumLiteral(featureCategoryEEnum, FeatureCategory.EVENT_PORT);
    addEEnumLiteral(featureCategoryEEnum, FeatureCategory.EVENT_DATA_PORT);
    addEEnumLiteral(featureCategoryEEnum, FeatureCategory.PARAMETER);
    addEEnumLiteral(featureCategoryEEnum, FeatureCategory.BUS_ACCESS);
    addEEnumLiteral(featureCategoryEEnum, FeatureCategory.DATA_ACCESS);
    addEEnumLiteral(featureCategoryEEnum, FeatureCategory.SUBPROGRAM_ACCESS);
    addEEnumLiteral(featureCategoryEEnum, FeatureCategory.SUBPROGRAM_GROUP_ACCESS);
    addEEnumLiteral(featureCategoryEEnum, FeatureCategory.FEATURE_GROUP);
    addEEnumLiteral(featureCategoryEEnum, FeatureCategory.ABSTRACT_FEATURE);
    // Create resource
    createResource(eNS_URI);
    // Create annotations
    // http://www.eclipse.org/uml2/2.0.0/UML
    createUMLAnnotations();
    // duplicates
    createDuplicatesAnnotations();
}
Also used : Aadl2Package(org.osate.aadl2.Aadl2Package)

Example 7 with ConnectionReference

use of org.osate.aadl2.instance.ConnectionReference in project osate2 by osate.

the class AnalysisModel method populateConnectionPropagationPaths.

/**
 * find the propagation paths between component instances with error propagations.
 * This method handles different levels.
 * It also handles both complete and incomplete connection instances (the latter are out only and in only connections
 * @param connectionInstance
 * @param level LEAF (lowest), TOP (highest), ALL (all combinations)
 */
protected void populateConnectionPropagationPaths(ConnectionInstance connectionInstance, PropagationPathLevel level) {
    SystemOperationMode som = connectionInstance.getSystemInstance().getCurrentSystemOperationMode();
    if (!connectionInstance.isActive(som)) {
        return;
    }
    EList<ConnectionReference> connrefs = connectionInstance.getConnectionReferences();
    if (connrefs.isEmpty()) {
        return;
    }
    ErrorPropagation srcprop = null;
    ComponentInstance srcCI = null;
    ErrorPropagation dstprop = null;
    ComponentInstance dstCI = null;
    ConnectionReference first = connrefs.get(0);
    // inonly is an incomplete connection instance that is only incoming,
    // i.e., we only have incoming propagations.
    boolean inonly = (first.getSource().getComponentInstance() == first.getContext());
    ConnectionReference last = connrefs.get(connrefs.size() - 1);
    // outonly is an incomplete connection instance that is only outgoing,
    // i.e., we only have outgoing propagations.
    boolean outonly = (last.getDestination().getComponentInstance() == last.getContext());
    // list of additional source error propagations (i.e., those of
    // enclosing components.
    List<ComponentInstance> addlSrcCI = new ArrayList<ComponentInstance>();
    List<ErrorPropagation> addlSrcEP = new ArrayList<ErrorPropagation>();
    List<ComponentInstance> addlDstCI = new ArrayList<ComponentInstance>();
    List<ErrorPropagation> addlDstEP = new ArrayList<ErrorPropagation>();
    for (ConnectionReference connectionReference : connrefs) {
        if (!connectionReference.isActive(som)) {
            continue;
        }
        ConnectionInstanceEnd src = connectionReference.getSource();
        ConnectionInstanceEnd dst = connectionReference.getDestination();
        // remember the first (lowest in the hierarchy) src component
        // instance with Error propagation
        // srcprop is null until we found the source error propagation
        ErrorPropagation foundEP = null;
        if (src instanceof FeatureInstance) {
            if (inonly) {
                foundEP = EMV2Util.getIncomingErrorPropagation((FeatureInstance) src);
            } else {
                foundEP = EMV2Util.getOutgoingErrorPropagation((FeatureInstance) src);
            }
        } else if (src instanceof ComponentInstance) {
            // instance instead of a feature instance
            if (inonly) {
                foundEP = EMV2Util.getIncomingAccessErrorPropagation((ComponentInstance) src);
            } else {
                foundEP = EMV2Util.getOutgoingAccessErrorPropagation((ComponentInstance) src);
            }
        }
        if (foundEP != null) {
            switch(level) {
                case TOP:
                    srcprop = foundEP;
                    srcCI = src.getComponentInstance();
                    break;
                case LEAF:
                    if (srcprop == null) {
                        srcprop = foundEP;
                        srcCI = src.getComponentInstance();
                    }
                    break;
                case ALL:
                    addlSrcEP.add(foundEP);
                    addlSrcCI.add(src.getComponentInstance());
                    break;
            }
        }
        // We look for destination error propagations
        // it should be incoming except when outonly
        ErrorPropagation founddst = null;
        if (dst instanceof FeatureInstance) {
            if (outonly) {
                founddst = EMV2Util.getOutgoingErrorPropagation((FeatureInstance) dst);
            } else {
                founddst = EMV2Util.getIncomingErrorPropagation((FeatureInstance) dst);
            }
        } else if (dst instanceof ComponentInstance) {
            // a shared model element
            if (outonly) {
                founddst = EMV2Util.getOutgoingAccessErrorPropagation((ComponentInstance) dst);
            } else {
                founddst = EMV2Util.getIncomingAccessErrorPropagation((ComponentInstance) dst);
            }
        }
        if (founddst != null) {
            switch(level) {
                case TOP:
                    if (dstprop == null) {
                        dstprop = founddst;
                        dstCI = dst.getComponentInstance();
                    }
                    break;
                case LEAF:
                    dstprop = founddst;
                    dstCI = dst.getComponentInstance();
                    break;
                case ALL:
                    addlDstEP.add(foundEP);
                    addlDstCI.add(src.getComponentInstance());
                    break;
            }
        }
    }
    // record the results
    switch(level) {
        case TOP:
        case LEAF:
            if (srcprop != null && dstprop != null) {
                // we found a source and destination. Add it if not already
                // there.
                addPropagationpathRecord(srcCI, srcprop, dstCI, dstprop, connectionInstance);
            } else {
                if (srcprop != null && addlSrcEP.size() > 1) {
                    dstprop = addlSrcEP.get(addlSrcEP.size() - 1);
                    dstCI = addlSrcCI.get(addlSrcCI.size() - 1);
                }
            }
            break;
        case ALL:
            // FIXME: this is obviously wrong
            for (int i = 0; i < addlSrcCI.size(); i++) {
                for (int j = 0; i < addlDstCI.size(); i++) {
                    srcCI = addlSrcCI.get(i);
                    srcprop = addlSrcEP.get(i);
                    dstCI = addlDstCI.get(i);
                    dstprop = addlDstEP.get(i);
                    addPropagationpathRecord(srcCI, srcprop, dstCI, dstprop, connectionInstance);
                }
            }
            break;
    }
    if (connectionInstance.isBidirectional()) {
        // now work in the inverse direction since the conneciton is
        // bi-directional
        srcprop = null;
        srcCI = null;
        dstprop = null;
        dstCI = null;
        addlSrcCI.clear();
        addlSrcEP.clear();
        addlDstCI.clear();
        addlDstEP.clear();
        for (int i = connrefs.size() - 1; i >= 0; i--) {
            ConnectionReference connectionReference = connrefs.get(i);
            if (!connectionReference.isActive(som)) {
                continue;
            }
            ConnectionInstanceEnd dst = connectionReference.getSource();
            ConnectionInstanceEnd src = connectionReference.getDestination();
            ErrorPropagation foundEP = null;
            if (src instanceof FeatureInstance) {
                if (inonly) {
                    foundEP = EMV2Util.getIncomingErrorPropagation((FeatureInstance) src);
                } else {
                    foundEP = EMV2Util.getOutgoingErrorPropagation((FeatureInstance) src);
                }
            } else if (src instanceof ComponentInstance) {
                // instance instead of a feature instance
                if (inonly) {
                    foundEP = EMV2Util.getIncomingAccessErrorPropagation((ComponentInstance) src);
                } else {
                    foundEP = EMV2Util.getOutgoingAccessErrorPropagation((ComponentInstance) src);
                }
            }
            if (foundEP != null) {
                switch(level) {
                    case TOP:
                        srcprop = foundEP;
                        srcCI = src.getComponentInstance();
                        break;
                    case LEAF:
                        if (srcprop == null) {
                            srcprop = foundEP;
                            srcCI = src.getComponentInstance();
                        }
                        break;
                    case ALL:
                        addlSrcEP.add(foundEP);
                        addlSrcCI.add(src.getComponentInstance());
                        break;
                }
            }
            // We look for destination error propagations
            // it should be incoming except when outonly
            ErrorPropagation founddst = null;
            if (dst instanceof FeatureInstance) {
                if (outonly) {
                    founddst = EMV2Util.getOutgoingErrorPropagation((FeatureInstance) dst);
                } else {
                    founddst = EMV2Util.getIncomingErrorPropagation((FeatureInstance) dst);
                }
            } else if (dst instanceof ComponentInstance) {
                // a shared model element
                if (outonly) {
                    founddst = EMV2Util.getOutgoingAccessErrorPropagation((ComponentInstance) dst);
                } else {
                    founddst = EMV2Util.getIncomingAccessErrorPropagation((ComponentInstance) dst);
                }
            }
            if (founddst != null) {
                switch(level) {
                    case TOP:
                        if (dstprop == null) {
                            dstprop = founddst;
                            dstCI = dst.getComponentInstance();
                        }
                        break;
                    case LEAF:
                        dstprop = founddst;
                        dstCI = dst.getComponentInstance();
                        break;
                    case ALL:
                        addlDstEP.add(foundEP);
                        addlDstCI.add(src.getComponentInstance());
                        break;
                }
            }
        }
        // record the results
        switch(level) {
            case TOP:
            case LEAF:
                if (srcprop != null && dstprop != null) {
                    // we found a source and destination. Add it if not already
                    // there.
                    addPropagationpathRecord(srcCI, srcprop, dstCI, dstprop, connectionInstance);
                } else {
                    if (srcprop != null && addlSrcEP.size() > 1) {
                        dstprop = addlSrcEP.get(addlSrcEP.size() - 1);
                        dstCI = addlSrcCI.get(addlSrcCI.size() - 1);
                    }
                }
                break;
            case ALL:
                // FIXME: this is obviously wrong
                for (int i = 0; i < addlSrcCI.size(); i++) {
                    for (int j = 0; i < addlDstCI.size(); i++) {
                        srcCI = addlSrcCI.get(i);
                        srcprop = addlSrcEP.get(i);
                        dstCI = addlDstCI.get(i);
                        dstprop = addlDstEP.get(i);
                        addPropagationpathRecord(srcCI, srcprop, dstCI, dstprop, connectionInstance);
                    }
                }
                break;
        }
    }
}
Also used : FeatureInstance(org.osate.aadl2.instance.FeatureInstance) ConnectionInstanceEnd(org.osate.aadl2.instance.ConnectionInstanceEnd) ConnectionReference(org.osate.aadl2.instance.ConnectionReference) ComponentInstance(org.osate.aadl2.instance.ComponentInstance) ArrayList(java.util.ArrayList) ErrorPropagation(org.osate.xtext.aadl2.errormodel.errorModel.ErrorPropagation) SystemOperationMode(org.osate.aadl2.instance.SystemOperationMode)

Example 8 with ConnectionReference

use of org.osate.aadl2.instance.ConnectionReference in project osate2 by osate.

the class EMV2Util method findConnectionErrorSourceForConnection.

/**
 * Find ConnectionErrorSource with given classifier by looking through all connection error sources
 * @param conni the connection instance whose connection declarations we're using
 * @return the connection error source or null
 */
public static ErrorSource findConnectionErrorSourceForConnection(ConnectionInstance conni) {
    for (ConnectionReference connref : conni.getConnectionReferences()) {
        Connection conn = connref.getConnection();
        Classifier cl = getAssociatedClassifier(conn);
        if (cl != null) {
            Collection<ErrorSource> ceslist = getAllConnectionErrorSources(cl);
            for (ErrorSource ces : ceslist) {
                if (ces.isAll() || ces.getSourceModelElement().getName().equalsIgnoreCase(conn.getName())) {
                    return ces;
                }
            }
        }
    }
    return null;
}
Also used : ErrorSource(org.osate.xtext.aadl2.errormodel.errorModel.ErrorSource) ConnectionReference(org.osate.aadl2.instance.ConnectionReference) Connection(org.osate.aadl2.Connection) Classifier(org.osate.aadl2.Classifier) ComponentClassifier(org.osate.aadl2.ComponentClassifier)

Example 9 with ConnectionReference

use of org.osate.aadl2.instance.ConnectionReference in project osate2 by osate.

the class Util method populateConnectionPropagationPaths.

/**
 * find the propagation paths between component instances with error propagations.
 * This method handles different levels.
 * It also handles both complete and incomplete connection instances (the latter are out only and in only connections
 * @param connectionInstance
 */
protected static void populateConnectionPropagationPaths(PropagationGraph pg, ConnectionInstance connectionInstance) {
    SystemOperationMode som = connectionInstance.getSystemInstance().getCurrentSystemOperationMode();
    EList<ConnectionReference> connrefs = connectionInstance.getConnectionReferences();
    if (connrefs.isEmpty()) {
        return;
    }
    ErrorPropagation srcprop = null;
    ComponentInstance srcCI = null;
    ErrorPropagation dstprop = null;
    ComponentInstance dstCI = null;
    ConnectionReference first = connrefs.get(0);
    // inonly is an incomplete connection instance that is only incoming,
    // i.e., we only have incoming propagations.
    boolean inonly = (first.getSource().getComponentInstance() == first.getContext());
    ConnectionReference last = connrefs.get(connrefs.size() - 1);
    // outonly is an incomplete connection instance that is only outgoing,
    // i.e., we only have outgoing propagations.
    boolean outonly = (last.getDestination().getComponentInstance() == last.getContext());
    for (ConnectionReference connectionReference : connrefs) {
        ConnectionInstanceEnd src = connectionReference.getSource();
        ConnectionInstanceEnd dst = connectionReference.getDestination();
        // srcprop is null until we found the source error propagation
        if (srcprop == null) {
            ErrorPropagation foundEP = null;
            if (src instanceof FeatureInstance) {
                if (inonly) {
                    foundEP = EMV2Util.getIncomingErrorPropagation((FeatureInstance) src);
                } else {
                    foundEP = EMV2Util.getOutgoingErrorPropagation((FeatureInstance) src);
                }
            } else if (src instanceof ComponentInstance) {
                // instance instead of a feature instance
                if (inonly) {
                    foundEP = EMV2Util.getIncomingAccessErrorPropagation((ComponentInstance) src);
                } else {
                    foundEP = EMV2Util.getOutgoingAccessErrorPropagation((ComponentInstance) src);
                }
            }
            if (foundEP != null) {
                srcprop = foundEP;
                srcCI = src.getComponentInstance();
            }
        }
        // We look for destination error propagations
        // it should be incoming except when outonly
        ErrorPropagation founddst = null;
        if (dst instanceof FeatureInstance) {
            if (outonly) {
                founddst = EMV2Util.getOutgoingErrorPropagation((FeatureInstance) dst);
            } else {
                founddst = EMV2Util.getIncomingErrorPropagation((FeatureInstance) dst);
            }
        } else if (dst instanceof ComponentInstance) {
            // a shared model element
            if (outonly) {
                founddst = EMV2Util.getOutgoingAccessErrorPropagation((ComponentInstance) dst);
            } else {
                founddst = EMV2Util.getIncomingAccessErrorPropagation((ComponentInstance) dst);
            }
        }
        if (founddst != null) {
            // remember the last one, i.e., we keep setting it.
            dstprop = founddst;
            dstCI = dst.getComponentInstance();
        }
    }
    // record the results
    if (srcprop != null && dstprop != null) {
        // we found a source and destination. Add it if not already
        // there.
        addPropagationpathRecord(pg, srcCI, srcprop, dstCI, dstprop, connectionInstance);
    }
    if (connectionInstance.isBidirectional()) {
        // now work in the inverse direction since the conneciton is
        // bi-directional
        srcprop = null;
        srcCI = null;
        dstprop = null;
        dstCI = null;
        for (int i = connrefs.size() - 1; i >= 0; i--) {
            ConnectionReference connectionReference = connrefs.get(i);
            ConnectionInstanceEnd dst = connectionReference.getSource();
            ConnectionInstanceEnd src = connectionReference.getDestination();
            if (srcprop == null) {
                ErrorPropagation foundEP = null;
                if (src instanceof FeatureInstance) {
                    if (inonly) {
                        foundEP = EMV2Util.getIncomingErrorPropagation((FeatureInstance) src);
                    } else {
                        foundEP = EMV2Util.getOutgoingErrorPropagation((FeatureInstance) src);
                    }
                } else if (src instanceof ComponentInstance) {
                    // instance instead of a feature instance
                    if (inonly) {
                        foundEP = EMV2Util.getIncomingAccessErrorPropagation((ComponentInstance) src);
                    } else {
                        foundEP = EMV2Util.getOutgoingAccessErrorPropagation((ComponentInstance) src);
                    }
                }
                if (foundEP != null) {
                    srcprop = foundEP;
                    srcCI = src.getComponentInstance();
                }
            }
            // We look for destination error propagations
            // it should be incoming except when outonly
            ErrorPropagation founddst = null;
            if (dst instanceof FeatureInstance) {
                if (outonly) {
                    founddst = EMV2Util.getOutgoingErrorPropagation((FeatureInstance) dst);
                } else {
                    founddst = EMV2Util.getIncomingErrorPropagation((FeatureInstance) dst);
                }
            } else if (dst instanceof ComponentInstance) {
                // a shared model element
                if (outonly) {
                    founddst = EMV2Util.getOutgoingAccessErrorPropagation((ComponentInstance) dst);
                } else {
                    founddst = EMV2Util.getIncomingAccessErrorPropagation((ComponentInstance) dst);
                }
            }
            if (founddst != null) {
                dstprop = founddst;
                dstCI = dst.getComponentInstance();
            }
        }
        // record the results
        if (srcprop != null && dstprop != null) {
            // we found a source and destination. Add it if not already
            // there.
            addPropagationpathRecord(pg, srcCI, srcprop, dstCI, dstprop, connectionInstance);
        }
    }
}
Also used : FeatureInstance(org.osate.aadl2.instance.FeatureInstance) ConnectionInstanceEnd(org.osate.aadl2.instance.ConnectionInstanceEnd) ConnectionReference(org.osate.aadl2.instance.ConnectionReference) ComponentInstance(org.osate.aadl2.instance.ComponentInstance) ErrorPropagation(org.osate.xtext.aadl2.errormodel.errorModel.ErrorPropagation) SystemOperationMode(org.osate.aadl2.instance.SystemOperationMode)

Example 10 with ConnectionReference

use of org.osate.aadl2.instance.ConnectionReference in project osate2 by osate.

the class ConnectionInstanceImpl method createConnectionReference.

/**
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public ConnectionReference createConnectionReference() {
    ConnectionReference newConnectionReference = (ConnectionReference) create(InstancePackage.Literals.CONNECTION_REFERENCE);
    getConnectionReferences().add(newConnectionReference);
    return newConnectionReference;
}
Also used : ConnectionReference(org.osate.aadl2.instance.ConnectionReference)

Aggregations

ConnectionReference (org.osate.aadl2.instance.ConnectionReference)36 ComponentInstance (org.osate.aadl2.instance.ComponentInstance)21 ConnectionInstance (org.osate.aadl2.instance.ConnectionInstance)15 Connection (org.osate.aadl2.Connection)13 ConnectionInstanceEnd (org.osate.aadl2.instance.ConnectionInstanceEnd)12 FeatureInstance (org.osate.aadl2.instance.FeatureInstance)8 Element (org.osate.aadl2.Element)7 InstanceObject (org.osate.aadl2.instance.InstanceObject)7 ArrayList (java.util.ArrayList)6 ConnectionEnd (org.osate.aadl2.ConnectionEnd)6 Feature (org.osate.aadl2.Feature)5 FeatureGroupConnection (org.osate.aadl2.FeatureGroupConnection)5 SystemOperationMode (org.osate.aadl2.instance.SystemOperationMode)5 BasicEList (org.eclipse.emf.common.util.BasicEList)4 AccessConnection (org.osate.aadl2.AccessConnection)4 NamedElement (org.osate.aadl2.NamedElement)4 ParameterConnection (org.osate.aadl2.ParameterConnection)4 PortConnection (org.osate.aadl2.PortConnection)4 PropertyAssociation (org.osate.aadl2.PropertyAssociation)4 ReferenceValue (org.osate.aadl2.ReferenceValue)4