@@ -171,12 +171,18 @@ private MethodSpec buildFromAttributeValueMethod(TypeInfo typeInfo) {
171171 }
172172
173173 private void addConvenienceMethods (TypeSpec .Builder classBuilder , TypeInfo typeInfo ) {
174+ classBuilder .addMethod (buildFromDynamoDbItemMethod (typeInfo ));
175+ classBuilder .addMethod (buildFromDynamoDbItemsMethod (typeInfo ));
176+ classBuilder .addMethod (buildToDynamoDbItemMethod (typeInfo ));
177+ classBuilder .addMethod (buildToDynamoDbItemsMethod (typeInfo ));
178+ }
179+
180+ private MethodSpec buildFromDynamoDbItemMethod (TypeInfo typeInfo ) {
174181 String className = typeInfo .getClassName ();
175182 ClassName attributeValue = ClassName .get (AttributeValue .class );
176183 ClassName domainClass = ClassName .bestGuess (typeInfo .getFullyQualifiedClassName ());
177184
178- // fromDynamoDbItem method
179- MethodSpec fromDynamoDbItem = MethodSpec .methodBuilder ("fromDynamoDbItem" )
185+ return MethodSpec .methodBuilder ("fromDynamoDbItem" )
180186 .addModifiers (Modifier .PUBLIC )
181187 .returns (ParameterizedTypeName .get (ClassName .get ("java.util" , "Optional" ), domainClass ))
182188 .addParameter (ParameterizedTypeName .get (
@@ -195,9 +201,14 @@ private void addConvenienceMethods(TypeSpec.Builder classBuilder, TypeInfo typeI
195201 domainClass , attributeValue )
196202 .addStatement ("return $T.ofNullable(result)" , ClassName .get ("java.util" , "Optional" ))
197203 .build ();
204+ }
198205
199- // fromDynamoDbItems method
200- MethodSpec fromDynamoDbItems = MethodSpec .methodBuilder ("fromDynamoDbItems" )
206+ private MethodSpec buildFromDynamoDbItemsMethod (TypeInfo typeInfo ) {
207+ String className = typeInfo .getClassName ();
208+ ClassName attributeValue = ClassName .get (AttributeValue .class );
209+ ClassName domainClass = ClassName .bestGuess (typeInfo .getFullyQualifiedClassName ());
210+
211+ return MethodSpec .methodBuilder ("fromDynamoDbItems" )
201212 .addModifiers (Modifier .PUBLIC )
202213 .returns (ParameterizedTypeName .get (ClassName .get (List .class ), domainClass ))
203214 .addParameter (ParameterizedTypeName .get (
@@ -221,9 +232,14 @@ private void addConvenienceMethods(TypeSpec.Builder classBuilder, TypeInfo typeI
221232 ".collect($T.toList())$<$<$<$<" ,
222233 attributeValue , ClassName .get (Objects .class ), ClassName .get (Collectors .class ))
223234 .build ();
235+ }
236+
237+ private MethodSpec buildToDynamoDbItemMethod (TypeInfo typeInfo ) {
238+ String className = typeInfo .getClassName ();
239+ ClassName attributeValue = ClassName .get (AttributeValue .class );
240+ ClassName domainClass = ClassName .bestGuess (typeInfo .getFullyQualifiedClassName ());
224241
225- // toDynamoDbItem method
226- MethodSpec toDynamoDbItem = MethodSpec .methodBuilder ("toDynamoDbItem" )
242+ return MethodSpec .methodBuilder ("toDynamoDbItem" )
227243 .addModifiers (Modifier .PUBLIC )
228244 .returns (ParameterizedTypeName .get (
229245 ClassName .get (Map .class ),
@@ -241,9 +257,14 @@ private void addConvenienceMethods(TypeSpec.Builder classBuilder, TypeInfo typeI
241257 .addStatement ("$T av = toDynamoDbAttributeValue(object)" , attributeValue )
242258 .addStatement ("return av != null ? av.m() : null" )
243259 .build ();
260+ }
244261
245- // toDynamoDbItems method
246- MethodSpec toDynamoDbItems = MethodSpec .methodBuilder ("toDynamoDbItems" )
262+ private MethodSpec buildToDynamoDbItemsMethod (TypeInfo typeInfo ) {
263+ String className = typeInfo .getClassName ();
264+ ClassName attributeValue = ClassName .get (AttributeValue .class );
265+ ClassName domainClass = ClassName .bestGuess (typeInfo .getFullyQualifiedClassName ());
266+
267+ return MethodSpec .methodBuilder ("toDynamoDbItems" )
247268 .addModifiers (Modifier .PUBLIC )
248269 .returns (ParameterizedTypeName .get (
249270 ClassName .get (List .class ),
@@ -268,11 +289,6 @@ private void addConvenienceMethods(TypeSpec.Builder classBuilder, TypeInfo typeI
268289 ".collect($T.toList())$<$<$<$<$<" ,
269290 ClassName .get (Objects .class ), ClassName .get (Collectors .class ))
270291 .build ();
271-
272- classBuilder .addMethod (fromDynamoDbItem );
273- classBuilder .addMethod (fromDynamoDbItems );
274- classBuilder .addMethod (toDynamoDbItem );
275- classBuilder .addMethod (toDynamoDbItems );
276292 }
277293
278294 @ Override
0 commit comments