diff --git a/com.btc.serviceidl/src/com/btc/serviceidl/generator/common/GeneratorUtil.xtend b/com.btc.serviceidl/src/com/btc/serviceidl/generator/common/GeneratorUtil.xtend index d14e7856..05642696 100644 --- a/com.btc.serviceidl/src/com/btc/serviceidl/generator/common/GeneratorUtil.xtend +++ b/com.btc.serviceidl/src/com/btc/serviceidl/generator/common/GeneratorUtil.xtend @@ -20,6 +20,7 @@ import com.btc.serviceidl.idl.AbstractTypeReference import com.btc.serviceidl.idl.AliasDeclaration import com.btc.serviceidl.idl.EnumDeclaration import com.btc.serviceidl.idl.ExceptionDeclaration +import com.btc.serviceidl.idl.FunctionDeclaration import com.btc.serviceidl.idl.IDLSpecification import com.btc.serviceidl.idl.InterfaceDeclaration import com.btc.serviceidl.idl.ModuleDeclaration @@ -255,4 +256,11 @@ class GeneratorUtil // (in the generator settings?) idl.eResource.URI.lastSegment.replace(".idl", "") + if (artifactNature == ArtifactNature.DOTNET) ".NET" else "" } + + static def String getProtobufFunctionName(FunctionDeclaration object, ProtobufType protobufType) + { + val scopeDeterminant = object.scopeDeterminant + #[Names.plain(scopeDeterminant), protobufType.getName, Names.plain(object) + protobufType.getName].join("_") + } + } diff --git a/com.btc.serviceidl/src/com/btc/serviceidl/generator/cpp/ProtobufUtil.xtend b/com.btc.serviceidl/src/com/btc/serviceidl/generator/cpp/ProtobufUtil.xtend index d0aa2351..cdf6e2bb 100644 --- a/com.btc.serviceidl/src/com/btc/serviceidl/generator/cpp/ProtobufUtil.xtend +++ b/com.btc.serviceidl/src/com/btc/serviceidl/generator/cpp/ProtobufUtil.xtend @@ -50,13 +50,11 @@ class ProtobufUtil val paramBundle = ParameterBundle.createBuilder(scopeDeterminant.moduleStack).with(ProjectType.PROTOBUF).build - // TODO this is cloned by java.ProtobufUtil(.getLocalName?) val result = GeneratorUtil.getTransformedModuleName(paramBundle, ArtifactNature.CPP, TransformType.NAMESPACE) + Constants.SEPARATOR_NAMESPACE + if (object instanceof InterfaceDeclaration) Names.plain(object) + protobufType.getName else if (object instanceof FunctionDeclaration) - Names.plain(scopeDeterminant) + "_" + protobufType.getName + "_" + Names.plain(object) + - protobufType.getName + getProtobufFunctionName(object, protobufType) else Names.plain(object) diff --git a/com.btc.serviceidl/src/com/btc/serviceidl/generator/java/ProtobufUtil.xtend b/com.btc.serviceidl/src/com/btc/serviceidl/generator/java/ProtobufUtil.xtend index fb69fcbd..a139c10b 100644 --- a/com.btc.serviceidl/src/com/btc/serviceidl/generator/java/ProtobufUtil.xtend +++ b/com.btc.serviceidl/src/com/btc/serviceidl/generator/java/ProtobufUtil.xtend @@ -70,8 +70,7 @@ class ProtobufUtil val scopeDeterminant = object.scopeDeterminant if (object instanceof FunctionDeclaration && Util.ensurePresentOrThrow(optProtobufType)) - Names.plain(scopeDeterminant) + "_" + optProtobufType.get.getName + "_" + Names.plain(object) + - optProtobufType.get.getName + getProtobufFunctionName(object as FunctionDeclaration, optProtobufType.get) else (if (scopeDeterminant instanceof ModuleDeclaration) Constants.FILE_NAME_TYPES