@@ -29,23 +29,10 @@ private GsonFactory() {
29
29
* Most of the Slack APIs' key naming is snake-cased.
30
30
*/
31
31
public static Gson createSnakeCase () {
32
- return new GsonBuilder ()
33
- .setFieldNamingPolicy (FieldNamingPolicy .LOWER_CASE_WITH_UNDERSCORES )
34
- .registerTypeAdapter (Instant .class , new JavaTimeInstantFactory ())
35
- .registerTypeAdapter (File .class , new GsonFileFactory ())
36
- .registerTypeAdapter (LayoutBlock .class , new GsonLayoutBlockFactory ())
37
- .registerTypeAdapter (TextObject .class , new GsonTextObjectFactory ())
38
- .registerTypeAdapter (ContextBlockElement .class , new GsonContextBlockElementFactory ())
39
- .registerTypeAdapter (BlockElement .class , new GsonBlockElementFactory ())
40
- .registerTypeAdapter (RichTextElement .class , new GsonRichTextElementFactory ())
41
- .registerTypeAdapter (FunctionExecutedEvent .InputValue .class , new GsonFunctionExecutedEventInputValueFactory ())
42
- .registerTypeAdapter (Attachment .VideoHtml .class , new GsonMessageAttachmentVideoHtmlFactory ())
43
- .registerTypeAdapter (MessageChangedEvent .PreviousMessage .class , new GsonMessageChangedEventPreviousMessageFactory ())
44
- .registerTypeAdapter (AppWorkflow .StepInputValue .class , new GsonAppWorkflowStepInputValueFactory ())
45
- .registerTypeAdapter (AppWorkflow .StepInputValueElementDefault .class , new GsonAppWorkflowStepInputValueDefaultFactory ())
46
- .registerTypeAdapter (LogsResponse .DetailsChangedValue .class , new GsonAuditLogsDetailsChangedValueFactory ())
47
- .registerTypeAdapter (LogsResponse .UserIDs .class , new GsonAuditLogsDetailsUserIDsFactory ())
48
- .create ();
32
+ GsonBuilder gsonBuilder = new GsonBuilder ()
33
+ .setFieldNamingPolicy (FieldNamingPolicy .LOWER_CASE_WITH_UNDERSCORES );
34
+ registerTypeAdapters (gsonBuilder , false );
35
+ return gsonBuilder .create ();
49
36
}
50
37
51
38
/**
@@ -54,21 +41,8 @@ public static Gson createSnakeCase() {
54
41
public static Gson createSnakeCase (SlackConfig config ) {
55
42
boolean failOnUnknownProps = config .isFailOnUnknownProperties ();
56
43
GsonBuilder gsonBuilder = new GsonBuilder ()
57
- .setFieldNamingPolicy (FieldNamingPolicy .LOWER_CASE_WITH_UNDERSCORES )
58
- .registerTypeAdapter (Instant .class , new JavaTimeInstantFactory (failOnUnknownProps ))
59
- .registerTypeAdapter (File .class , new GsonFileFactory (failOnUnknownProps ))
60
- .registerTypeAdapter (LayoutBlock .class , new GsonLayoutBlockFactory (failOnUnknownProps ))
61
- .registerTypeAdapter (TextObject .class , new GsonTextObjectFactory (failOnUnknownProps ))
62
- .registerTypeAdapter (ContextBlockElement .class , new GsonContextBlockElementFactory (failOnUnknownProps ))
63
- .registerTypeAdapter (BlockElement .class , new GsonBlockElementFactory (failOnUnknownProps ))
64
- .registerTypeAdapter (RichTextElement .class , new GsonRichTextElementFactory (failOnUnknownProps ))
65
- .registerTypeAdapter (FunctionExecutedEvent .InputValue .class , new GsonFunctionExecutedEventInputValueFactory ())
66
- .registerTypeAdapter (Attachment .VideoHtml .class , new GsonMessageAttachmentVideoHtmlFactory (failOnUnknownProps ))
67
- .registerTypeAdapter (MessageChangedEvent .PreviousMessage .class , new GsonMessageChangedEventPreviousMessageFactory (failOnUnknownProps ))
68
- .registerTypeAdapter (AppWorkflow .StepInputValue .class , new GsonAppWorkflowStepInputValueFactory (failOnUnknownProps ))
69
- .registerTypeAdapter (AppWorkflow .StepInputValueElementDefault .class , new GsonAppWorkflowStepInputValueDefaultFactory (failOnUnknownProps ))
70
- .registerTypeAdapter (LogsResponse .DetailsChangedValue .class , new GsonAuditLogsDetailsChangedValueFactory (failOnUnknownProps ))
71
- .registerTypeAdapter (LogsResponse .UserIDs .class , new GsonAuditLogsDetailsUserIDsFactory (failOnUnknownProps ));
44
+ .setFieldNamingPolicy (FieldNamingPolicy .LOWER_CASE_WITH_UNDERSCORES );
45
+ registerTypeAdapters (gsonBuilder , failOnUnknownProps );
72
46
if (failOnUnknownProps || config .isLibraryMaintainerMode ()) {
73
47
gsonBuilder = gsonBuilder .registerTypeAdapterFactory (new UnknownPropertyDetectionAdapterFactory ());
74
48
}
@@ -83,27 +57,32 @@ public static Gson createSnakeCase(SlackConfig config) {
83
57
*/
84
58
public static Gson createCamelCase (SlackConfig config ) {
85
59
boolean failOnUnknownProps = config .isFailOnUnknownProperties ();
86
- GsonBuilder gsonBuilder = new GsonBuilder ()
60
+ GsonBuilder gsonBuilder = new GsonBuilder ();
61
+ registerTypeAdapters (gsonBuilder , failOnUnknownProps );
62
+ if (failOnUnknownProps || config .isLibraryMaintainerMode ()) {
63
+ gsonBuilder = gsonBuilder .registerTypeAdapterFactory (new UnknownPropertyDetectionAdapterFactory ());
64
+ }
65
+ if (config .isPrettyResponseLoggingEnabled ()) {
66
+ gsonBuilder = gsonBuilder .setPrettyPrinting ();
67
+ }
68
+ return gsonBuilder .create ();
69
+ }
70
+
71
+ public static void registerTypeAdapters (GsonBuilder builder , boolean failOnUnknownProps ) {
72
+ builder
87
73
.registerTypeAdapter (Instant .class , new JavaTimeInstantFactory (failOnUnknownProps ))
88
74
.registerTypeAdapter (File .class , new GsonFileFactory (failOnUnknownProps ))
89
75
.registerTypeAdapter (LayoutBlock .class , new GsonLayoutBlockFactory (failOnUnknownProps ))
90
76
.registerTypeAdapter (TextObject .class , new GsonTextObjectFactory (failOnUnknownProps ))
91
77
.registerTypeAdapter (ContextBlockElement .class , new GsonContextBlockElementFactory (failOnUnknownProps ))
92
78
.registerTypeAdapter (BlockElement .class , new GsonBlockElementFactory (failOnUnknownProps ))
93
79
.registerTypeAdapter (RichTextElement .class , new GsonRichTextElementFactory (failOnUnknownProps ))
94
- .registerTypeAdapter (MessageChangedEvent . PreviousMessage .class , new GsonMessageChangedEventPreviousMessageFactory ( failOnUnknownProps ))
95
- .registerTypeAdapter (LogsResponse . DetailsChangedValue .class , new GsonAuditLogsDetailsChangedValueFactory (failOnUnknownProps ))
80
+ .registerTypeAdapter (FunctionExecutedEvent . InputValue .class , new GsonFunctionExecutedEventInputValueFactory ( ))
81
+ .registerTypeAdapter (Attachment . VideoHtml .class , new GsonMessageAttachmentVideoHtmlFactory (failOnUnknownProps ))
96
82
.registerTypeAdapter (MessageChangedEvent .PreviousMessage .class , new GsonMessageChangedEventPreviousMessageFactory (failOnUnknownProps ))
97
83
.registerTypeAdapter (AppWorkflow .StepInputValue .class , new GsonAppWorkflowStepInputValueFactory (failOnUnknownProps ))
98
84
.registerTypeAdapter (AppWorkflow .StepInputValueElementDefault .class , new GsonAppWorkflowStepInputValueDefaultFactory (failOnUnknownProps ))
99
85
.registerTypeAdapter (LogsResponse .DetailsChangedValue .class , new GsonAuditLogsDetailsChangedValueFactory (failOnUnknownProps ))
100
86
.registerTypeAdapter (LogsResponse .UserIDs .class , new GsonAuditLogsDetailsUserIDsFactory (failOnUnknownProps ));
101
- if (failOnUnknownProps || config .isLibraryMaintainerMode ()) {
102
- gsonBuilder = gsonBuilder .registerTypeAdapterFactory (new UnknownPropertyDetectionAdapterFactory ());
103
- }
104
- if (config .isPrettyResponseLoggingEnabled ()) {
105
- gsonBuilder = gsonBuilder .setPrettyPrinting ();
106
- }
107
- return gsonBuilder .create ();
108
87
}
109
88
}
0 commit comments