@@ -119,7 +119,7 @@ public Element caseDependency(Dependency object) {
119119
120120 @ Override
121121 public Element caseDefinition (Definition object ) {
122- var existingElements = this .elementUtil . existingElementsCount (object );
122+ var existingElements = this .existingElementsCount (object );
123123 object .setDeclaredName (object .eClass ().getName () + existingElements );
124124 return object ;
125125 }
@@ -138,7 +138,7 @@ public Element caseElement(Element object) {
138138 @ Override
139139 public Element caseEnumerationDefinition (EnumerationDefinition object ) {
140140 object .setIsVariation (true );
141- var existingElements = this .elementUtil . existingElementsCount (object );
141+ var existingElements = this .existingElementsCount (object );
142142 object .setDeclaredName (object .eClass ().getName () + existingElements );
143143 return object ;
144144 }
@@ -155,7 +155,7 @@ public Element caseFlowUsage(FlowUsage object) {
155155
156156 @ Override
157157 public Element casePackage (Package object ) {
158- var existingElements = this .elementUtil . existingElementsCount (object );
158+ var existingElements = this .existingElementsCount (object );
159159 object .setDeclaredName (object .eClass ().getName () + existingElements );
160160 return object ;
161161 }
@@ -193,7 +193,7 @@ public Element casePerformActionUsage(PerformActionUsage object) {
193193
194194 @ Override
195195 public Element casePortDefinition (PortDefinition object ) {
196- var existingElements = this .elementUtil . existingElementsCount (object );
196+ var existingElements = this .existingElementsCount (object );
197197 object .setDeclaredName (object .eClass ().getName () + existingElements );
198198 OwningMembership owningMembership = SysmlFactory .eINSTANCE .createOwningMembership ();
199199 object .getOwnedRelationship ().add (owningMembership );
@@ -272,7 +272,7 @@ public Element caseUsage(Usage object) {
272272 defaultName = defaultName .substring (0 , defaultName .length () - 5 );
273273 }
274274
275- var existingElements = this .elementUtil . existingElementsCount (object );
275+ var existingElements = this .existingElementsCount (object );
276276
277277 object .setDeclaredName (defaultName + existingElements );
278278 object .setIsComposite (true );
@@ -290,6 +290,25 @@ public Element caseViewUsage(ViewUsage object) {
290290 return object ;
291291 }
292292
293+ /**
294+ * Count the number of existing elements having the same type than the given Element inside the owning Namespace of
295+ * the given Element.
296+ *
297+ * @param element
298+ * the given {@link Element}.
299+ * @return the number of existing elements having the same type than the given Element inside the owning Namespace
300+ * of the given Element.
301+ */
302+ public long existingElementsCount (Element element ) {
303+ Namespace owningNamespace = element .getOwningNamespace ();
304+ if (owningNamespace != null ) {
305+ return owningNamespace .getOwnedMember ().stream ()
306+ .filter (member -> element .eClass ().equals (member .eClass ()))
307+ .count ();
308+ }
309+ return 0 ;
310+ }
311+
293312 private ParameterMembership createParameterMembershipWithReferenceUsage (String refName , FeatureDirectionKind direction ) {
294313 var reference = SysmlFactory .eINSTANCE .createReferenceUsage ();
295314 reference .setDirection (direction );
0 commit comments