From 316d81bb18cd64a12f69a6d16f7a7c1b52f965e9 Mon Sep 17 00:00:00 2001 From: JFronny Date: Thu, 24 Nov 2022 19:44:20 +0100 Subject: [PATCH] Only generate @Extension once --- README.md | 1 + .../jfronny/gson/compile/processor/GsonCompileProcessor.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f108888..3779b01 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ Use `@GPrefer` to choose one construction method if multiple are available - Optional, strict no-reflection enforcement via `-AgsonCompileNoReflect` - Comments via `@GComment` - Several utility methods in the generated class for reading from/writing to various sources +- Support for generating extension methods if manifold is present ## TODO - Support for nested types from libraries diff --git a/gson-compile-processor/src/main/java/io/gitlab/jfronny/gson/compile/processor/GsonCompileProcessor.java b/gson-compile-processor/src/main/java/io/gitlab/jfronny/gson/compile/processor/GsonCompileProcessor.java index f95ef90..3eaaa80 100644 --- a/gson-compile-processor/src/main/java/io/gitlab/jfronny/gson/compile/processor/GsonCompileProcessor.java +++ b/gson-compile-processor/src/main/java/io/gitlab/jfronny/gson/compile/processor/GsonCompileProcessor.java @@ -123,10 +123,10 @@ public class GsonCompileProcessor extends AbstractProcessor2 { TypeSpec.Builder builder = find(known, current); if (builder == null) { builder = TypeSpec.classBuilder(s).addModifiers(Modifier.PUBLIC); + if (current.size() == 1 && hasManifold) builder.addAnnotation(Cl.MANIFOLD_EXTENSION); known.put(List.copyOf(current), builder); } if (current.size() > 1) builder.addModifiers(Modifier.STATIC); - else if (hasManifold) builder.addAnnotation(Cl.MANIFOLD_EXTENSION); } } // Add to parent class