mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-09-08 10:21:52 +00:00
ref[Python]: refactor generate python protocol
This commit is contained in:
@@ -43,48 +43,6 @@ public abstract class GenerateProtocolPath {
|
||||
protocolPathMap = null;
|
||||
}
|
||||
|
||||
public static String protocolAbsolutePath(short protocolId, CodeLanguage language) {
|
||||
var path = protocolPathSlash(protocolId);
|
||||
var name = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(protocolId);
|
||||
if (StringUtils.isBlank(path)) {
|
||||
path = name;
|
||||
} else {
|
||||
path = StringUtils.format("{}/{}", path, name);
|
||||
}
|
||||
|
||||
switch (language) {
|
||||
case Cpp:
|
||||
break;
|
||||
case Go:
|
||||
break;
|
||||
case JavaScript:
|
||||
break;
|
||||
case EcmaScript:
|
||||
break;
|
||||
case TypeScript:
|
||||
break;
|
||||
case CSharp:
|
||||
break;
|
||||
case Protobuf:
|
||||
break;
|
||||
case Lua:
|
||||
break;
|
||||
case GdScript:
|
||||
break;
|
||||
case Python:
|
||||
if (StringUtils.isBlank(protocolPathSlash(protocolId))) {
|
||||
path = StringUtils.PERIOD;
|
||||
} else {
|
||||
path = StringUtils.substringBeforeLast(path, StringUtils.SLASH);
|
||||
path = path.replaceAll(StringUtils.SLASH, StringUtils.PERIOD);
|
||||
}
|
||||
break;
|
||||
case Enhance:
|
||||
break;
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取协议生成的路径
|
||||
*/
|
||||
|
||||
@@ -133,7 +133,7 @@ public class CodeGenerateCpp implements ICodeGenerate {
|
||||
for (var registration : registrations) {
|
||||
var protocol_id = registration.protocolId();
|
||||
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
|
||||
protocol_imports.append(StringUtils.format("#include \"{}/{}.h\"", protocolOutputRootPath, GenerateProtocolPath.protocolAbsolutePath(protocol_id, CodeLanguage.Cpp))).append(LS);
|
||||
protocol_imports.append(StringUtils.format("#include \"{}/{}/{}.h\"", protocolOutputRootPath, GenerateProtocolPath.protocolPathSlash(protocol_id), protocol_name)).append(LS);
|
||||
protocol_manager_registrations.append(StringUtils.format("protocols[{}] = new {}Registration();", protocol_id, protocol_name)).append(LS);
|
||||
}
|
||||
var placeholderMap = Map.of(CodeTemplatePlaceholder.protocol_imports, protocol_imports.toString()
|
||||
|
||||
@@ -207,9 +207,8 @@ public class CodeGenerateCsharp implements ICodeGenerate {
|
||||
for (var protocol : protocolList) {
|
||||
var protocolId = protocol.protocolId();
|
||||
var protocolName = protocol.protocolConstructor().getDeclaringClass().getSimpleName();
|
||||
var path = GenerateProtocolPath.protocolAbsolutePath(protocolId, CodeLanguage.CSharp);
|
||||
csBuilder.append(StringUtils.format("protocols[{}] = new {}Registration();", protocolId, protocolName, path)).append(LS);
|
||||
csBuilder.append(StringUtils.format("protocolIdMap[typeof({})] = {};", protocolName, protocolId, path)).append(LS);
|
||||
csBuilder.append(StringUtils.format("protocols[{}] = new {}Registration();", protocolId, protocolName, protocolName)).append(LS);
|
||||
csBuilder.append(StringUtils.format("protocolIdMap[typeof({})] = {};", protocolName, protocolId, protocolName)).append(LS);
|
||||
}
|
||||
return csBuilder.toString();
|
||||
}
|
||||
|
||||
+3
-3
@@ -109,7 +109,7 @@ public class CodeGenerateEcmaScript implements ICodeGenerate {
|
||||
var protocolTemplate = ClassUtils.getFileFromClassPathToString("ecmascript/ProtocolsTemplate.mjs");
|
||||
var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of(
|
||||
CodeTemplatePlaceholder.protocol_class, protocol_class.toString()
|
||||
, CodeTemplatePlaceholder.protocol_registration, protocol_registration.toString()
|
||||
, CodeTemplatePlaceholder.protocol_registration, protocol_registration.toString()
|
||||
));
|
||||
var outputPath = StringUtils.format("{}/Protocols.mjs", protocolOutputPath);
|
||||
var file = new File(outputPath);
|
||||
@@ -129,7 +129,7 @@ public class CodeGenerateEcmaScript implements ICodeGenerate {
|
||||
for (var protocol : registrations) {
|
||||
var protocol_id = protocol.protocolId();
|
||||
var protocol_name = protocol.protocolConstructor().getDeclaringClass().getSimpleName();
|
||||
protocol_imports.append(StringUtils.format("import {} from './{}.mjs';", protocol_name, GenerateProtocolPath.protocolAbsolutePath(protocol.protocolId(), CodeLanguage.EcmaScript))).append(LS);
|
||||
protocol_imports.append(StringUtils.format("import {} from './{}/{}.mjs';", protocol_name, GenerateProtocolPath.protocolPathSlash(protocol.protocolId()), protocol_name)).append(LS);
|
||||
protocol_manager_registrations.append(StringUtils.format("protocols.set({}, {});", protocol_id, protocol_name)).append(LS);
|
||||
}
|
||||
var placeholderMap = Map.of(CodeTemplatePlaceholder.protocol_imports, protocol_imports.toString()
|
||||
@@ -163,7 +163,7 @@ public class CodeGenerateEcmaScript implements ICodeGenerate {
|
||||
for (var protocol : registrations) {
|
||||
var protocol_id = protocol.protocolId();
|
||||
var protocol_name = protocol.protocolConstructor().getDeclaringClass().getSimpleName();
|
||||
protocol_imports.append(StringUtils.format("import {} from './{}.mjs';", protocol_name, protocol_name)).append(LS);
|
||||
protocol_imports.append(StringUtils.format("import {} from './{}.mjs';", protocol_name, protocol_name)).append(LS);
|
||||
protocol_manager_registrations.append(StringUtils.format("protocols.set({}, {});", protocol_id, protocol_name)).append(LS);
|
||||
}
|
||||
var placeholderMap = Map.of(CodeTemplatePlaceholder.protocol_imports, protocol_imports.toString()
|
||||
|
||||
@@ -96,8 +96,7 @@ public abstract class GenerateGdUtils {
|
||||
for (var protocol : protocolList) {
|
||||
var protocolId = protocol.protocolId();
|
||||
var name = protocol.protocolConstructor().getDeclaringClass().getSimpleName();
|
||||
var path = GenerateProtocolPath.protocolAbsolutePath(protocolId, CodeLanguage.GdScript);
|
||||
importBuilder.append(StringUtils.format("const {} = preload(\"res://{}/{}.gd\")", name, protocolOutputRootPath, path)).append(LS);
|
||||
importBuilder.append(StringUtils.format("const {} = preload(\"res://{}/{}/{}.gd\")", name, protocolOutputRootPath, GenerateProtocolPath.protocolPathSlash(protocolId), name)).append(LS);
|
||||
initList.add(StringUtils.format("{}{}: {}", TAB_ASCII, protocolId, name));
|
||||
}
|
||||
var initProtocols = StringUtils.joinWith(StringUtils.COMMA + LS, initList.toArray());
|
||||
@@ -140,8 +139,7 @@ public abstract class GenerateGdUtils {
|
||||
var gdBuilder = new StringBuilder();
|
||||
for (var subProtocolId : subProtocols) {
|
||||
var name = EnhanceObjectProtocolSerializer.getProtocolClassSimpleName(subProtocolId);
|
||||
var path = GenerateProtocolPath.protocolAbsolutePath(subProtocolId, CodeLanguage.GdScript);
|
||||
gdBuilder.append(StringUtils.format("const {} = preload(\"res://{}/{}.gd\")", name, protocolOutputRootPath, path)).append(LS);
|
||||
gdBuilder.append(StringUtils.format("const {} = preload(\"res://{}/{}/{}.gd\")", name, protocolOutputRootPath, GenerateProtocolPath.protocolPathSlash(protocolId), name)).append(LS);
|
||||
}
|
||||
return gdBuilder.toString();
|
||||
}
|
||||
@@ -159,7 +157,7 @@ public abstract class GenerateGdUtils {
|
||||
var fieldName = field.getName();
|
||||
// 生成注释
|
||||
var fieldNotes = GenerateProtocolNote.fieldNotes(protocolId, fieldName, CodeLanguage.GdScript);
|
||||
for(var fieldNote : fieldNotes) {
|
||||
for (var fieldNote : fieldNotes) {
|
||||
gdBuilder.append(fieldNote).append(LS);
|
||||
}
|
||||
var fieldType = gdSerializer(fieldRegistration.serializer()).fieldType(field, fieldRegistration);
|
||||
|
||||
+1
-1
@@ -134,7 +134,7 @@ public class CodeGenerateJavaScript implements ICodeGenerate {
|
||||
for (var registration : registrations) {
|
||||
var protocol_id = registration.protocolId();
|
||||
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
|
||||
protocol_imports.append(StringUtils.format("import {} from './{}.js';", protocol_name, GenerateProtocolPath.protocolAbsolutePath(registration.protocolId(), CodeLanguage.JavaScript))).append(LS);
|
||||
protocol_imports.append(StringUtils.format("import {} from './{}/{}.js';", protocol_name, GenerateProtocolPath.protocolPathSlash(registration.protocolId()), protocol_name)).append(LS);
|
||||
protocol_manager_registrations.append(StringUtils.format("protocols.set({}, {});", protocol_id, protocol_name)).append(LS);
|
||||
}
|
||||
var placeholderMap = Map.of(CodeTemplatePlaceholder.protocol_imports, protocol_imports.toString()
|
||||
|
||||
+1
-1
@@ -143,7 +143,7 @@ public class CodeGenerateTypeScript implements ICodeGenerate {
|
||||
for (var registration : registrations) {
|
||||
var protocol_id = registration.protocolId();
|
||||
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
|
||||
protocol_imports.append(StringUtils.format("import {} from './{}';", protocol_name, GenerateProtocolPath.protocolAbsolutePath(protocol_id, CodeLanguage.TypeScript))).append(LS);
|
||||
protocol_imports.append(StringUtils.format("import {} from './{}/{}';", protocol_name, GenerateProtocolPath.protocolPathSlash(protocol_id), protocol_name)).append(LS);
|
||||
protocol_manager_registrations.append(StringUtils.format("protocols.set({}, {});", protocol_id, protocol_name)).append(LS);
|
||||
}
|
||||
var placeholderMap = Map.of(CodeTemplatePlaceholder.protocol_imports, protocol_imports.toString()
|
||||
|
||||
Reference in New Issue
Block a user