Search in sources :

Example 6 with SystemOperationMode

use of org.osate.aadl2.instance.SystemOperationMode 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 SystemOperationMode

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

the class AadlElementContentProvider method getChildren.

@Override
public Object[] getChildren(Object parentElement) {
    Stream<EObject> children;
    final ResourceSetImpl resourceSet = new ResourceSetImpl();
    if (parentElement instanceof IFile) {
        String path = ((IFile) parentElement).getFullPath().toString();
        URI uri = URI.createPlatformResourceURI(path, true);
        Resource resource = resourceSet.getResource(uri, true);
        children = resource.getContents().stream();
    } else if (parentElement instanceof ContributedAadlStorage) {
        URI uri = ((ContributedAadlStorage) parentElement).getUri();
        Resource resource = resourceSet.getResource(uri, true);
        children = resource.getContents().stream();
    } else {
        EObjectURIWrapper wrapper = (EObjectURIWrapper) parentElement;
        EObject eObject = resourceSet.getEObject(wrapper.getUri(), true);
        if (eObject instanceof AadlPackage || eObject instanceof PropertySet || eObject instanceof ComponentInstance) {
            children = eObject.eContents().stream().filter(element -> !(element instanceof SystemOperationMode || element instanceof PropertyAssociation));
        } else if (eObject instanceof PackageSection) {
            children = eObject.eContents().stream().filter(element -> element instanceof Classifier || element instanceof AnnexLibrary);
        } else if (eObject instanceof Classifier) {
            children = eObject.eContents().stream().filter(element -> element instanceof ClassifierFeature || element instanceof PropertyAssociation);
        } else {
            children = Stream.empty();
        }
    }
    final EObjectURIWrapper.Factory factory = new EObjectURIWrapper.Factory(UiUtil.getModelElementLabelProvider());
    // Issue 2430: limit the number of children to 150
    return children.limit(150).map(element -> factory.createWrapperFor(element)).toArray();
}
Also used : ComponentInstance(org.osate.aadl2.instance.ComponentInstance) URI(org.eclipse.emf.common.util.URI) PackageSection(org.osate.aadl2.PackageSection) EObject(org.eclipse.emf.ecore.EObject) AadlPackage(org.osate.aadl2.AadlPackage) ResourceSetImpl(org.eclipse.emf.ecore.resource.impl.ResourceSetImpl) PropertySet(org.osate.aadl2.PropertySet) UiUtil(org.osate.ui.UiUtil) PropertyAssociation(org.osate.aadl2.PropertyAssociation) Stream(java.util.stream.Stream) Classifier(org.osate.aadl2.Classifier) SystemOperationMode(org.osate.aadl2.instance.SystemOperationMode) Resource(org.eclipse.emf.ecore.resource.Resource) IFile(org.eclipse.core.resources.IFile) ClassifierFeature(org.osate.aadl2.ClassifierFeature) ITreeContentProvider(org.eclipse.jface.viewers.ITreeContentProvider) AnnexLibrary(org.osate.aadl2.AnnexLibrary) EObjectURIWrapper(org.osate.aadl2.modelsupport.EObjectURIWrapper) ContributedAadlStorage(org.osate.xtext.aadl2.ui.resource.ContributedAadlStorage) ResourceSetImpl(org.eclipse.emf.ecore.resource.impl.ResourceSetImpl) IFile(org.eclipse.core.resources.IFile) AadlPackage(org.osate.aadl2.AadlPackage) PropertyAssociation(org.osate.aadl2.PropertyAssociation) PackageSection(org.osate.aadl2.PackageSection) Resource(org.eclipse.emf.ecore.resource.Resource) SystemOperationMode(org.osate.aadl2.instance.SystemOperationMode) Classifier(org.osate.aadl2.Classifier) URI(org.eclipse.emf.common.util.URI) ClassifierFeature(org.osate.aadl2.ClassifierFeature) ContributedAadlStorage(org.osate.xtext.aadl2.ui.resource.ContributedAadlStorage) EObject(org.eclipse.emf.ecore.EObject) EObjectURIWrapper(org.osate.aadl2.modelsupport.EObjectURIWrapper) ComponentInstance(org.osate.aadl2.instance.ComponentInstance) PropertySet(org.osate.aadl2.PropertySet) AnnexLibrary(org.osate.aadl2.AnnexLibrary)

