github.com/TIBCOSoftware/flogo-lib@v0.5.9/core/trigger/registry.go (about)

     1  package trigger
     2  
     3  import (
     4  	"fmt"
     5  )
     6  
     7  var (
     8  	triggerFactories = make(map[string]Factory)
     9  )
    10  
    11  func RegisterFactory(ref string, f Factory) error {
    12  
    13  	if len(ref) == 0 {
    14  		return fmt.Errorf("'ref' must be specified when registering a trigger factory")
    15  	}
    16  
    17  	if f == nil {
    18  		return fmt.Errorf("cannot register 'nil' trigger factory")
    19  	}
    20  
    21  	if triggerFactories[ref] != nil {
    22  		return fmt.Errorf("trigger factory already registered for ref '%s'", ref)
    23  	}
    24  
    25  	triggerFactories[ref] = f
    26  
    27  	return nil
    28  }
    29  
    30  func GetFactory(ref string) Factory {
    31  	return triggerFactories[ref]
    32  }
    33  
    34  func Factories() map[string]Factory {
    35  	//todo return copy
    36  	return triggerFactories
    37  }