Skip to content

Binding Connector Client Side Masking #2

Description

@dandunbar23

I've noticed a masking effect when two Binding Connectors share a client part with port. Consider the following snippet from a parametric diagram:

image

In this case the Binding Connectors were created starting with block 2 (supplier) and moving to block 1 (client). An export using MTIP contains the following:

    <data>
        <relationships _dtype="dict">
            <hasParent _dtype="dict">
                <type _dtype="str">sysml.Block</type>
                <id _dtype="str">_19_0_3_1fb304ea_1698843719848_734498_42604</id>
                <relationship_metadata _dtype="dict"/>
            </hasParent>
            <supplier _dtype="dict">
                <type _dtype="str">sysml.ConstraintParameter</type>
                <id _dtype="str">_19_0_3_1fb304ea_1698843829265_18509_42994</id>
                <relationship_metadata _dtype="dict"/>
            </supplier>
            <client _dtype="dict">
                <type _dtype="str">sysml.ConstraintParameter</type>
                <id _dtype="str">_19_0_3_1fb304ea_1698843820671_851932_42960</id>
                <relationship_metadata _dtype="dict"/>
            </client>
            <supplierPartWithPort _dtype="dict">
                <type _dtype="str">sysml.PartProperty</type>
                <id _dtype="str">_19_0_3_1fb304ea_1698843785329_101118_42835</id>
                <relationship_metadata _dtype="dict"/>
            </supplierPartWithPort>
            <clientPartWithPort _dtype="dict">
                <type _dtype="str">sysml.PartProperty</type>
                <id _dtype="str">_19_0_3_1fb304ea_1698843781704_445739_42819</id>
                <relationship_metadata _dtype="dict"/>
            </clientPartWithPort>
        </relationships>
        <id _dtype="dict">
            <cameo _dtype="str">_19_0_3_1fb304ea_1698843834822_845182_43016</cameo>
        </id>
        <attributes _dtype="dict">
            <attribute _dtype="dict" key="stereotype">
                <attribute _dtype="str" key="stereotypeName">BindingConnector</attribute>
                <attribute _dtype="str" key="stereotypeId">_15_0_be00301_1204738115945_253883_5044</attribute>
                <attribute _dtype="str" key="profileName">SysML</attribute>
                <attribute _dtype="str" key="profileId">_11_5EAPbeta_be00301_1147434586638_637562_1900</attribute>
            </attribute>
        </attributes>
        <type _dtype="str">sysml.BindingConnector</type>
    </data>

    <data>
        <relationships _dtype="dict">
            <hasParent _dtype="dict">
                <type _dtype="str">sysml.Block</type>
                <id _dtype="str">_19_0_3_1fb304ea_1698843719848_734498_42604</id>
                <relationship_metadata _dtype="dict"/>
            </hasParent>
            <supplier _dtype="dict">
                <type _dtype="str">sysml.ConstraintParameter</type>
                <id _dtype="str">_19_0_3_1fb304ea_1698843825115_377898_42977</id>
                <relationship_metadata _dtype="dict"/>
            </supplier>
            <client _dtype="dict">
                <type _dtype="str">sysml.ConstraintParameter</type>
                <id _dtype="str">_19_0_3_1fb304ea_1698843812090_544489_42943</id>
                <relationship_metadata _dtype="dict"/>
            </client>
            <supplierPartWithPort _dtype="dict">
                <type _dtype="str">sysml.PartProperty</type>
                <id _dtype="str">_19_0_3_1fb304ea_1698843785329_101118_42835</id>
                <relationship_metadata _dtype="dict"/>
            </supplierPartWithPort>
            <clientPartWithPort _dtype="dict">
                <type _dtype="str">sysml.PartProperty</type>
                <id _dtype="str">_19_0_3_1fb304ea_1698843781704_445739_42819</id>
                <relationship_metadata _dtype="dict"/>
            </clientPartWithPort>
        </relationships>
        <id _dtype="dict">
            <cameo _dtype="str">_19_0_3_1fb304ea_1698843838935_678915_43036</cameo>
        </id>
        <attributes _dtype="dict">
            <attribute _dtype="dict" key="stereotype">
                <attribute _dtype="str" key="stereotypeName">BindingConnector</attribute>
                <attribute _dtype="str" key="stereotypeId">_15_0_be00301_1204738115945_253883_5044</attribute>
                <attribute _dtype="str" key="profileName">SysML</attribute>
                <attribute _dtype="str" key="profileId">_11_5EAPbeta_be00301_1147434586638_637562_1900</attribute>
            </attribute>
        </attributes>
        <type _dtype="str">sysml.BindingConnector</type>
    </data>

Note that the Binding Connector definitions have different Client IDs and identical ClientPartWithPortIDs. This makes sense. They are connected to the same part property but different constraint parameters. When I import an XML like this using MTIP, both Binding Connectors are set to the same constraint parameter:

image

To me, this indicates a masking effect where the initial constraint parameter is overwritten with the latter before changes to the model are actually committed.

Any thoughts on what is happening here or where in the code to look first?

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions