============================================================================= CLASS CREATION IMPLEMENTATION - MODIFIED FOR SCHEME C ============================================================================= validateClassBuilder validates ClassBuilder configuration - unchanged
(builder *ClassBuilder)
| 298 | |
| 299 | // validateClassBuilder validates ClassBuilder configuration - unchanged |
| 300 | func validateClassBuilder(builder *ClassBuilder) error { |
| 301 | if builder == nil { |
| 302 | return errors.New("class builder is required") |
| 303 | } |
| 304 | if builder.name == "" { |
| 305 | return errors.New("class name is required") |
| 306 | } |
| 307 | if builder.constructor == nil { |
| 308 | return errors.New("constructor function is required") |
| 309 | } |
| 310 | for _, method := range builder.methods { |
| 311 | if method.Func == nil { |
| 312 | return fmt.Errorf("method function is required: %s", method.Name) |
| 313 | } |
| 314 | } |
| 315 | for _, accessor := range builder.accessors { |
| 316 | if accessor.Getter == nil && accessor.Setter == nil { |
| 317 | return fmt.Errorf("accessor requires getter or setter: %s", accessor.Name) |
| 318 | } |
| 319 | } |
| 320 | for _, property := range builder.properties { |
| 321 | if property.Spec == nil { |
| 322 | return fmt.Errorf("property value is required: %s", property.Name) |
| 323 | } |
| 324 | } |
| 325 | return nil |
| 326 | } |
| 327 | |
| 328 | func cloneClassBuilder(builder *ClassBuilder) *ClassBuilder { |
| 329 | if builder == nil { |