11/*******************************************************************************
22 * SysML 2 Pilot Implementation
3- * Copyright (c) 2021, 2022, 2025 Model Driven Solutions, Inc.
3+ * Copyright (c) 2021, 2022, 2025, 2026 Model Driven Solutions, Inc.
44 *
55 * This program is free software: you can redistribute it and/or modify
66 * it under the terms of the GNU Lesser General Public License as published by
2121
2222package org .omg .sysml .adapter ;
2323
24+ import org .eclipse .emf .ecore .EObject ;
25+ import org .omg .sysml .lang .sysml .FeatureMembership ;
2426import org .omg .sysml .lang .sysml .PartDefinition ;
2527import org .omg .sysml .lang .sysml .PartUsage ;
2628import org .omg .sysml .lang .sysml .PortDefinition ;
@@ -37,6 +39,21 @@ public PortUsage getTarget() {
3739 return (PortUsage )super .getTarget ();
3840 }
3941
42+ /**
43+ * @satisfies validatePortUsageIsReference
44+ */
45+ public void postProcess () {
46+ super .postProcess ();
47+ PortUsage target = getTarget ();
48+ EObject container = target .eContainer ();
49+ if (container instanceof FeatureMembership ) {
50+ Type owningType = ((FeatureMembership )container ).getOwningType ();
51+ if (!(owningType instanceof PortDefinition || owningType instanceof PortUsage )) {
52+ target .setIsComposite (false );
53+ }
54+ }
55+ }
56+
4057 // Implicit Generalization
4158
4259 @ Override
0 commit comments