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  }