1515 */
1616package io .serverlessworkflow .generator ;
1717
18- import com .fasterxml .jackson .core .JsonGenerator ;
19- import com .fasterxml .jackson .core .JsonParser ;
20- import com .fasterxml .jackson .databind .DeserializationContext ;
21- import com .fasterxml .jackson .databind .JsonDeserializer ;
22- import com .fasterxml .jackson .databind .JsonSerializer ;
23- import com .fasterxml .jackson .databind .SerializerProvider ;
24- import com .sun .codemodel .JClassAlreadyExistsException ;
2518import com .sun .codemodel .JDefinedClass ;
2619import com .sun .codemodel .JFieldVar ;
2720import com .sun .codemodel .JMethod ;
2821import com .sun .codemodel .JMod ;
29- import com .sun .codemodel .JVar ;
30- import java .io .IOException ;
22+ import io .serverlessworkflow .annotations .GetterMethod ;
3123import org .jsonschema2pojo .util .NameHelper ;
3224
3325public class GeneratorUtils {
3426
35- @ FunctionalInterface
36- public interface SerializerFiller {
37- void accept (JMethod method , JVar valueParam , JVar genParam );
38- }
39-
40- @ FunctionalInterface
41- public interface DeserializerFiller {
42- void accept (JMethod method , JVar parserParam );
43- }
44-
45- public static JDefinedClass serializerClass (JDefinedClass relatedClass )
46- throws JClassAlreadyExistsException {
47- return createClass (relatedClass , JsonSerializer .class , "Serializer" );
48- }
49-
50- public static JDefinedClass deserializerClass (JDefinedClass relatedClass )
51- throws JClassAlreadyExistsException {
52- return createClass (relatedClass , JsonDeserializer .class , "Deserializer" );
53- }
54-
5527 public static JMethod implementInterface (JDefinedClass definedClass , JFieldVar valueField ) {
5628 JMethod method = definedClass .method (JMod .PUBLIC , valueField .type (), "get" );
5729 method .annotate (Override .class );
@@ -67,38 +39,9 @@ public static JMethod getterMethod(
6739 instanceField .type (),
6840 nameHelper .getGetterName (name , instanceField .type (), null ));
6941 method .body ()._return (instanceField );
42+ method .annotate (GetterMethod .class );
7043 return method ;
7144 }
7245
73- public static void fillSerializer (
74- JDefinedClass definedClass , JDefinedClass relatedClass , SerializerFiller filler ) {
75- JMethod method = definedClass .method (JMod .PUBLIC , void .class , "serialize" );
76- method .annotate (Override .class );
77- method ._throws (IOException .class );
78- JVar valueParam = method .param (relatedClass , "value" );
79- JVar genParam = method .param (JsonGenerator .class , "gen" );
80- method .param (SerializerProvider .class , "serializers" );
81- filler .accept (method , valueParam , genParam );
82- }
83-
84- public static void fillDeserializer (
85- JDefinedClass definedClass , JDefinedClass relatedClass , DeserializerFiller filler ) {
86- JMethod method = definedClass .method (JMod .PUBLIC , relatedClass , "deserialize" );
87- method .annotate (Override .class );
88- method ._throws (IOException .class );
89- JVar parserParam = method .param (JsonParser .class , "parser" );
90- method .param (DeserializationContext .class , "dctx" );
91- filler .accept (method , parserParam );
92- }
93-
94- private static JDefinedClass createClass (
95- JDefinedClass relatedClass , Class <?> serializerClass , String suffix )
96- throws JClassAlreadyExistsException {
97- JDefinedClass definedClass =
98- relatedClass ._package ()._class (JMod .NONE , relatedClass .name () + suffix );
99- definedClass ._extends (definedClass .owner ().ref (serializerClass ).narrow (relatedClass ));
100- return definedClass ;
101- }
102-
10346 private GeneratorUtils () {}
10447}
0 commit comments