From 6806991a7e5973137e60986a7b3e9f15ec8c3880 Mon Sep 17 00:00:00 2001 From: kmetin Date: Tue, 26 Sep 2023 13:21:22 +0300 Subject: [PATCH] add getCompactClass and getTypeName methods --- base/commands/serializer/java.go | 14 ++++++++++---- base/commands/serializer/java_templates.go | 10 ++++++++++ base/commands/serializer/serializer_it_test.go | 7 +++++++ .../testdata/generationTestFiles/AllTypes.java | 10 ++++++++++ .../testdata/generationTestFiles/Classroom.java | 10 ++++++++++ .../testdata/generationTestFiles/Example1.java | 10 ++++++++++ .../testdata/generationTestFiles/Example2.java | 10 ++++++++++ .../testdata/generationTestFiles/Example3.java | 10 ++++++++++ .../testdata/generationTestFiles/External.java | 10 ++++++++++ .../generationTestFiles/NestedCompact.java | 10 ++++++++++ .../testdata/generationTestFiles/NoNamespace.java | 10 ++++++++++ .../generationTestFiles/NoNamespaceNested.java | 10 ++++++++++ .../testdata/generationTestFiles/School.java | 10 ++++++++++ .../testdata/generationTestFiles/Student.java | 10 ++++++++++ 14 files changed, 137 insertions(+), 4 deletions(-) diff --git a/base/commands/serializer/java.go b/base/commands/serializer/java.go index b1854401..0314d1b8 100644 --- a/base/commands/serializer/java.go +++ b/base/commands/serializer/java.go @@ -9,6 +9,7 @@ import ( "text/template" "github.com/hazelcast/hazelcast-commandline-client/internal/check" + "github.com/hazelcast/hazelcast-go-client/types" ) const ( @@ -18,6 +19,9 @@ const ( float64Type = "float64" ) +// UUIDGenFunc is a variable, because we are overriding its behaviour to return a constant UUID during the tests. +var UUIDGenFunc = types.NewUUID + var indent4 = strings.Repeat(" ", 4) var indent8 = strings.Repeat(" ", 8) var indent12 = strings.Repeat(" ", 12) @@ -75,8 +79,9 @@ type codeTemplate struct { } type classSchema struct { - Class Class - Schema Schema + Class Class + Schema Schema + TypeName string } func GenerateClass(cls Class, sch Schema, w io.Writer) error { @@ -103,8 +108,9 @@ func GenerateClass(cls Class, sch Schema, w io.Writer) error { tmpl = template.Must(tmpl, err) } err = tmpl.Execute(w, classSchema{ - Class: cls, - Schema: sch, + Class: cls, + Schema: sch, + TypeName: UUIDGenFunc().String(), }) return err } diff --git a/base/commands/serializer/java_templates.go b/base/commands/serializer/java_templates.go index 99aef569..a9b75f66 100644 --- a/base/commands/serializer/java_templates.go +++ b/base/commands/serializer/java_templates.go @@ -24,6 +24,16 @@ const javaCompactSerializerTemplate = `public static final class Serializer impl public void write(@Nonnull CompactWriter writer, @Nonnull {{ .Class.Name }} object) { {{range $field := .Class.Fields}} writer.write{{methodName (toJavaType $field.Type) $field.Type }}("{{ $field.Name }}", object.{{ $field.Name }}); {{end}} } + + @Override + public Class<{{ .Class.Name }}> getCompactClass() { + return {{ .Class.Name }}.class; + } + + @Override + public String getTypeName() { + return "{{ .TypeName }}"; + } }; public static final CompactSerializer<{{ .Class.Name }}> HZ_COMPACT_SERIALIZER = new Serializer();` diff --git a/base/commands/serializer/serializer_it_test.go b/base/commands/serializer/serializer_it_test.go index 825fdf1f..bad941fe 100644 --- a/base/commands/serializer/serializer_it_test.go +++ b/base/commands/serializer/serializer_it_test.go @@ -3,10 +3,12 @@ package serializer import ( + "fmt" "os" "path/filepath" "testing" + "github.com/hazelcast/hazelcast-go-client/types" "github.com/stretchr/testify/assert" ) @@ -37,6 +39,11 @@ var ( ) func init() { + UUIDGenFunc = func() types.UUID { + return types.NewUUIDWith(10, 10) + } + s := types.NewUUIDWith(10, 10).String() + fmt.Println(s) generationTestFilesDir := filepath.Join("testdata", "generationTestFiles") generationTestFilesSchemaDir := filepath.Join("testdata", "generationTestFiles", "schema") diff --git a/base/commands/serializer/testdata/generationTestFiles/AllTypes.java b/base/commands/serializer/testdata/generationTestFiles/AllTypes.java index afdccc1f..ec53fc88 100644 --- a/base/commands/serializer/testdata/generationTestFiles/AllTypes.java +++ b/base/commands/serializer/testdata/generationTestFiles/AllTypes.java @@ -100,6 +100,16 @@ public void write(@Nonnull CompactWriter writer, @Nonnull AllTypes object) { writer.writeCompact("mcompact", object.mcompact); writer.writeArrayOfCompact("mcompactArray", object.mcompactArray); } + + @Override + public Class getCompactClass() { + return AllTypes.class; + } + + @Override + public String getTypeName() { + return "00000000-0000-000a-0000-00000000000a"; + } }; public static final CompactSerializer HZ_COMPACT_SERIALIZER = new Serializer(); diff --git a/base/commands/serializer/testdata/generationTestFiles/Classroom.java b/base/commands/serializer/testdata/generationTestFiles/Classroom.java index c2328932..7b8e71c8 100644 --- a/base/commands/serializer/testdata/generationTestFiles/Classroom.java +++ b/base/commands/serializer/testdata/generationTestFiles/Classroom.java @@ -26,6 +26,16 @@ public void write(@Nonnull CompactWriter writer, @Nonnull Classroom object) { writer.writeInt32("id", object.id); writer.writeArrayOfCompact("students", object.students); } + + @Override + public Class getCompactClass() { + return Classroom.class; + } + + @Override + public String getTypeName() { + return "00000000-0000-000a-0000-00000000000a"; + } }; public static final CompactSerializer HZ_COMPACT_SERIALIZER = new Serializer(); diff --git a/base/commands/serializer/testdata/generationTestFiles/Example1.java b/base/commands/serializer/testdata/generationTestFiles/Example1.java index 7e569995..831009e0 100644 --- a/base/commands/serializer/testdata/generationTestFiles/Example1.java +++ b/base/commands/serializer/testdata/generationTestFiles/Example1.java @@ -24,6 +24,16 @@ public void write(@Nonnull CompactWriter writer, @Nonnull Example1 object) { writer.writeCompact("example", object.example); writer.writeArrayOfCompact("examples", object.examples); } + + @Override + public Class getCompactClass() { + return Example1.class; + } + + @Override + public String getTypeName() { + return "00000000-0000-000a-0000-00000000000a"; + } }; public static final CompactSerializer HZ_COMPACT_SERIALIZER = new Serializer(); diff --git a/base/commands/serializer/testdata/generationTestFiles/Example2.java b/base/commands/serializer/testdata/generationTestFiles/Example2.java index 74a8fd92..8c1a2d70 100644 --- a/base/commands/serializer/testdata/generationTestFiles/Example2.java +++ b/base/commands/serializer/testdata/generationTestFiles/Example2.java @@ -22,6 +22,16 @@ public Example2 read(@Nonnull CompactReader reader) { public void write(@Nonnull CompactWriter writer, @Nonnull Example2 object) { writer.writeInt32("foo", object.foo); } + + @Override + public Class getCompactClass() { + return Example2.class; + } + + @Override + public String getTypeName() { + return "00000000-0000-000a-0000-00000000000a"; + } }; public static final CompactSerializer HZ_COMPACT_SERIALIZER = new Serializer(); diff --git a/base/commands/serializer/testdata/generationTestFiles/Example3.java b/base/commands/serializer/testdata/generationTestFiles/Example3.java index 810615ed..317d450c 100644 --- a/base/commands/serializer/testdata/generationTestFiles/Example3.java +++ b/base/commands/serializer/testdata/generationTestFiles/Example3.java @@ -22,6 +22,16 @@ public Example3 read(@Nonnull CompactReader reader) { public void write(@Nonnull CompactWriter writer, @Nonnull Example3 object) { writer.writeInt64("bar", object.bar); } + + @Override + public Class getCompactClass() { + return Example3.class; + } + + @Override + public String getTypeName() { + return "00000000-0000-000a-0000-00000000000a"; + } }; public static final CompactSerializer HZ_COMPACT_SERIALIZER = new Serializer(); diff --git a/base/commands/serializer/testdata/generationTestFiles/External.java b/base/commands/serializer/testdata/generationTestFiles/External.java index 349170cc..f94eb191 100644 --- a/base/commands/serializer/testdata/generationTestFiles/External.java +++ b/base/commands/serializer/testdata/generationTestFiles/External.java @@ -24,6 +24,16 @@ public void write(@Nonnull CompactWriter writer, @Nonnull External object) { writer.writeBoolean("foo", object.foo); writer.writeCompact("bar", object.bar); } + + @Override + public Class getCompactClass() { + return External.class; + } + + @Override + public String getTypeName() { + return "00000000-0000-000a-0000-00000000000a"; + } }; public static final CompactSerializer HZ_COMPACT_SERIALIZER = new Serializer(); diff --git a/base/commands/serializer/testdata/generationTestFiles/NestedCompact.java b/base/commands/serializer/testdata/generationTestFiles/NestedCompact.java index 649b6b12..c7b116bb 100644 --- a/base/commands/serializer/testdata/generationTestFiles/NestedCompact.java +++ b/base/commands/serializer/testdata/generationTestFiles/NestedCompact.java @@ -24,6 +24,16 @@ public void write(@Nonnull CompactWriter writer, @Nonnull NestedCompact object) writer.writeString("foo", object.foo); writer.writeInt32("bar", object.bar); } + + @Override + public Class getCompactClass() { + return NestedCompact.class; + } + + @Override + public String getTypeName() { + return "00000000-0000-000a-0000-00000000000a"; + } }; public static final CompactSerializer HZ_COMPACT_SERIALIZER = new Serializer(); diff --git a/base/commands/serializer/testdata/generationTestFiles/NoNamespace.java b/base/commands/serializer/testdata/generationTestFiles/NoNamespace.java index 33a873c4..f75b3574 100644 --- a/base/commands/serializer/testdata/generationTestFiles/NoNamespace.java +++ b/base/commands/serializer/testdata/generationTestFiles/NoNamespace.java @@ -22,6 +22,16 @@ public void write(@Nonnull CompactWriter writer, @Nonnull NoNamespace object) { writer.writeBoolean("foo", object.foo); writer.writeCompact("bar", object.bar); } + + @Override + public Class getCompactClass() { + return NoNamespace.class; + } + + @Override + public String getTypeName() { + return "00000000-0000-000a-0000-00000000000a"; + } }; public static final CompactSerializer HZ_COMPACT_SERIALIZER = new Serializer(); diff --git a/base/commands/serializer/testdata/generationTestFiles/NoNamespaceNested.java b/base/commands/serializer/testdata/generationTestFiles/NoNamespaceNested.java index 01b54ae0..606f49d9 100644 --- a/base/commands/serializer/testdata/generationTestFiles/NoNamespaceNested.java +++ b/base/commands/serializer/testdata/generationTestFiles/NoNamespaceNested.java @@ -20,6 +20,16 @@ public NoNamespaceNested read(@Nonnull CompactReader reader) { public void write(@Nonnull CompactWriter writer, @Nonnull NoNamespaceNested object) { writer.writeBoolean("baz", object.baz); } + + @Override + public Class getCompactClass() { + return NoNamespaceNested.class; + } + + @Override + public String getTypeName() { + return "00000000-0000-000a-0000-00000000000a"; + } }; public static final CompactSerializer HZ_COMPACT_SERIALIZER = new Serializer(); diff --git a/base/commands/serializer/testdata/generationTestFiles/School.java b/base/commands/serializer/testdata/generationTestFiles/School.java index c87f82f7..39fe08c1 100644 --- a/base/commands/serializer/testdata/generationTestFiles/School.java +++ b/base/commands/serializer/testdata/generationTestFiles/School.java @@ -26,6 +26,16 @@ public void write(@Nonnull CompactWriter writer, @Nonnull School object) { writer.writeInt32("id", object.id); writer.writeArrayOfCompact("classrooms", object.classrooms); } + + @Override + public Class getCompactClass() { + return School.class; + } + + @Override + public String getTypeName() { + return "00000000-0000-000a-0000-00000000000a"; + } }; public static final CompactSerializer HZ_COMPACT_SERIALIZER = new Serializer(); diff --git a/base/commands/serializer/testdata/generationTestFiles/Student.java b/base/commands/serializer/testdata/generationTestFiles/Student.java index c659f9bc..9504f855 100644 --- a/base/commands/serializer/testdata/generationTestFiles/Student.java +++ b/base/commands/serializer/testdata/generationTestFiles/Student.java @@ -24,6 +24,16 @@ public void write(@Nonnull CompactWriter writer, @Nonnull Student object) { writer.writeString("name", object.name); writer.writeInt16("number", object.number); } + + @Override + public Class getCompactClass() { + return Student.class; + } + + @Override + public String getTypeName() { + return "00000000-0000-000a-0000-00000000000a"; + } }; public static final CompactSerializer HZ_COMPACT_SERIALIZER = new Serializer();