@@ -108,6 +108,11 @@ func (b *BuilderPatternGenerator) GenerateType(c *generator.Context, t *types.Ty
108108
109109 sw := generator .NewSnippetWriter (w , c , "$" , "$" )
110110
111+ if t .IsPrimitive () {
112+ sw .Do (snippets .GenerateEnumSetter (t , tags .GetEnumOptions (t )))
113+ return sw .Error ()
114+ }
115+
111116 if hasObjectMetaEmbedded (t ) {
112117 parentTypeOfObjectMeta := getParentOfEmbeddedType (t , ObjectMeta )
113118 objectMetaType := getMemberTypeFromType (parentTypeOfObjectMeta , ObjectMeta )
@@ -172,6 +177,10 @@ func (b *BuilderPatternGenerator) generateSettersForType(sw *generator.SnippetWr
172177 if b .isTypeEnabled (pointerType ) {
173178 sw .Do (setter .GenerateSetterForEmbeddedPointer (m , b .getWrapperType (pointerType )))
174179 }
180+ case types .Alias :
181+ if b .isTypePrimitiveEnabled (m ) {
182+ sw .Do (setter .GenerateSetterForAliasPointerPrimitive (m , m .Type ))
183+ }
175184 default :
176185 sw .Do (setter .GenerateSetterForType (m ))
177186 }
@@ -207,6 +216,12 @@ func (b *BuilderPatternGenerator) isTypeEnabled(t *types.Type) bool {
207216 return exists
208217}
209218
219+ func (b * BuilderPatternGenerator ) isTypePrimitiveEnabled (t types.Member ) bool {
220+ typeName := t .Name
221+ _ , exists := b .enabledTypes [typeName ]
222+ return exists
223+ }
224+
210225func (b * BuilderPatternGenerator ) getWrapperType (t * types.Type ) * types.Type {
211226 typeName := t .Name .String ()
212227 if parent , ok := b .enabledTypes [typeName ]; ok {
@@ -257,16 +272,28 @@ func (b *BuilderPatternGenerator) Filter(c *generator.Context, t *types.Type) bo
257272 return false
258273 }
259274
275+ b .enablePrimitiveType (t )
276+
260277 for _ , m := range t .Members {
261- if m .Embedded {
262- childType := m .Type .Name .String ()
263- b .enabledTypes [childType ] = t
264- }
278+ b .enableEmbededMemberType (m , t )
265279 }
266280
267281 return true
268282}
269283
284+ func (b * BuilderPatternGenerator ) enableEmbededMemberType (m types.Member , t * types.Type ) {
285+ if m .Embedded {
286+ childType := m .Type .Name .String ()
287+ b .enabledTypes [childType ] = t
288+ }
289+ }
290+
291+ func (b * BuilderPatternGenerator ) enablePrimitiveType (t * types.Type ) {
292+ if t .IsPrimitive () {
293+ b .enabledTypes [t .Name .Name ] = t
294+ }
295+ }
296+
270297func (b * BuilderPatternGenerator ) Namers (c * generator.Context ) namer.NameSystems {
271298 return namer.NameSystems {
272299 "raw" : namer .NewRawNamer (b .pkgToBuild .Path , b .imports ),
0 commit comments