Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Binding Connector Client Side Masking #2

Open
dandunbar23 opened this issue Nov 1, 2023 · 0 comments
Open

Binding Connector Client Side Masking #2

dandunbar23 opened this issue Nov 1, 2023 · 0 comments

Comments

@dandunbar23
Copy link
Collaborator

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant