Skip to content

Commit ceaa1b4

Browse files
committed
generate all interface structures at once rather than duplicating them
1 parent 1d6785f commit ceaa1b4

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

HarmonyCoreCodeGen.Core/Generator/TraditionalBridgeGenerator.dbl

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ namespace HarmonyCoreGenerator.Generator
4444
data targetInterfaces = GetTargetInterfaces(^nameof(TraditionalBridgeGenerator), targetSolution)
4545
foreach iface in targetInterfaces
4646
begin
47-
4847
data dtosNamespace = new UserToken("DTOS_NAMESPACE", String.Format(iface.Name))
4948

5049
result.Add(InterfaceTaskHelper(targetSolution, "Generate a dispatcher class for each method", String.Format("{0}.{1}",targetSolution.TraditionalBridgeNamespace,"Dispatchers"), Path.Combine(traditionalBridgeFolder,"dispatchers"), iface, ^nameof(TraditionalBridgeGenerator),
@@ -75,23 +74,29 @@ namespace HarmonyCoreGenerator.Generator
7574
result.Add(InterfaceTaskHelper(targetSolution, "Generate the service class (.NET side)", targetSolution.ControllersNamespace, targetSolution.ControllersFolder, iface, ^nameof(TraditionalBridgeGenerator),
7675
& new string[#] { "InterfaceService" }, new UserToken[#] { netModelsNamespace, dtosNamespace }, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge"), false))
7776

78-
;; Parameter model classes (Traditional Side)
79-
result.Add(InterfaceTaskHelper(targetSolution, "Generate data models for structure parameters", String.Format("{0}.{1}",targetSolution.TraditionalBridgeNamespace,"Models"), Path.Combine(traditionalBridgeFolder,"models"), iface, ^nameof(TraditionalBridgeGenerator),
80-
& new string[#] { "TraditionalModel", "TraditionalMetadata" }, new UserToken[#] { tradModelsNamespace }, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
81-
82-
result.Add(InterfaceTaskHelper(targetSolution, "Generate model and metadata classes", targetSolution.ModelsNamespace, targetSolution.ModelsFolder, iface, ^nameof(TraditionalBridgeGenerator), new string[#] { "ODataModel", "ODataMetaData" }, ^null, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
83-
84-
8577
;; Add InterfaceDispatcherData
8678
data interfaceDispatcherDataTask = StructureTaskHelper(targetSolution, "Generate InterfaceDispatcherData", String.Format("{0}.{1}",targetSolution.TraditionalBridgeFolder,"Dispatchers"), Path.Combine(traditionalBridgeFolder,"dispatchers"), true, ^nameof(TraditionalBridgeGenerator), new string[#] { "InterfaceDispatcherCustom" }, new UserToken[#] { new UserToken("SMC_INTERFACE", iface.Name), new UserToken("DTOS_NAMESPACE", iface.Name) }, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge"), false)
8779
interfaceDispatcherDataTask.MethodCatalogInterface = iface.Name
8880
interfaceDispatcherDataTask.MethodCatalogStructureMode = true
8981
result.Add(interfaceDispatcherDataTask)
9082
end
9183

84+
;; Parameter model classes (Traditional Side)
85+
result.Add(InterfaceTaskHelper(targetSolution, "Generate data models for structure parameters", String.Format("{0}.{1}",targetSolution.TraditionalBridgeNamespace,"Models"), Path.Combine(traditionalBridgeFolder,"models"), targetInterfaces, ^nameof(TraditionalBridgeGenerator),
86+
& new string[#] { "TraditionalModel", "TraditionalMetadata" }, new UserToken[#] { tradModelsNamespace }, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
87+
88+
result.Add(InterfaceTaskHelper(targetSolution, "Generate model and metadata classes", targetSolution.ModelsNamespace, targetSolution.ModelsFolder, targetInterfaces, ^nameof(TraditionalBridgeGenerator), new string[#] { "ODataModel", "ODataMetaData" }, ^null, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
89+
9290
;;add any specifically requested structures to the traditional side
9391
result.Add(StructureTaskHelper(targetSolution, "Generate model and metadata classes", String.Format("{0}.{1}",targetSolution.TraditionalBridgeNamespace,"Models"), Path.Combine(traditionalBridgeFolder,"models"), false, ^nameof(TraditionalBridgeGenerator), new string[#] { "TraditionalModel", "TraditionalMetadata" }, new UserToken[#] { tradModelsNamespace }, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge")))
9492

93+
if(targetInterfaces.Count > 1)
94+
begin
95+
result.Add(InterfaceTaskHelper(targetSolution, "Generate a super dispatcher", String.Format("{0}.{1}",targetSolution.TraditionalBridgeNamespace,"Dispatchers"), Path.Combine(traditionalBridgeFolder,"dispatchers"), targetInterfaces, ^nameof(TraditionalBridgeGenerator),
96+
& new string[#] { "InterfaceSuperDispatcher" }, new UserToken[#] { tradModelsNamespace }, Path.Combine(targetSolution.TemplatesFolder,"TraditionalBridge"), false))
97+
end
98+
99+
95100
mreturn result
96101
endmethod
97102
endclass

0 commit comments

Comments
 (0)