mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-10-16 10:15:28 +00:00
ref[kotlin]: refactor kotlin protocol
This commit is contained in:
1 parent
a62d5dd0eb
commit
fdb37c5ad0
4 files changed
+31
-82
No files matched your search
@@ -92,7 +92,7 @@ public class CodeGenerateKotlin implements ICodeGenerate {
|
|||||||
for (var registration : registrations) {
|
for (var registration : registrations) {
|
||||||
var protocol_id = registration.protocolId();
|
var protocol_id = registration.protocolId();
|
||||||
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
|
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
|
||||||
protocol_manager_registrations.append(StringUtils.format("protocols[{}] = registration{}", protocol_id, protocol_name)).append(LS);
|
protocol_manager_registrations.append(StringUtils.format("protocols[{}] = Registration{}()", protocol_id, protocol_name)).append(LS);
|
||||||
protocol_manager_registrations.append(StringUtils.format("protocolIdMap.put({}::class.java, {})", protocol_name, protocol_id)).append(LS);
|
protocol_manager_registrations.append(StringUtils.format("protocolIdMap.put({}::class.java, {})", protocol_name, protocol_id)).append(LS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ public class CodeGenerateKotlin implements ICodeGenerate {
|
|||||||
// protocol
|
// protocol
|
||||||
protocol_class.append(protocol_class(registration)).append(LS);
|
protocol_class.append(protocol_class(registration)).append(LS);
|
||||||
// registration
|
// registration
|
||||||
protocol_registration.append(protocol_registration_merger(registration)).append(LS);
|
protocol_registration.append(protocol_registration(registration)).append(LS);
|
||||||
}
|
}
|
||||||
var protocolTemplate = ClassUtils.getFileFromClassPathToString("kotlin/ProtocolsTemplate.kt");
|
var protocolTemplate = ClassUtils.getFileFromClassPathToString("kotlin/ProtocolsTemplate.kt");
|
||||||
var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of(
|
var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of(
|
||||||
@@ -137,7 +137,8 @@ public class CodeGenerateKotlin implements ICodeGenerate {
|
|||||||
var protocol_id = registration.protocolId();
|
var protocol_id = registration.protocolId();
|
||||||
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
|
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
|
||||||
protocol_imports.append(StringUtils.format("import {}.{}.{}", protocolPackage, GenerateProtocolPath.protocolPathPeriod(protocol_id), protocol_name)).append(LS);
|
protocol_imports.append(StringUtils.format("import {}.{}.{}", protocolPackage, GenerateProtocolPath.protocolPathPeriod(protocol_id), protocol_name)).append(LS);
|
||||||
protocol_manager_registrations.append(StringUtils.format("protocols[{}] = {}.registration{}", protocol_id, protocol_name, protocol_name)).append(LS);
|
protocol_imports.append(StringUtils.format("import {}.{}.Registration{}", protocolPackage, GenerateProtocolPath.protocolPathPeriod(protocol_id), protocol_name)).append(LS);
|
||||||
|
protocol_manager_registrations.append(StringUtils.format("protocols[{}] = Registration{}()", protocol_id, protocol_name)).append(LS);
|
||||||
protocol_manager_registrations.append(StringUtils.format("protocolIdMap[{}::class.java] = {}.toShort()", protocol_name, protocol_id)).append(LS);
|
protocol_manager_registrations.append(StringUtils.format("protocolIdMap[{}::class.java] = {}.toShort()", protocol_name, protocol_id)).append(LS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,9 +158,7 @@ public class CodeGenerateKotlin implements ICodeGenerate {
|
|||||||
var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of(
|
var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of(
|
||||||
CodeTemplatePlaceholder.protocol_root_path, protocol_root_path
|
CodeTemplatePlaceholder.protocol_root_path, protocol_root_path
|
||||||
, CodeTemplatePlaceholder.protocol_imports, protocol_imports_fold(registration)
|
, CodeTemplatePlaceholder.protocol_imports, protocol_imports_fold(registration)
|
||||||
, CodeTemplatePlaceholder.protocol_note, GenerateProtocolNote.protocol_note(protocol_id, CodeLanguage.Kotlin)
|
, CodeTemplatePlaceholder.protocol_class, protocol_class(registration)
|
||||||
, CodeTemplatePlaceholder.protocol_name, protocol_name
|
|
||||||
, CodeTemplatePlaceholder.protocol_field_definition, protocol_field_definition(registration)
|
|
||||||
, CodeTemplatePlaceholder.protocol_registration, protocol_registration(registration)
|
, CodeTemplatePlaceholder.protocol_registration, protocol_registration(registration)
|
||||||
));
|
));
|
||||||
var outputPath = StringUtils.format("{}/{}/{}.kt", protocolOutputPath, GenerateProtocolPath.protocolPathSlash(protocol_id), protocol_name);
|
var outputPath = StringUtils.format("{}/{}/{}.kt", protocolOutputPath, GenerateProtocolPath.protocolPathSlash(protocol_id), protocol_name);
|
||||||
@@ -179,7 +178,7 @@ public class CodeGenerateKotlin implements ICodeGenerate {
|
|||||||
for (var registration : registrations) {
|
for (var registration : registrations) {
|
||||||
var protocol_id = registration.protocolId();
|
var protocol_id = registration.protocolId();
|
||||||
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
|
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
|
||||||
protocol_manager_registrations.append(StringUtils.format("protocols[{}] = {}.registration{}", protocol_id, protocol_name, protocol_name)).append(LS);
|
protocol_manager_registrations.append(StringUtils.format("protocols[{}] = Registration{}()", protocol_id, protocol_name)).append(LS);
|
||||||
protocol_manager_registrations.append(StringUtils.format("protocolIdMap[{}::class.java] = {}.toShort()", protocol_name, protocol_id)).append(LS);
|
protocol_manager_registrations.append(StringUtils.format("protocolIdMap[{}::class.java] = {}.toShort()", protocol_name, protocol_id)).append(LS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -198,9 +197,7 @@ public class CodeGenerateKotlin implements ICodeGenerate {
|
|||||||
var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of(
|
var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of(
|
||||||
CodeTemplatePlaceholder.protocol_root_path, protocol_root_path
|
CodeTemplatePlaceholder.protocol_root_path, protocol_root_path
|
||||||
, CodeTemplatePlaceholder.protocol_imports, StringUtils.EMPTY
|
, CodeTemplatePlaceholder.protocol_imports, StringUtils.EMPTY
|
||||||
, CodeTemplatePlaceholder.protocol_note, GenerateProtocolNote.protocol_note(protocol_id, CodeLanguage.Kotlin)
|
, CodeTemplatePlaceholder.protocol_class, protocol_class(registration)
|
||||||
, CodeTemplatePlaceholder.protocol_name, protocol_name
|
|
||||||
, CodeTemplatePlaceholder.protocol_field_definition, protocol_field_definition(registration)
|
|
||||||
, CodeTemplatePlaceholder.protocol_registration, protocol_registration(registration)
|
, CodeTemplatePlaceholder.protocol_registration, protocol_registration(registration)
|
||||||
));
|
));
|
||||||
var outputPath = StringUtils.format("{}/{}.kt", protocolOutputPath, protocol_name);
|
var outputPath = StringUtils.format("{}/{}.kt", protocolOutputPath, protocol_name);
|
||||||
@@ -253,20 +250,6 @@ public class CodeGenerateKotlin implements ICodeGenerate {
|
|||||||
return formatProtocolTemplate;
|
return formatProtocolTemplate;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String protocol_registration_merger(ProtocolRegistration registration) {
|
|
||||||
var protocol_id = registration.protocolId();
|
|
||||||
var protocol_name = registration.protocolConstructor().getDeclaringClass().getSimpleName();
|
|
||||||
var protocolTemplate = ClassUtils.getFileFromClassPathToString("kotlin/ProtocolRegistrationMergerTemplate.kt");
|
|
||||||
var formatProtocolTemplate = CodeTemplatePlaceholder.formatTemplate(protocolTemplate, Map.of(
|
|
||||||
CodeTemplatePlaceholder.protocol_name, protocol_name
|
|
||||||
, CodeTemplatePlaceholder.protocol_id, String.valueOf(protocol_id)
|
|
||||||
, CodeTemplatePlaceholder.protocol_write_serialization, protocol_write_serialization(registration)
|
|
||||||
, CodeTemplatePlaceholder.protocol_read_deserialization, protocol_read_deserialization(registration)
|
|
||||||
));
|
|
||||||
return formatProtocolTemplate;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private String protocol_imports_fold(ProtocolRegistration registration) {
|
private String protocol_imports_fold(ProtocolRegistration registration) {
|
||||||
var protocolId = registration.getId();
|
var protocolId = registration.getId();
|
||||||
var subProtocols = ProtocolAnalysis.getAllSubProtocolIds(protocolId);
|
var subProtocols = ProtocolAnalysis.getAllSubProtocolIds(protocolId);
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
@JvmField
|
|
||||||
val registration${protocol_name}: IProtocolRegistration = object : IProtocolRegistration {
|
|
||||||
override fun protocolId(): Short {
|
|
||||||
return ${protocol_id}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun write(buffer: ByteBuffer, packet: Any?) {
|
|
||||||
if (packet == null) {
|
|
||||||
buffer.writeInt(0)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
val message = packet as ${protocol_name}
|
|
||||||
${protocol_write_serialization}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun read(buffer: ByteBuffer): Any {
|
|
||||||
val length = buffer.readInt()
|
|
||||||
val packet = ${protocol_name}()
|
|
||||||
if (length == 0) {
|
|
||||||
return packet
|
|
||||||
}
|
|
||||||
val beforeReadIndex = buffer.readOffset()
|
|
||||||
${protocol_read_deserialization}
|
|
||||||
if (length > 0) {
|
|
||||||
buffer.setReadOffset(beforeReadIndex + length)
|
|
||||||
}
|
|
||||||
return packet
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,31 +1,28 @@
|
|||||||
companion object {
|
class Registration${protocol_name} : IProtocolRegistration {
|
||||||
@JvmField
|
override fun protocolId(): Short {
|
||||||
val registration${protocol_name}: IProtocolRegistration = object : IProtocolRegistration {
|
return ${protocol_id}
|
||||||
override fun protocolId(): Short {
|
}
|
||||||
return ${protocol_id}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun write(buffer: ByteBuffer, packet: Any?) {
|
override fun write(buffer: ByteBuffer, packet: Any?) {
|
||||||
if (packet == null) {
|
if (packet == null) {
|
||||||
buffer.writeInt(0)
|
buffer.writeInt(0)
|
||||||
return
|
return
|
||||||
}
|
|
||||||
val message = packet as ${protocol_name}
|
|
||||||
${protocol_write_serialization}
|
|
||||||
}
|
}
|
||||||
|
val message = packet as ${protocol_name}
|
||||||
|
${protocol_write_serialization}
|
||||||
|
}
|
||||||
|
|
||||||
override fun read(buffer: ByteBuffer): Any {
|
override fun read(buffer: ByteBuffer): Any {
|
||||||
val length = buffer.readInt()
|
val length = buffer.readInt()
|
||||||
val packet = ${protocol_name}()
|
val packet = ${protocol_name}()
|
||||||
if (length == 0) {
|
if (length == 0) {
|
||||||
return packet
|
|
||||||
}
|
|
||||||
val beforeReadIndex = buffer.readOffset()
|
|
||||||
${protocol_read_deserialization}
|
|
||||||
if (length > 0) {
|
|
||||||
buffer.setReadOffset(beforeReadIndex + length)
|
|
||||||
}
|
|
||||||
return packet
|
return packet
|
||||||
}
|
}
|
||||||
|
val beforeReadIndex = buffer.readOffset()
|
||||||
|
${protocol_read_deserialization}
|
||||||
|
if (length > 0) {
|
||||||
|
buffer.setReadOffset(beforeReadIndex + length)
|
||||||
|
}
|
||||||
|
return packet
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
${protocol_root_path}
|
${protocol_root_path}
|
||||||
${protocol_imports}
|
${protocol_imports}
|
||||||
${protocol_note}
|
|
||||||
class ${protocol_name} {
|
|
||||||
${protocol_field_definition}
|
|
||||||
|
|
||||||
${protocol_registration}
|
${protocol_class}
|
||||||
}
|
|
||||||
|
${protocol_registration}
|
||||||
Reference in new issue
Block a user