diff --git a/commons/tools/plugins/org.obeonetwork.tools.classdiagramgenerator.editor/description/StructuredTypesDiagramTemplate.odesign b/commons/tools/plugins/org.obeonetwork.tools.classdiagramgenerator.editor/description/StructuredTypesDiagramTemplate.odesign index bdd4c2aeb..1f3aee35a 100644 --- a/commons/tools/plugins/org.obeonetwork.tools.classdiagramgenerator.editor/description/StructuredTypesDiagramTemplate.odesign +++ b/commons/tools/plugins/org.obeonetwork.tools.classdiagramgenerator.editor/description/StructuredTypesDiagramTemplate.odesign @@ -316,7 +316,7 @@ - + @@ -333,7 +333,7 @@ - + @@ -365,14 +365,14 @@ - + - + @@ -393,14 +393,14 @@ - + - + diff --git a/designs/database/plugins/org.obeonetwork.dsl.database.design/description/database.odesign b/designs/database/plugins/org.obeonetwork.dsl.database.design/description/database.odesign index c4048f7d8..22f667aeb 100644 --- a/designs/database/plugins/org.obeonetwork.dsl.database.design/description/database.odesign +++ b/designs/database/plugins/org.obeonetwork.dsl.database.design/description/database.odesign @@ -104,7 +104,7 @@ - + @@ -115,7 +115,7 @@ - + @@ -126,7 +126,7 @@ - + @@ -137,7 +137,7 @@ - + @@ -358,7 +358,7 @@ - + @@ -468,7 +468,7 @@ - + diff --git a/designs/entity/plugins/org.obeonetwork.dsl.entity.design/description/entity.odesign b/designs/entity/plugins/org.obeonetwork.dsl.entity.design/description/entity.odesign index 3bafd2d4c..6a46416f0 100644 --- a/designs/entity/plugins/org.obeonetwork.dsl.entity.design/description/entity.odesign +++ b/designs/entity/plugins/org.obeonetwork.dsl.entity.design/description/entity.odesign @@ -336,7 +336,7 @@ - + @@ -353,7 +353,7 @@ - + @@ -385,14 +385,14 @@ - + - + @@ -413,14 +413,14 @@ - + - + diff --git a/designs/environment/plugins/org.obeonetwork.dsl.environment.design.services/src/org/obeonetwork/dsl/environment/design/services/EnvironmentLabelServices.java b/designs/environment/plugins/org.obeonetwork.dsl.environment.design.services/src/org/obeonetwork/dsl/environment/design/services/EnvironmentLabelServices.java index 77bf50cd6..cd1b2750b 100644 --- a/designs/environment/plugins/org.obeonetwork.dsl.environment.design.services/src/org/obeonetwork/dsl/environment/design/services/EnvironmentLabelServices.java +++ b/designs/environment/plugins/org.obeonetwork.dsl.environment.design.services/src/org/obeonetwork/dsl/environment/design/services/EnvironmentLabelServices.java @@ -12,6 +12,8 @@ import static java.util.stream.Collectors.joining; +import javax.swing.text.html.parser.Entity; + import org.eclipse.emf.ecore.EObject; import org.obeonetwork.dsl.environment.Attribute; import org.obeonetwork.dsl.environment.EnvironmentPackage; @@ -78,6 +80,33 @@ public String caseStructuredType(StructuredType object) { } return label; } + + /** + * Get name of relation between target and source based on target name and turn + * all consecutive upper letter at the beginning into lower case + * + * @param target of the relation + * @param source of the relation + * @return the name for the relation + */ + public String manageCaseRelation(StructuredType target, StructuredType source) { + char[] nameArray = target.getName().toCharArray(); + int i = 0; + // Replace consecutive upper case with lower + while (i < nameArray.length && Character.isUpperCase(nameArray[i])) { + nameArray[i] = Character.toLowerCase(nameArray[i]); + i++; + } + String relationName = new String(nameArray).trim() + "s"; + // search existing relations in source with the same target + int sizeRef = source.getOwnedReferences().stream().filter(ref -> target.equals(ref.getReferencedType())) + .toList().size(); + if (sizeRef > 1) { + relationName += sizeRef; + } + return relationName; + } + } diff --git a/designs/graal/plugins/org.obeonetwork.graal.design/description/graal.odesign b/designs/graal/plugins/org.obeonetwork.graal.design/description/graal.odesign index 6c2e4f30a..4e057f00c 100644 --- a/designs/graal/plugins/org.obeonetwork.graal.design/description/graal.odesign +++ b/designs/graal/plugins/org.obeonetwork.graal.design/description/graal.odesign @@ -1552,7 +1552,7 @@ - + @@ -1569,7 +1569,7 @@ - + @@ -1601,14 +1601,14 @@ - + - + @@ -1629,14 +1629,14 @@ - + - + diff --git a/designs/soa/plugins/org.obeonetwork.dsl.soa.design/description/soa.odesign b/designs/soa/plugins/org.obeonetwork.dsl.soa.design/description/soa.odesign index ad063c12b..ad1c17ce1 100644 --- a/designs/soa/plugins/org.obeonetwork.dsl.soa.design/description/soa.odesign +++ b/designs/soa/plugins/org.obeonetwork.dsl.soa.design/description/soa.odesign @@ -819,7 +819,7 @@ - + @@ -836,7 +836,7 @@ - + @@ -868,14 +868,14 @@ - + - + @@ -896,14 +896,14 @@ - + - +