Example 8 with SystemOperationMode

use of org.osate.aadl2.instance.SystemOperationMode 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 9 with SystemOperationMode

use of org.osate.aadl2.instance.SystemOperationMode 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 SystemOperationMode

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

the class FlowLatencyAnalysisSwitch method invokeOnSOM.

/**
 * Invoke the analysis and return Result collection
 *
 * @param etef The end to end flow instance
 * @param som The mode to run the analysis in. If the ETEF is not active it will not be run.
 * @param asynchronousSystem Whether the system is treated as asynchronous
 * @param majorFrameDelay Whether partition output is performed at a major frame (as opposed to the partition end)
 * @param worstCaseDeadline Use deadline based processing (as opposed to max compute execution time)
 * @param bestCaseEmptyQueue Assume empty queue (instead of full)
 * @param disableQueuingLatency <code>true</code> if queuing latency should always be reported as zero
 *
 * @since org.osate.analysis.flows 3.0
 */
private void invokeOnSOM(EndToEndFlowInstance etef, SystemOperationMode som, boolean asynchronousSystem, boolean majorFrameDelay, boolean worstCaseDeadline, boolean bestCaseEmptyQueue, boolean disableQueuingLatency) {
    if (report == null) {
        report = new LatencyReport();
    }
    report.setRootinstance(etef.getSystemInstance());
    report.setLatencyAnalysisParameters(asynchronousSystem, majorFrameDelay, worstCaseDeadline, bestCaseEmptyQueue, disableQueuingLatency);
    SystemInstance root = etef.getSystemInstance();
    if (etef.isActive(som)) {
        root.setCurrentSystemOperationMode(som);
        LatencyReportEntry latres = analyzeLatency(etef, som, asynchronousSystem);
        // Issue 1148
        report.addEntry(latres);
        root.clearCurrentSystemOperationMode();
    }
}
Also used : SystemInstance(org.osate.aadl2.instance.SystemInstance) LatencyReportEntry(org.osate.analysis.flows.model.LatencyReportEntry) LatencyReport(org.osate.analysis.flows.model.LatencyReport)

Aggregations

SystemOperationMode (org.osate.aadl2.instance.SystemOperationMode)27 ComponentInstance (org.osate.aadl2.instance.ComponentInstance)21 SystemInstance (org.osate.aadl2.instance.SystemInstance)18 ConnectionInstance (org.osate.aadl2.instance.ConnectionInstance)12 Classifier (org.osate.aadl2.Classifier)10 Element (org.osate.aadl2.Element)10 InstanceObject (org.osate.aadl2.instance.InstanceObject)9 ForAllElement (org.osate.aadl2.modelsupport.modeltraversal.ForAllElement)9 FeatureInstance (org.osate.aadl2.instance.FeatureInstance)7 ArrayList (java.util.ArrayList)6 AadlPackage (org.osate.aadl2.AadlPackage)6 PropertyAssociation (org.osate.aadl2.PropertyAssociation)6 ModeInstance (org.osate.aadl2.instance.ModeInstance)6 InvalidModelException (org.osate.aadl2.properties.InvalidModelException)6 Optional (java.util.Optional)5 Inject (com.google.inject.Inject)4 HashSet (java.util.HashSet)4 EList (org.eclipse.emf.common.util.EList)4 ComponentClassifier (org.osate.aadl2.ComponentClassifier)4 ModalPropertyValue (org.osate.aadl2.ModalPropertyValue)4