From f18ad32b87c24c2bcb4078c597f5a0945f8025ee Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Sat, 21 Jan 2023 23:58:56 +0100 Subject: [PATCH] Update --- .../data/generator/plugin/ComputedTypeArray.java | 4 ++++ .../generator/plugin/ComputedTypeNullable.java | 5 +++++ .../plugin/classgen/GenSerializerArrayX.java | 13 ++++++++----- .../plugin/classgen/GenSerializerNullableX.java | 14 +++++++++----- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ComputedTypeArray.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ComputedTypeArray.java index 7bc37d5..a54b5cb 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ComputedTypeArray.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ComputedTypeArray.java @@ -1,7 +1,11 @@ package it.cavallium.data.generator.plugin; +import com.squareup.javapoet.ClassName; + public sealed interface ComputedTypeArray extends ComputedType permits ComputedTypeArrayFixed, ComputedTypeArrayNative, ComputedTypeArrayVersioned { ComputedType getBase(); + + ClassName getJSerializerName(String basePackageName); } diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ComputedTypeNullable.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ComputedTypeNullable.java index bab776b..f290190 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ComputedTypeNullable.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/ComputedTypeNullable.java @@ -1,7 +1,12 @@ package it.cavallium.data.generator.plugin; +import com.squareup.javapoet.ClassName; + public sealed interface ComputedTypeNullable extends ComputedType permits ComputedTypeNullableFixed, ComputedTypeNullableNative, ComputedTypeNullableVersioned { ComputedType getBase(); + + @Override + ClassName getJSerializerName(String basePackageName); } diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/classgen/GenSerializerArrayX.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/classgen/GenSerializerArrayX.java index 70b82b3..d7512a8 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/classgen/GenSerializerArrayX.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/classgen/GenSerializerArrayX.java @@ -10,6 +10,8 @@ import com.squareup.javapoet.TypeSpec.Builder; import it.cavallium.data.generator.DataSerializer; import it.cavallium.data.generator.nativedata.ImmutableWrappedArrayList; import it.cavallium.data.generator.plugin.ClassGenerator; +import it.cavallium.data.generator.plugin.ComputedTypeArray; +import it.cavallium.data.generator.plugin.ComputedTypeArrayFixed; import it.cavallium.data.generator.plugin.ComputedTypeArrayVersioned; import it.cavallium.data.generator.plugin.ComputedVersion; import java.io.DataInput; @@ -35,11 +37,12 @@ public class GenSerializerArrayX extends ClassGenerator { private Stream generateVersionClasses(ComputedVersion version) { return dataModel .getArrayTypesComputed(version) - .filter(type -> type instanceof ComputedTypeArrayVersioned versioned && versioned.getVersion().equals(version)) - .map(type -> generateTypeVersioned(version, (ComputedTypeArrayVersioned) type)); + .filter(type -> (type instanceof ComputedTypeArrayVersioned versioned + && versioned.getVersion().equals(version)) || type instanceof ComputedTypeArrayFixed) + .map(type -> generateTypeVersioned(version, type)); } - private GeneratedClass generateTypeVersioned(ComputedVersion version, ComputedTypeArrayVersioned typeArray) { + private GeneratedClass generateTypeVersioned(ComputedVersion version, ComputedTypeArray typeArray) { ClassName serializerClassName = typeArray.getJSerializerName(basePackageName); var typeArrayClassName = typeArray.getJTypeName(basePackageName); @@ -56,7 +59,7 @@ public class GenSerializerArrayX extends ClassGenerator { return new GeneratedClass(serializerClassName.packageName(), classBuilder); } - private void generateSerialize(ComputedVersion version, ComputedTypeArrayVersioned typeArray, Builder classBuilder) { + private void generateSerialize(ComputedVersion version, ComputedTypeArray typeArray, Builder classBuilder) { var method = MethodSpec.methodBuilder("serialize"); method.addModifiers(Modifier.PUBLIC, Modifier.FINAL); @@ -89,7 +92,7 @@ public class GenSerializerArrayX extends ClassGenerator { classBuilder.addMethod(method.build()); } - private void generateDeserialize(ComputedVersion version, ComputedTypeArrayVersioned typeArray, Builder classBuilder) { + private void generateDeserialize(ComputedVersion version, ComputedTypeArray typeArray, Builder classBuilder) { var method = MethodSpec.methodBuilder("deserialize"); method.addModifiers(Modifier.PUBLIC, Modifier.FINAL); diff --git a/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/classgen/GenSerializerNullableX.java b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/classgen/GenSerializerNullableX.java index 094b094..f7dca43 100644 --- a/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/classgen/GenSerializerNullableX.java +++ b/data-generator-plugin/src/main/java/it/cavallium/data/generator/plugin/classgen/GenSerializerNullableX.java @@ -8,6 +8,8 @@ import com.squareup.javapoet.TypeSpec; import com.squareup.javapoet.TypeSpec.Builder; import it.cavallium.data.generator.DataSerializer; import it.cavallium.data.generator.plugin.ClassGenerator; +import it.cavallium.data.generator.plugin.ComputedTypeNullable; +import it.cavallium.data.generator.plugin.ComputedTypeNullableFixed; import it.cavallium.data.generator.plugin.ComputedTypeNullableVersioned; import it.cavallium.data.generator.plugin.ComputedVersion; import java.io.DataInput; @@ -33,11 +35,13 @@ public class GenSerializerNullableX extends ClassGenerator { private Stream generateVersionClasses(ComputedVersion version) { return dataModel .getNullableTypesComputed(version) - .filter(type -> type instanceof ComputedTypeNullableVersioned versioned && versioned.getVersion().equals(version)) - .map(type -> generateTypeVersioned(version, (ComputedTypeNullableVersioned) type)); + .filter(type -> ( + (type instanceof ComputedTypeNullableVersioned versioned && versioned.getVersion().equals(version)) + || type instanceof ComputedTypeNullableFixed)) + .map(type -> generateTypeVersioned(version, type)); } - private GeneratedClass generateTypeVersioned(ComputedVersion version, ComputedTypeNullableVersioned typeNullable) { + private GeneratedClass generateTypeVersioned(ComputedVersion version, ComputedTypeNullable typeNullable) { ClassName serializerClassName = typeNullable.getJSerializerName(basePackageName); var typeNullableClassName = typeNullable.getJTypeName(basePackageName); @@ -54,7 +58,7 @@ public class GenSerializerNullableX extends ClassGenerator { return new GeneratedClass(serializerClassName.packageName(), classBuilder); } - private void generateSerialize(ComputedVersion version, ComputedTypeNullableVersioned typeNullable, Builder classBuilder) { + private void generateSerialize(ComputedVersion version, ComputedTypeNullable typeNullable, Builder classBuilder) { var method = MethodSpec.methodBuilder("serialize"); var base = typeNullable.getBase(); @@ -89,7 +93,7 @@ public class GenSerializerNullableX extends ClassGenerator { classBuilder.addMethod(method.build()); } - private void generateDeserialize(ComputedVersion version, ComputedTypeNullableVersioned typeNullable, Builder classBuilder) { + private void generateDeserialize(ComputedVersion version, ComputedTypeNullable typeNullable, Builder classBuilder) { var method = MethodSpec.methodBuilder("deserialize"); var base = typeNullable.getBase();