MCPcopy Create free account
hub / github.com/Autodesk/AutomaticComponentToolkit / buildGoClass

Function buildGoClass

Source/buildbindinggo.go:469–504  ·  view source on GitHub ↗
(component ComponentDefinition, class ComponentDefinitionClass, w LanguageWriter, implw LanguageWriter, NameSpace string, classdefinitions* []string)

Source from the content-addressed store, hash-verified

467
468
469func buildGoClass(component ComponentDefinition, class ComponentDefinitionClass, w LanguageWriter, implw LanguageWriter, NameSpace string, classdefinitions* []string) (error) {
470 *classdefinitions = append(*classdefinitions, fmt.Sprintf(""))
471 *classdefinitions = append(*classdefinitions, fmt.Sprintf("/*************************************************************************************************************************"))
472 *classdefinitions = append(*classdefinitions, fmt.Sprintf("Class definition %s%s", NameSpace, class.ClassName))
473 *classdefinitions = append(*classdefinitions, fmt.Sprintf("**************************************************************************************************************************/"))
474 *classdefinitions = append(*classdefinitions, fmt.Sprintf(""))
475 *classdefinitions = append(*classdefinitions, fmt.Sprintf("type %s%s struct {", NameSpace, class.ClassName))
476
477 if (component.Global.BaseClassName == class.ClassName) {
478 *classdefinitions = append(*classdefinitions, fmt.Sprintf(" Interface %sGoInterface", NameSpace))
479 *classdefinitions = append(*classdefinitions, fmt.Sprintf(" Handle %sHandle", NameSpace))
480 } else {
481 if len(class.ParentClass)>0 {
482 *classdefinitions = append(*classdefinitions, fmt.Sprintf(" %s%s", NameSpace, class.ParentClass))
483 } else {
484 *classdefinitions = append(*classdefinitions, fmt.Sprintf(" %s%s", NameSpace, component.Global.BaseClassName))
485 }
486 }
487
488 *classdefinitions = append(*classdefinitions, fmt.Sprintf("}"))
489 *classdefinitions = append(*classdefinitions, fmt.Sprintf(""))
490 *classdefinitions = append(*classdefinitions, fmt.Sprintf("func (instance *%s%s) Close() (error) {", NameSpace, class.ClassName))
491 *classdefinitions = append(*classdefinitions, fmt.Sprintf(" return instance.Handle.Close()"))
492 *classdefinitions = append(*classdefinitions, fmt.Sprintf("}"))
493 *classdefinitions = append(*classdefinitions, fmt.Sprintf(""))
494
495 for j := 0; j < len(class.Methods); j++ {
496 method := class.Methods[j]
497
498 err := writeGoMethod(method, w, implw, NameSpace, class.ClassName, false, classdefinitions)
499 if err != nil {
500 return err
501 }
502 }
503 return nil
504}
505
506func buildGoWrapper(component ComponentDefinition, w LanguageWriter, implw LanguageWriter) error {
507 NameSpace := component.NameSpace

Callers 1

buildGoWrapperFunction · 0.85

Calls 1

writeGoMethodFunction · 0.85

Tested by

no test coverage detected