From 2f6e838d34d37e3862096739e0e77b9d0acb4aea Mon Sep 17 00:00:00 2001 From: Arthur Daussy Date: Mon, 3 Aug 2026 16:04:38 +0200 Subject: [PATCH] ST6RI-950 Restore Usage composite defaults through parser adapters Use Xtext node information to preserve explicit isComposite and isReference assignments while restoring implicit parser defaults during post-processing. Keep standard EMF creation and XMI deserialization aligned with the Ecore default by removing constructor-specific isComposite initialization. --- .../META-INF/MANIFEST.MF | 3 +- .../tests/ParserPostProcessorTest.java | 100 +++++++++++- .../interactive/tests/UsageParsingTest.java | 147 ++++++++++++++++++ .../org.omg.sysml.logic-0.62.0-SNAPSHOT.jar | Bin 675709 -> 676055 bytes .../org.omg.sysml.model-0.62.0-SNAPSHOT.jar | Bin 898006 -> 897782 bytes .../lang/sysml/impl/AttributeUsageImpl.java | 3 +- .../impl/BindingConnectorAsUsageImpl.java | 3 +- .../sysml/impl/EventOccurrenceUsageImpl.java | 3 +- .../sysml/impl/ExhibitStateUsageImpl.java | 3 +- .../sysml/impl/IncludeUseCaseUsageImpl.java | 3 +- .../sysml/impl/PerformActionUsageImpl.java | 3 +- .../lang/sysml/impl/ReferenceUsageImpl.java | 3 +- .../sysml/impl/SuccessionAsUsageImpl.java | 3 +- .../omg/sysml/lang/sysml/impl/UsageImpl.java | 3 +- .../UsageParserPostProcessor.java | 34 +++- 15 files changed, 283 insertions(+), 28 deletions(-) create mode 100644 org.omg.sysml.interactive.tests/src/org/omg/sysml/interactive/tests/UsageParsingTest.java diff --git a/org.omg.sysml.interactive.tests/META-INF/MANIFEST.MF b/org.omg.sysml.interactive.tests/META-INF/MANIFEST.MF index 616c070a38..bc16cea929 100644 --- a/org.omg.sysml.interactive.tests/META-INF/MANIFEST.MF +++ b/org.omg.sysml.interactive.tests/META-INF/MANIFEST.MF @@ -13,4 +13,5 @@ Require-Bundle: org.omg.sysml.interactive;bundle-version="0.62.0", org.omg.sysml;bundle-version="0.62.0", org.eclipse.xtext;bundle-version="2.22.0", org.omg.kerml.xtext;bundle-version="0.62.0", - org.omg.sysml.xtext;bundle-version="0.62.0" + org.omg.sysml.xtext;bundle-version="0.62.0", + org.omg.kerml.xpect.tests;bundle-version="0.62.0" diff --git a/org.omg.sysml.interactive.tests/src/org/omg/sysml/interactive/tests/ParserPostProcessorTest.java b/org.omg.sysml.interactive.tests/src/org/omg/sysml/interactive/tests/ParserPostProcessorTest.java index 7ee12a749f..24b7c2d81e 100644 --- a/org.omg.sysml.interactive.tests/src/org/omg/sysml/interactive/tests/ParserPostProcessorTest.java +++ b/org.omg.sysml.interactive.tests/src/org/omg/sysml/interactive/tests/ParserPostProcessorTest.java @@ -12,35 +12,42 @@ package org.omg.sysml.interactive.tests; -import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertTrue; +import java.util.List; + +import org.eclipse.emf.ecore.EClass; import org.junit.Test; import org.omg.kerml.xtext.postprocessing.ElementParserPostProcessor; import org.omg.kerml.xtext.postprocessing.ImportParserPostProcessor; import org.omg.kerml.xtext.postprocessing.LiteralStringParserPostProcessor; -import org.omg.sysml.xtext.postprocessing.ConnectionUsageParserPostProcessor; -import org.omg.sysml.xtext.postprocessing.ItemUsageParserPostProcessor; -import org.omg.sysml.xtext.postprocessing.OccurrenceUsageParserPostProcessor; -import org.omg.sysml.xtext.postprocessing.PartUsageParserPostProcessor; -import org.omg.sysml.xtext.postprocessing.PortUsageParserPostProcessor; -import org.omg.sysml.xtext.postprocessing.SysMLParserPostProcessorFactory; import org.omg.kerml.xtext.postprocessing.RedefinitionParserPostProcessor; import org.omg.sysml.lang.sysml.ConnectionUsage; import org.omg.sysml.lang.sysml.Element; import org.omg.sysml.lang.sysml.Feature; import org.omg.sysml.lang.sysml.FeatureDirectionKind; +import org.omg.sysml.lang.sysml.FeatureMembership; import org.omg.sysml.lang.sysml.LiteralString; import org.omg.sysml.lang.sysml.OccurrenceUsage; import org.omg.sysml.lang.sysml.OwningMembership; +import org.omg.sysml.lang.sysml.PartDefinition; import org.omg.sysml.lang.sysml.PartUsage; +import org.omg.sysml.lang.sysml.PortDefinition; import org.omg.sysml.lang.sysml.PortUsage; import org.omg.sysml.lang.sysml.PortionKind; import org.omg.sysml.lang.sysml.SysMLFactory; +import org.omg.sysml.lang.sysml.SysMLPackage; import org.omg.sysml.lang.sysml.Usage; import org.omg.sysml.util.TypeUtil; +import org.omg.sysml.xtext.postprocessing.ConnectionUsageParserPostProcessor; +import org.omg.sysml.xtext.postprocessing.ItemUsageParserPostProcessor; +import org.omg.sysml.xtext.postprocessing.OccurrenceUsageParserPostProcessor; +import org.omg.sysml.xtext.postprocessing.PartUsageParserPostProcessor; +import org.omg.sysml.xtext.postprocessing.PortUsageParserPostProcessor; +import org.omg.sysml.xtext.postprocessing.SysMLParserPostProcessorFactory; public class ParserPostProcessorTest extends SysMLInteractiveTest { @@ -170,4 +177,83 @@ public void postProcessMakesUsageOutsideFeatureMembershipNonComposite() { assertFalse(usage.isComposite()); } + + @Test + public void standardFactoryUsesTheEcoreCompositeDefault() { + assertFalse(SysMLFactory.eINSTANCE.createUsage().isComposite()); + for (EClass eClass : nonCompositeUsageTypes()) { + Usage usage = (Usage)SysMLFactory.eINSTANCE.create(eClass); + assertFalse(eClass.getName(), usage.isComposite()); + assertTrue(eClass.getName(), usage.isReference()); + } + } + + @Test + public void parserAdapterRestoresImplicitConstructorDefaults() { + PartUsage partUsage = (PartUsage)createUsageOwnedByFeatureMembership(SysMLPackage.Literals.PART_USAGE); + postProcess(partUsage); + assertTrue(partUsage.isComposite()); + + for (EClass eClass : nonCompositeUsageTypes()) { + Usage usage = createUsageOwnedByFeatureMembership(eClass); + postProcess(usage); + assertFalse(eClass.getName(), usage.isComposite()); + assertTrue(eClass.getName(), usage.isReference()); + } + } + + @Test + public void postProcessMakesContextuallyReferentialUsagesNonComposite() { + PartUsage directedUsage = (PartUsage)createUsageOwnedByFeatureMembership(SysMLPackage.Literals.PART_USAGE); + directedUsage.setDirection(FeatureDirectionKind.IN); + postProcess(directedUsage); + assertFalse(directedUsage.isComposite()); + + PartUsage endUsage = (PartUsage)createUsageOwnedByFeatureMembership(SysMLPackage.Literals.PART_USAGE); + endUsage.setIsEnd(true); + postProcess(endUsage); + assertFalse(endUsage.isComposite()); + + PartUsage unfeaturedUsage = SysMLFactory.eINSTANCE.createPartUsage(); + OwningMembership membership = SysMLFactory.eINSTANCE.createOwningMembership(); + membership.setOwnedMemberElement(unfeaturedUsage); + postProcess(unfeaturedUsage); + assertFalse(unfeaturedUsage.isComposite()); + } + + @Test + public void portUsageIsCompositeOnlyInAPortContext() { + PortUsage portUsage = SysMLFactory.eINSTANCE.createPortUsage(); + FeatureMembership membership = SysMLFactory.eINSTANCE.createFeatureMembership(); + membership.setOwnedMemberFeature(portUsage); + PortDefinition owner = SysMLFactory.eINSTANCE.createPortDefinition(); + owner.getOwnedRelationship().add(membership); + postProcess(portUsage); + assertTrue(portUsage.isComposite()); + + PortUsage partPortUsage = (PortUsage)createUsageOwnedByFeatureMembership(SysMLPackage.Literals.PORT_USAGE); + postProcess(partPortUsage); + assertFalse(partPortUsage.isComposite()); + } + + private static List nonCompositeUsageTypes() { + return List.of( + SysMLPackage.Literals.ATTRIBUTE_USAGE, + SysMLPackage.Literals.BINDING_CONNECTOR_AS_USAGE, + SysMLPackage.Literals.EVENT_OCCURRENCE_USAGE, + SysMLPackage.Literals.EXHIBIT_STATE_USAGE, + SysMLPackage.Literals.INCLUDE_USE_CASE_USAGE, + SysMLPackage.Literals.PERFORM_ACTION_USAGE, + SysMLPackage.Literals.REFERENCE_USAGE, + SysMLPackage.Literals.SUCCESSION_AS_USAGE); + } + + private static Usage createUsageOwnedByFeatureMembership(EClass eClass) { + Usage usage = (Usage)SysMLFactory.eINSTANCE.create(eClass); + FeatureMembership membership = SysMLFactory.eINSTANCE.createFeatureMembership(); + membership.setOwnedMemberFeature(usage); + PartDefinition owner = SysMLFactory.eINSTANCE.createPartDefinition(); + owner.getOwnedRelationship().add(membership); + return usage; + } } diff --git a/org.omg.sysml.interactive.tests/src/org/omg/sysml/interactive/tests/UsageParsingTest.java b/org.omg.sysml.interactive.tests/src/org/omg/sysml/interactive/tests/UsageParsingTest.java new file mode 100644 index 0000000000..b48847ebbc --- /dev/null +++ b/org.omg.sysml.interactive.tests/src/org/omg/sysml/interactive/tests/UsageParsingTest.java @@ -0,0 +1,147 @@ +/******************************************************************************* + * SysML 2 Pilot Implementation + * Copyright (c) 2026 Obeo + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ + +package org.omg.sysml.interactive.tests; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.Map; + +import org.eclipse.emf.common.util.TreeIterator; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceImpl; +import org.eclipse.xtext.nodemodel.util.NodeModelUtils; +import org.eclipse.xtext.resource.XtextResource; +import org.eclipse.xtext.resource.XtextResourceSet; +import org.junit.BeforeClass; +import org.junit.Test; +import org.omg.kerml.xpect.KerMLXtextTests; +import org.omg.sysml.lang.sysml.SysMLFactory; +import org.omg.sysml.lang.sysml.SysMLPackage; +import org.omg.sysml.lang.sysml.Usage; +import org.omg.sysml.xtext.SysMLStandaloneSetup; + +import com.google.inject.Injector; + +public class UsageParsingTest { + + private static Injector injector; + + @BeforeClass + public static void setUp() { + KerMLXtextTests.setup(); + injector = new SysMLStandaloneSetup().createInjectorAndDoEMFRegistration(); + SysMLPackage.eINSTANCE.eClass(); + } + + @Test + public void parserUsesSyntaxNodesToApplyCompositeDefaults() throws IOException { + XtextResource resource = parse(""" + part def P { + part implicitComposite; + ref part explicitReference; + in part directed; + attribute nonCompositeType; + } + action def A { + merge explicitComposite; + } + """); + + Usage implicitComposite = findUsage(resource, "implicitComposite"); + assertTrue(NodeModelUtils.findNodesForFeature( + implicitComposite, SysMLPackage.Literals.FEATURE__IS_COMPOSITE).isEmpty()); + assertTrue(NodeModelUtils.findNodesForFeature( + implicitComposite, SysMLPackage.Literals.USAGE__IS_REFERENCE).isEmpty()); + assertTrue(implicitComposite.isComposite()); + + Usage explicitReference = findUsage(resource, "explicitReference"); + assertFalse(NodeModelUtils.findNodesForFeature( + explicitReference, SysMLPackage.Literals.USAGE__IS_REFERENCE).isEmpty()); + assertTrue(explicitReference.isReference()); + + Usage explicitComposite = findUsage(resource, "explicitComposite"); + assertFalse(NodeModelUtils.findNodesForFeature( + explicitComposite, SysMLPackage.Literals.FEATURE__IS_COMPOSITE).isEmpty()); + assertTrue(explicitComposite.isComposite()); + + assertTrue(findUsage(resource, "directed").isReference()); + assertTrue(findUsage(resource, "nonCompositeType").isReference()); + } + + @Test + public void compositeValuesSurviveXmiRoundTrips() throws IOException { + assertXmiRoundTrip(false); + assertXmiRoundTrip(true); + + Usage usage = SysMLFactory.eINSTANCE.createUsage(); + usage.setIsComposite(true); + usage.eUnset(SysMLPackage.Literals.FEATURE__IS_COMPOSITE); + Usage loaded = xmiRoundTrip(usage); + assertFalse(loaded.isComposite()); + assertTrue(loaded.isReference()); + } + + private static XtextResource parse(String text) throws IOException { + XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class); + XtextResource resource = (XtextResource)resourceSet.createResource(URI.createURI("memory:/usage.sysml")); + resource.load(new ByteArrayInputStream(text.getBytes(StandardCharsets.UTF_8)), Map.of()); + EcoreUtil.resolveAll(resource); + assertTrue(resource.getErrors().toString(), resource.getErrors().isEmpty()); + return resource; + } + + private static Usage findUsage(Resource resource, String name) { + TreeIterator iterator = resource.getAllContents(); + while (iterator.hasNext()) { + EObject object = iterator.next(); + if (object instanceof Usage usage && name.equals(usage.getDeclaredName())) { + return usage; + } + } + fail("Usage not found: " + name); + return null; + } + + private static void assertXmiRoundTrip(boolean isComposite) throws IOException { + Usage usage = SysMLFactory.eINSTANCE.createUsage(); + usage.setIsComposite(isComposite); + Usage loaded = xmiRoundTrip(usage); + if (isComposite) { + assertTrue(loaded.isComposite()); + assertFalse(loaded.isReference()); + } else { + assertFalse(loaded.isComposite()); + assertTrue(loaded.isReference()); + } + } + + private static Usage xmiRoundTrip(Usage usage) throws IOException { + URI uri = URI.createURI("memory:/usage.xmi"); + Resource savedResource = new XMIResourceImpl(uri); + savedResource.getContents().add(usage); + ByteArrayOutputStream output = new ByteArrayOutputStream(); + savedResource.save(output, Map.of()); + + Resource loadedResource = new XMIResourceImpl(uri); + loadedResource.load(new ByteArrayInputStream(output.toByteArray()), Map.of()); + return (Usage)loadedResource.getContents().get(0); + } +} diff --git a/org.omg.sysml.logic.bundle/lib/org.omg.sysml.logic-0.62.0-SNAPSHOT.jar b/org.omg.sysml.logic.bundle/lib/org.omg.sysml.logic-0.62.0-SNAPSHOT.jar index 2b7ec9ef06190bf535eca4d5adfcb6f3cb4fc0a5..bba4e5bddbdfcc291c8ca1bdbe95cb69c74d9479 100644 GIT binary patch delta 42215 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 HZ*K8_yjOO< delta 42381 zcmaI82{@I{`#T4m{(Rn_|Nr{BuC8aAx$oD#%suzaJZGMHT`2LpK!VQ76osayqQX;AJ&zX3 zpcA2kA8upLvzKkCsHm(n4%mo~D7~K#l^l9vJo4S7f0Rzv$h^Tu9+|WjilF)r^9aoR zkRL^UObMf4j7$tdg7S<&$x@yQ2sz602ttYSEJG<$o;>LNl;;#mlk#*$D^Q*}2o=h6 z1fflNenRT+K2-Ozns!EL@z9fL zu~W(&9Y`uFW-O$85YGx(Sr9OgvkifdB-)G^KvJl6^b!1cN(ozr7-OK6(v%RDj1*~h zDKFpYz|QaGr=k)C(n>7|%(eLUCV5mA6A%xlVB7$JV;1HJ0R5PY{eq+bNN8=vHNgN`06-uXOHB%9g+)L8=%2rfk`hGlI(a;aF^mB#2}g%V)Ve!K$9N{DkQG+7%@P- zvV<`LCD)X{t~ejQlQ9oV{{jco0!AEKT_Rve7h14jwwS_^y9b*9T6+y1WBOr0MTo%$D+#SS!mbtgN)Umjx-fWBSvzJBN$G>hflrte zm~H_Bt;M5xvw5kRNc&{4&A=%^v@@>|aA(g!@|#FLU`!?cY-`5-~@+V z&^TroV116k#sfZ`FMqxMyIwr}09i#0@Or=&fr})-fb|9}av2ygVBd{5m?NMr;sMrx z0@DzNJqfA`+OXe2?>~NiO7h2+|1(rgL zvB7EsJMq&gciCZLBnAozg1a_io1hI<^`Z!*2L$XMz^A%^sRu&V8nD*8Zd}IR0zJm8 zE3SAOMmT_ltelX%kbpdvh4iHq^9(d=8P6MEq8^O+l z2tjCJD?n+}40{&9WDcn2sA8z7e$zrBnOH@r;txR-;;VrNKq@y@9Z?P3`VLAZYle^g6 zthE({4FaIod$GHqr!28)fX-nD;|kz4H!!|{j!zYP8?=5ohLr_%VVAIJfG$k}8w~2& zU9gP6gtltTI4GSj!X5{${Q}rU;DkBFMNTbPT@Ol@-A%_GOxR%19G@Tc?J?YZ9}6

nq`q|Q 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∾*Trt z&Eg<0)_5lVMs^YYhF0WXh3k8*Oo2i9Z6ZvWcHTl_)w`LaS)3~N2dmlNu?|64nu#MF z@YhIKHlbB;rd9eK%rzAbqOyu-oK+=uKiJ?eQ0Memw`UsmM}53)sV*^PIg9ZF>ZSzz zX+C#`eTfj5kVU#YO_UqqeItx^%BIl^bD<$WT?B8ZgCP|hz?KYU6s+5T~($*8!wFCO;IQQMr7wp6vJ=qe*$ZJ`%}6n@9nKE>96kg~r2L1N8M4 z0(skOq??F%z4>Iawh^efGOt%+42C@sRITs-M20O`AZ;$z=$B4^uCT+5LJ>{W8Liqy ztVXso)E1N1s|$V-q<*H!y962h$WA@&BlyZ+#2VC4R({%Ht_A(wyk3RS(t)FolWb#M zLNCEJWN=6)8|dl?UDcHhJAHs=^rJME>2U?%6DHB3rj8 zB!qx?d6c@4lPW49S5oP_{;2hEyzkhc_&Jx_)15j?4k9+ z-%XTM|LQEly><3=GCVQ~jd|5{D6hNq$?4}}p2AK$u|w1?e7cCUs?1hJ%fIbS=K>t> zaM_jEiB^Un;SZ@u*{%28rD>e4rpcJiHF6FBXxTji!H^YM_W-#u*LSV9rWl4Cj3A?C z5H%l?u06vLIrs^3EpOHMc%Y8LN~+0cuP4OXxsA-$ytpoJp3`Wjwg&pGwqB;ua*7!* zO}c3eg&VzujdN>&%aT_Fx=}-B;GZR6^xzvl>d87K7^-?Bx~qu^auxNtUnPf4wtF%BTn!jloNQeMV~o%>jY740J?+Qax{2-#~qLSvQCx{Ln~)2fOEEa2Ly0 z$p36|Yz%?gzeh<0k(zUd%xwnHy5;GNK?V=&q&6hBBvx*xP-HvS9omv* z2iLLQ8$Z*bbp3rL_ZRIvQroK31@#x1ML>{&zkLE&i}DvQ;f!$+&5K%YH} zXr+0IeX&0gkb(0AgjWmo5u@pm7`?F2G%9L{RuobXov$)v1{Tr-3)w^oOC8c3GrnEn zpK&RMQFEdq8(()h-jm#{$nI_bZ6 zhx8Eaf@nqhrJWMDU9{#WaCdGRx?v`8%OY!Ss^Bizt*bJwt!lvVX$p+O~Nu(&uiUo3n*eC@z?y$gZC0M@u*6nI*pzznZ#tPb*BLb}^o6=Oy zxL>nL*Ybcn1bd*Bf;;w@W5$>n@w$7Q8S_v0ZLo|*KBKbDIO&+N124LX&82Hh=Ue4m zff&trI@yI?jnm4BHCfCpvF{u~P!u*}OOlINeF2SZ3FxoCNxHGFI^7@50XcD5r<*g5 zJXg?d;&gYf>d>!K@!Dnd#+9*vI$bwHE9-7Bl5-6xGRiaCDQ3HZ5cnC};sjf8CQJCYRIgnd=uG$)COX-x;bw;LC@6yEWDI zENl%Xj~_W^tjUeh=arj)(YPlZHz?!8b~DzI&Hgu@zgyl$R8x1+pZ^g0v^8bf;ns4y z9&QCjVebTlImT;riAm&9ZTEY^zr5dU52v&N@$!0U;@tFSH{H4=T=B8)#3Z)0Rz)yreWXR@o_MbK7muE* z()%lD#*@LohDK_1lIRtDEl<#~H3WV}KaWc6$A+*u&qhAr4avGnZI;^J&>&>u$PrZ7 iwVWtn&(FA7eLU*Nz`YXjPYo}3LO4+e`!s&7EA@ZBdU{>} diff --git a/org.omg.sysml.model.bundle/lib/org.omg.sysml.model-0.62.0-SNAPSHOT.jar b/org.omg.sysml.model.bundle/lib/org.omg.sysml.model-0.62.0-SNAPSHOT.jar index 9ac46e96fa369ac79bccf2f31a45fadef0e43a66..811240f6c6c0b88f8c62fe3243f0213fce2c361e 100644 GIT binary patch delta 36669 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 t1@HN-_Pk#}M-qKkDgeg1cuB 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 * - * @generated NOT + * @generated */ protected AttributeUsageImpl() { super(); - isComposite = false; } /** diff --git a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/BindingConnectorAsUsageImpl.java b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/BindingConnectorAsUsageImpl.java index 2633ecc2e7..875305eb4f 100644 --- a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/BindingConnectorAsUsageImpl.java +++ b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/BindingConnectorAsUsageImpl.java @@ -18,11 +18,10 @@ public class BindingConnectorAsUsageImpl extends ConnectorAsUsageImpl implements /** * * - * @generated NOT + * @generated */ protected BindingConnectorAsUsageImpl() { super(); - isComposite = false; } /** diff --git a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/EventOccurrenceUsageImpl.java b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/EventOccurrenceUsageImpl.java index 8cc3819e6e..5517c718d2 100644 --- a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/EventOccurrenceUsageImpl.java +++ b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/EventOccurrenceUsageImpl.java @@ -36,11 +36,10 @@ public class EventOccurrenceUsageImpl extends OccurrenceUsageImpl implements Eve /** * * - * @generated NOT + * @generated */ protected EventOccurrenceUsageImpl() { super(); - isComposite = false; } /** diff --git a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/ExhibitStateUsageImpl.java b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/ExhibitStateUsageImpl.java index fc4388651c..1e6047abef 100644 --- a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/ExhibitStateUsageImpl.java +++ b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/ExhibitStateUsageImpl.java @@ -40,11 +40,10 @@ public class ExhibitStateUsageImpl extends StateUsageImpl implements ExhibitStat /** * * - * @generated NOT + * @generated */ protected ExhibitStateUsageImpl() { super(); - isComposite = false; } /** diff --git a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/IncludeUseCaseUsageImpl.java b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/IncludeUseCaseUsageImpl.java index 796c16e823..3df96f3cf5 100644 --- a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/IncludeUseCaseUsageImpl.java +++ b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/IncludeUseCaseUsageImpl.java @@ -40,11 +40,10 @@ public class IncludeUseCaseUsageImpl extends UseCaseUsageImpl implements Include /** * * - * @generated NOT + * @generated */ protected IncludeUseCaseUsageImpl() { super(); - isComposite = false; } /** diff --git a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/PerformActionUsageImpl.java b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/PerformActionUsageImpl.java index 26860112cb..996cae55a7 100644 --- a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/PerformActionUsageImpl.java +++ b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/PerformActionUsageImpl.java @@ -38,11 +38,10 @@ public class PerformActionUsageImpl extends ActionUsageImpl implements PerformAc /** * * - * @generated NOT + * @generated */ protected PerformActionUsageImpl() { super(); - isComposite = false; } /** diff --git a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/ReferenceUsageImpl.java b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/ReferenceUsageImpl.java index 953072bed9..ac8612eeea 100644 --- a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/ReferenceUsageImpl.java +++ b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/ReferenceUsageImpl.java @@ -18,11 +18,10 @@ public class ReferenceUsageImpl extends UsageImpl implements ReferenceUsage { /** * * - * @generated NOT + * @generated */ protected ReferenceUsageImpl() { super(); - isComposite = false; } /** diff --git a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/SuccessionAsUsageImpl.java b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/SuccessionAsUsageImpl.java index f9e025129c..4650ae18a6 100644 --- a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/SuccessionAsUsageImpl.java +++ b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/SuccessionAsUsageImpl.java @@ -18,11 +18,10 @@ public class SuccessionAsUsageImpl extends ConnectorAsUsageImpl implements Succe /** * * - * @generated NOT + * @generated */ protected SuccessionAsUsageImpl() { super(); - isComposite = false; } /** diff --git a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/UsageImpl.java b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/UsageImpl.java index 3b84cb35b8..690f9e773c 100644 --- a/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/UsageImpl.java +++ b/org.omg.sysml.model/src/main/java/org/omg/sysml/lang/sysml/impl/UsageImpl.java @@ -484,11 +484,10 @@ public class UsageImpl extends FeatureImpl implements Usage { /** * * - * @generated NOT + * @generated */ protected UsageImpl() { super(); - isComposite = true; } /** diff --git a/org.omg.sysml.xtext/src/org/omg/sysml/xtext/postprocessing/UsageParserPostProcessor.java b/org.omg.sysml.xtext/src/org/omg/sysml/xtext/postprocessing/UsageParserPostProcessor.java index 76de2ac0e9..9616c6c72c 100644 --- a/org.omg.sysml.xtext/src/org/omg/sysml/xtext/postprocessing/UsageParserPostProcessor.java +++ b/org.omg.sysml.xtext/src/org/omg/sysml/xtext/postprocessing/UsageParserPostProcessor.java @@ -11,19 +11,34 @@ package org.omg.sysml.xtext.postprocessing; +import java.util.List; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.xtext.nodemodel.util.NodeModelUtils; import org.omg.kerml.xtext.postprocessing.FeatureParserPostProcessor; import org.omg.sysml.lang.sysml.AttributeDefinition; import org.omg.sysml.lang.sysml.AttributeUsage; +import org.omg.sysml.lang.sysml.SysMLPackage; import org.omg.sysml.lang.sysml.Type; import org.omg.sysml.lang.sysml.Usage; import org.omg.sysml.util.UsageUtil; public class UsageParserPostProcessor extends FeatureParserPostProcessor { + private static final List NON_COMPOSITE_USAGE_TYPES = List.of( + SysMLPackage.Literals.ATTRIBUTE_USAGE, + SysMLPackage.Literals.BINDING_CONNECTOR_AS_USAGE, + SysMLPackage.Literals.EVENT_OCCURRENCE_USAGE, + SysMLPackage.Literals.EXHIBIT_STATE_USAGE, + SysMLPackage.Literals.INCLUDE_USE_CASE_USAGE, + SysMLPackage.Literals.PERFORM_ACTION_USAGE, + SysMLPackage.Literals.REFERENCE_USAGE, + SysMLPackage.Literals.SUCCESSION_AS_USAGE); + public UsageParserPostProcessor(Usage element) { super(element); } - + @Override public Usage getTarget() { return (Usage)super.getTarget(); @@ -33,7 +48,8 @@ public Usage getTarget() { public void postProcess () { super.postProcess(); Usage target = getTarget(); - if (target.isVariation()) { + setIsCompositeIfUnset(target); + if (target.isVariation()) { target.setIsAbstract(true); } Type featuringType = UsageUtil.getExpectedFeaturingTypeOf(target); @@ -43,6 +59,20 @@ public void postProcess () { } } + private void setIsCompositeIfUnset(Usage target) { + boolean isCompositeSet = !NodeModelUtils.findNodesForFeature( + target, SysMLPackage.Literals.FEATURE__IS_COMPOSITE).isEmpty(); + boolean isReferenceSet = !NodeModelUtils.findNodesForFeature( + target, SysMLPackage.Literals.USAGE__IS_REFERENCE).isEmpty(); + if (!isCompositeSet && !isReferenceSet) { + target.setIsComposite(isCompositeByDefault(target.eClass())); + } + } + + private static boolean isCompositeByDefault(EClass eClass) { + return NON_COMPOSITE_USAGE_TYPES.stream().noneMatch(type -> type.isSuperTypeOf(eClass)); + } + @Override protected void setIsVariableIfConstant() { }