33 lines
538 B
Go
33 lines
538 B
Go
package facades
|
|
|
|
import (
|
|
"fmt"
|
|
"plcopenxmlbuilder/builders"
|
|
"schema"
|
|
)
|
|
|
|
type GenerateType int
|
|
|
|
const (
|
|
PLC GenerateType = iota
|
|
Application
|
|
Files
|
|
)
|
|
|
|
type Builder interface {
|
|
Marshal(s *schema.Project) ([]byte, error)
|
|
}
|
|
|
|
func NewBuilder(platform string, generateType GenerateType) (Builder, error) {
|
|
var builder Builder
|
|
|
|
switch platform {
|
|
case "twincat3":
|
|
builder = builders.NewTwincat3Builder()
|
|
default:
|
|
return nil, fmt.Errorf("no builder for %s found", platform)
|
|
}
|
|
|
|
return builder, nil
|
|
}
|