@@ -258,6 +258,9 @@ func SetResource(
258258 out += fmt .Sprintf (
259259 "%sif %s != nil {\n " , indent , sourceAdaptedVarName ,
260260 )
261+ qualifiedTargetVar := fmt .Sprintf (
262+ "%s.%s" , targetAdaptedVarName , f .Names .Camel ,
263+ )
261264
262265 switch sourceMemberShape .Type {
263266 case "list" , "structure" , "map" :
@@ -279,19 +282,15 @@ func SetResource(
279282 indentLevel + 1 ,
280283 )
281284 out += setResourceForScalar (
282- cfg , r ,
283- f .Names .Camel ,
284- targetAdaptedVarName ,
285+ qualifiedTargetVar ,
285286 memberVarName ,
286287 sourceMemberShapeRef ,
287288 indentLevel + 1 ,
288289 )
289290 }
290291 default :
291292 out += setResourceForScalar (
292- cfg , r ,
293- f .Names .Camel ,
294- targetAdaptedVarName ,
293+ qualifiedTargetVar ,
295294 sourceAdaptedVarName ,
296295 sourceMemberShapeRef ,
297296 indentLevel + 1 ,
@@ -514,6 +513,11 @@ func setResourceReadMany(
514513 out += fmt .Sprintf (
515514 "%s\t if %s != nil {\n " , indent , sourceAdaptedVarName ,
516515 )
516+
517+ //ex: r.ko.Spec.CacheClusterID
518+ qualifiedTargetVar := fmt .Sprintf (
519+ "%s.%s" , targetAdaptedVarName , f .Names .Camel ,
520+ )
517521 switch sourceMemberShape .Type {
518522 case "list" , "structure" , "map" :
519523 {
@@ -534,9 +538,7 @@ func setResourceReadMany(
534538 indentLevel + 2 ,
535539 )
536540 out += setResourceForScalar (
537- cfg , r ,
538- f .Names .Camel ,
539- targetAdaptedVarName ,
541+ qualifiedTargetVar ,
540542 memberVarName ,
541543 sourceMemberShapeRef ,
542544 indentLevel + 2 ,
@@ -574,9 +576,7 @@ func setResourceReadMany(
574576 }
575577 // r.ko.Spec.CacheClusterID = elem.CacheClusterId
576578 out += setResourceForScalar (
577- cfg , r ,
578- f .Names .Camel ,
579- targetAdaptedVarName ,
579+ qualifiedTargetVar ,
580580 sourceAdaptedVarName ,
581581 sourceMemberShapeRef ,
582582 indentLevel + 2 ,
@@ -1008,10 +1008,10 @@ func setResourceIdentifierPrimaryIdentifier(
10081008 indentLevel int ,
10091009) string {
10101010 adaptedMemberPath := fmt .Sprintf ("&%s.NameOrID" , sourceVarName )
1011+ qualifiedTargetVar := fmt .Sprintf ("%s.%s" , targetVarName , targetField .Path )
1012+
10111013 return setResourceForScalar (
1012- cfg , r ,
1013- targetField .Path ,
1014- targetVarName ,
1014+ qualifiedTargetVar ,
10151015 adaptedMemberPath ,
10161016 targetField .ShapeRef ,
10171017 indentLevel ,
@@ -1052,10 +1052,9 @@ func setResourceIdentifierAdditionalKey(
10521052 // throwing an error accessible to the user
10531053 additionalKeyOut += fmt .Sprintf ("%s%s, %sok := %s\n " , indent , fieldIndexName , fieldIndexName , sourceAdaptedVarName )
10541054 additionalKeyOut += fmt .Sprintf ("%sif %sok {\n " , indent , fieldIndexName )
1055+ qualifiedTargetVar := fmt .Sprintf ("%s.%s" , targetVarName , targetField .Path )
10551056 additionalKeyOut += setResourceForScalar (
1056- cfg , r ,
1057- targetField .Path ,
1058- targetVarName ,
1057+ qualifiedTargetVar ,
10591058 fmt .Sprintf ("&%s" , fieldIndexName ),
10601059 targetField .ShapeRef ,
10611060 indentLevel + 1 ,
@@ -1117,9 +1116,7 @@ func setResourceForContainer(
11171116 )
11181117 default :
11191118 return setResourceForScalar (
1120- cfg , r ,
1121- targetFieldName ,
1122- targetVarName ,
1119+ fmt .Sprintf ("%s.%s" , targetFieldName , targetVarName ),
11231120 sourceVarName ,
11241121 sourceShapeRef ,
11251122 indentLevel ,
@@ -1162,6 +1159,9 @@ func SetResourceForStruct(
11621159 out += fmt .Sprintf (
11631160 "%sif %s != nil {\n " , indent , sourceAdaptedVarName ,
11641161 )
1162+ qualifiedTargetVar := fmt .Sprintf (
1163+ "%s.%s" , targetVarName , cleanNames .Camel ,
1164+ )
11651165 switch memberShape .Type {
11661166 case "list" , "structure" , "map" :
11671167 {
@@ -1181,19 +1181,15 @@ func SetResourceForStruct(
11811181 indentLevel + 1 ,
11821182 )
11831183 out += setResourceForScalar (
1184- cfg , r ,
1185- cleanNames .Camel ,
1186- targetVarName ,
1184+ qualifiedTargetVar ,
11871185 memberVarName ,
11881186 memberShapeRef ,
11891187 indentLevel + 1 ,
11901188 )
11911189 }
11921190 default :
11931191 out += setResourceForScalar (
1194- cfg , r ,
1195- cleanNames .Camel ,
1196- targetVarName ,
1192+ qualifiedTargetVar ,
11971193 sourceAdaptedVarName ,
11981194 memberShapeRef ,
11991195 indentLevel + 1 ,
@@ -1334,30 +1330,24 @@ func setResourceForMap(
13341330// value to a source variable when the type of the source variable is a scalar
13351331// type (not a map, slice or struct).
13361332func setResourceForScalar (
1337- cfg * ackgenconfig.Config ,
1338- r * model.CRD ,
1339- // The name of the Input SDK Shape member we're outputting for
1340- targetFieldName string ,
1341- // The variable name that we want to set a value to
1342- targetVarName string ,
1333+ // The fully-qualified variable that will be set to sourceVar
1334+ targetVar string ,
13431335 // The struct or struct field that we access our source value from
1344- sourceVarName string ,
1336+ sourceVar string ,
13451337 shapeRef * awssdkmodel.ShapeRef ,
13461338 indentLevel int ,
13471339) string {
13481340 out := ""
13491341 indent := strings .Repeat ("\t " , indentLevel )
1350- setTo := sourceVarName
1342+ setTo := sourceVar
13511343 shape := shapeRef .Shape
13521344 if shape .Type == "timestamp" {
1353- setTo = "&metav1.Time{*" + sourceVarName + "}"
1345+ setTo = "&metav1.Time{*" + sourceVar + "}"
13541346 }
1355- targetVarPath := targetVarName
1356- if targetFieldName != "" {
1357- targetVarPath += "." + targetFieldName
1358- } else {
1347+ if strings .HasPrefix (targetVar , "." ) {
1348+ targetVar = targetVar [1 :]
13591349 setTo = "*" + setTo
13601350 }
1361- out += fmt .Sprintf ("%s%s = %s\n " , indent , targetVarPath , setTo )
1351+ out += fmt .Sprintf ("%s%s = %s\n " , indent , targetVar , setTo )
13621352 return out
13631353}
0 commit comments