diff --git a/src/main/java/de/monticore/lang/monticar/generator/middleware/DistributedTargetGenerator.java b/src/main/java/de/monticore/lang/monticar/generator/middleware/DistributedTargetGenerator.java index c8a2a4ccb91c235cf5b2f8db99ad472de818758a..0aac73f670a6a2e8f12080b209bfec06da3d2387 100644 --- a/src/main/java/de/monticore/lang/monticar/generator/middleware/DistributedTargetGenerator.java +++ b/src/main/java/de/monticore/lang/monticar/generator/middleware/DistributedTargetGenerator.java @@ -2,10 +2,7 @@ package de.monticore.lang.monticar.generator.middleware; import de.monticore.lang.embeddedmontiarc.embeddedmontiarc._symboltable.ExpandedComponentInstanceSymbol; import de.monticore.lang.monticar.generator.FileContent; -import de.monticore.lang.monticar.generator.middleware.helpers.ClusterHelper; -import de.monticore.lang.monticar.generator.middleware.helpers.FileHelper; -import de.monticore.lang.monticar.generator.middleware.helpers.RosHelper; -import de.monticore.lang.monticar.generator.middleware.helpers.TemplateHelper; +import de.monticore.lang.monticar.generator.middleware.helpers.*; import de.monticore.lang.monticar.generator.middleware.impls.GeneratorImpl; import de.monticore.lang.tagging._symboltable.TaggingResolver; import org.apache.commons.io.FileUtils; @@ -35,10 +32,12 @@ public class DistributedTargetGenerator extends CMakeGenerator { List clusterSubcomponents = ClusterHelper.getClusterSubcomponents(componentInstanceSymbol); if (clusterSubcomponents.size() > 0) { clusterSubcomponents.forEach(clusterECIS -> { - generatorMap.put(clusterECIS, createFullGenerator(clusterECIS.getFullName().replace(".", "_"))); + String nameTargetLanguage = NameHelper.getNameTargetLanguage(clusterECIS.getFullName()); + generatorMap.put(clusterECIS, createFullGenerator(nameTargetLanguage)); }); } else { - generatorMap.put(componentInstanceSymbol, createFullGenerator(componentInstanceSymbol.getFullName().replace(".", "_"))); + String nameTargetLanguage = NameHelper.getNameTargetLanguage(componentInstanceSymbol.getFullName()); + generatorMap.put(componentInstanceSymbol, createFullGenerator(nameTargetLanguage)); } List files = new ArrayList<>(); @@ -46,7 +45,7 @@ public class DistributedTargetGenerator extends CMakeGenerator { for (ExpandedComponentInstanceSymbol comp : generatorMap.keySet()) { files.addAll(generatorMap.get(comp).generate(comp, taggingResolver)); //add empty generator to subDirs so that CMakeLists.txt will be generated correctly - subDirs.add(comp.getFullName().replace(".", "_")); + subDirs.add(NameHelper.getNameTargetLanguage(comp.getFullName())); } subDirs.add("rosMsg"); diff --git a/src/main/java/de/monticore/lang/monticar/generator/middleware/MiddlewareGenerator.java b/src/main/java/de/monticore/lang/monticar/generator/middleware/MiddlewareGenerator.java index 9b29c94587145de1defa99d5ca95bd6089ffb805..a0f30f1c76c67ddae07e5483c1d79520b5b3071c 100644 --- a/src/main/java/de/monticore/lang/monticar/generator/middleware/MiddlewareGenerator.java +++ b/src/main/java/de/monticore/lang/monticar/generator/middleware/MiddlewareGenerator.java @@ -3,9 +3,9 @@ package de.monticore.lang.monticar.generator.middleware; import de.monticore.lang.embeddedmontiarc.embeddedmontiarc._symboltable.ExpandedComponentInstanceSymbol; import de.monticore.lang.monticar.generator.FileContent; import de.monticore.lang.monticar.generator.middleware.helpers.FileHelper; +import de.monticore.lang.monticar.generator.middleware.helpers.NameHelper; import de.monticore.lang.monticar.generator.middleware.helpers.TemplateHelper; import de.monticore.lang.monticar.generator.middleware.impls.GeneratorImpl; -import de.monticore.lang.monticar.generator.roscpp.helper.NameHelper; import de.monticore.lang.tagging._symboltable.TaggingResolver; import java.io.File; @@ -31,7 +31,7 @@ public class MiddlewareGenerator extends CMakeGenerator { private FileContent generateIAdapter(ExpandedComponentInstanceSymbol componentInstanceSymbol) { FileContent res = new FileContent(); - String name = NameHelper.getComponentNameTargetLanguage(componentInstanceSymbol.getFullName()); + String name = NameHelper.getNameTargetLanguage(componentInstanceSymbol.getFullName()); res.setFileName("IAdapter_" + name + ".h"); res.setFileContent(TemplateHelper.getIAdapterTemplate().replace("${compName}", name)); return res; @@ -41,7 +41,7 @@ public class MiddlewareGenerator extends CMakeGenerator { private FileContent generateCoordinator(ExpandedComponentInstanceSymbol componentInstanceSymbol, List files) { - String name = NameHelper.getComponentNameTargetLanguage(componentInstanceSymbol.getFullName()); + String name = NameHelper.getNameTargetLanguage(componentInstanceSymbol.getFullName()); List filesNames = files.stream() .map(File::getName) .collect(Collectors.toList()); @@ -74,7 +74,7 @@ public class MiddlewareGenerator extends CMakeGenerator { private FileContent generateCoordinatorCMakeList(ExpandedComponentInstanceSymbol componentInstanceSymbol, List files) { FileContent res = new FileContent(); - String name = NameHelper.getComponentNameTargetLanguage(componentInstanceSymbol.getFullName()); + String name = NameHelper.getNameTargetLanguage(componentInstanceSymbol.getFullName()); String targets = files.stream() .map(File::getName) diff --git a/src/main/java/de/monticore/lang/monticar/generator/middleware/helpers/NameHelper.java b/src/main/java/de/monticore/lang/monticar/generator/middleware/helpers/NameHelper.java new file mode 100644 index 0000000000000000000000000000000000000000..5140652dcb4c419f106c83aadc787f7b15b24b2f --- /dev/null +++ b/src/main/java/de/monticore/lang/monticar/generator/middleware/helpers/NameHelper.java @@ -0,0 +1,14 @@ +package de.monticore.lang.monticar.generator.middleware.helpers; + +public class NameHelper { + private NameHelper(){ + } + + public static String getNameTargetLanguage(String name){ + return name + .replace('.','_') + .replace('[','_') + .replace(']','_'); + } + +} diff --git a/src/main/java/de/monticore/lang/monticar/generator/middleware/helpers/RosHelper.java b/src/main/java/de/monticore/lang/monticar/generator/middleware/helpers/RosHelper.java index 70e35179880d6aceebbcb8937427a4c3f7ba2b86..8700c121489cc9d1dbeb8147796fc9c3ced7c309 100644 --- a/src/main/java/de/monticore/lang/monticar/generator/middleware/helpers/RosHelper.java +++ b/src/main/java/de/monticore/lang/monticar/generator/middleware/helpers/RosHelper.java @@ -53,7 +53,7 @@ public class RosHelper { } //target port name is unique: each in port can only have one connection! - String topicName = connectorSymbol.getTargetPort().getFullName().replace(".", "_").replace("[","_").replace("]","_"); + String topicName = NameHelper.getNameTargetLanguage(connectorSymbol.getTargetPort().getFullName()); RosMsg rosTypeA = GeneratorRosMsg.getRosType("struct_msgs", connectorSymbol.getTargetPort().getTypeReference()); RosMsg rosTypeB = GeneratorRosMsg.getRosType("struct_msgs", connectorSymbol.getSourcePort().getTypeReference()); if (!rosTypeA.equals(rosTypeB)) { diff --git a/src/main/java/de/monticore/lang/monticar/generator/middleware/impls/CPPGenImpl.java b/src/main/java/de/monticore/lang/monticar/generator/middleware/impls/CPPGenImpl.java index 9f2522b97bbcaabd4e1e0f09a7302e14f76b2c69..c4c6af7499976248ef662953b435a788cbd7e52b 100644 --- a/src/main/java/de/monticore/lang/monticar/generator/middleware/impls/CPPGenImpl.java +++ b/src/main/java/de/monticore/lang/monticar/generator/middleware/impls/CPPGenImpl.java @@ -3,8 +3,8 @@ package de.monticore.lang.monticar.generator.middleware.impls; import de.monticore.lang.embeddedmontiarc.embeddedmontiarc._symboltable.ExpandedComponentInstanceSymbol; import de.monticore.lang.monticar.generator.FileContent; import de.monticore.lang.monticar.generator.cpp.GeneratorCPP; +import de.monticore.lang.monticar.generator.middleware.helpers.NameHelper; import de.monticore.lang.monticar.generator.middleware.helpers.TemplateHelper; -import de.monticore.lang.monticar.generator.roscpp.helper.NameHelper; import de.monticore.lang.tagging._symboltable.TaggingResolver; import java.io.File; @@ -38,7 +38,7 @@ public class CPPGenImpl implements GeneratorImpl { private FileContent generateCMake(ExpandedComponentInstanceSymbol componentInstanceSymbol) { FileContent cmake = new FileContent(); cmake.setFileName("CMakeLists.txt"); - String name = NameHelper.getComponentNameTargetLanguage(componentInstanceSymbol.getFullName()); + String name = NameHelper.getNameTargetLanguage(componentInstanceSymbol.getFullName()); cmake.setFileContent(TemplateHelper.getCmakeCppTemplate().replace("${compName}", name)); return cmake; } diff --git a/src/main/java/de/monticore/lang/monticar/generator/middleware/impls/DummyMiddlewareGenImpl.java b/src/main/java/de/monticore/lang/monticar/generator/middleware/impls/DummyMiddlewareGenImpl.java index 2558e4b92dc60fe12f095f390ec75552c50fea10..8ac342af94c7dd97b70f2b709c6190b5cfb58012 100644 --- a/src/main/java/de/monticore/lang/monticar/generator/middleware/impls/DummyMiddlewareGenImpl.java +++ b/src/main/java/de/monticore/lang/monticar/generator/middleware/impls/DummyMiddlewareGenImpl.java @@ -4,8 +4,8 @@ import de.monticore.lang.embeddedmontiarc.embeddedmontiarc._symboltable.Expanded import de.monticore.lang.embeddedmontiarc.embeddedmontiarc._symboltable.PortSymbol; import de.monticore.lang.monticar.generator.FileContent; import de.monticore.lang.monticar.generator.middleware.helpers.FileHelper; +import de.monticore.lang.monticar.generator.middleware.helpers.NameHelper; import de.monticore.lang.monticar.generator.middleware.helpers.TemplateHelper; -import de.monticore.lang.monticar.generator.roscpp.helper.NameHelper; import de.monticore.lang.tagging._symboltable.TaggingResolver; import java.io.File; @@ -29,7 +29,7 @@ public class DummyMiddlewareGenImpl implements GeneratorImpl { private FileContent generateAdapter(ExpandedComponentInstanceSymbol componentInstanceSymbol) { - String name = NameHelper.getComponentNameTargetLanguage(componentInstanceSymbol.getFullName()); + String name = NameHelper.getNameTargetLanguage(componentInstanceSymbol.getFullName()); String content = TemplateHelper.getDummyAdapterTemplate() .replace("${compName}", name); @@ -56,7 +56,7 @@ public class DummyMiddlewareGenImpl implements GeneratorImpl { private FileContent generateCMake(ExpandedComponentInstanceSymbol componentInstanceSymbol) { FileContent res = new FileContent(); - String name = NameHelper.getComponentNameTargetLanguage(componentInstanceSymbol.getFullName()); + String name = NameHelper.getNameTargetLanguage(componentInstanceSymbol.getFullName()); String content = TemplateHelper.getDummyCmakeTemplate() .replace("${compName}", name);