github.com/TIBCOSoftware/flogo-lib@v0.5.9/core/activity/factory.go (about) 1 package activity 2 3 import "fmt" 4 5 type Factory func(config *Config) (Activity, error) 6 7 8 var ( 9 activityFactories = make(map[string]Factory) 10 ) 11 12 func RegisterFactory(ref string, f Factory) error { 13 14 if len(ref) == 0 { 15 return fmt.Errorf("'ref' must be specified when registering a activity factory") 16 } 17 18 if f == nil { 19 return fmt.Errorf("cannot register 'nil' activity factory") 20 } 21 22 if activityFactories[ref] != nil { 23 return fmt.Errorf("activity factory already registered for ref '%s'", ref) 24 } 25 26 activityFactories[ref] = f 27 28 return nil 29 } 30 31 func GetFactory(ref string) Factory { 32 return activityFactories[ref] 33 }