github.com/awesome-flow/flow@v0.0.3-0.20190918184116-508d75d68a2c/pkg/cfg/scalar_provider.go (about)

     1  package cfg
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/awesome-flow/flow/pkg/types"
     7  )
     8  
     9  type ScalarConfigProvider struct {
    10  	weight int
    11  	name   string
    12  	kv     *types.KeyValue
    13  }
    14  
    15  var _ Provider = (*ScalarConfigProvider)(nil)
    16  
    17  func NewScalarConfigProvider(kv *types.KeyValue, repo *Repository, weight int) (*ScalarConfigProvider, error) {
    18  	p := &ScalarConfigProvider{
    19  		weight: weight,
    20  		kv:     kv,
    21  		name:   fmt.Sprintf("scalar-provider-%s", kv.Key),
    22  	}
    23  	repo.RegisterKey(kv.Key, p)
    24  
    25  	return p, nil
    26  }
    27  
    28  func (s *ScalarConfigProvider) Name() string {
    29  	return s.name
    30  }
    31  
    32  func (s *ScalarConfigProvider) Depends() []string {
    33  	return []string{}
    34  }
    35  
    36  func (*ScalarConfigProvider) SetUp(repo *Repository) error {
    37  	return nil
    38  }
    39  
    40  func (*ScalarConfigProvider) TearDown(*Repository) error {
    41  	return nil
    42  }
    43  
    44  func (s *ScalarConfigProvider) Get(key types.Key) (*types.KeyValue, bool) {
    45  	if key.Equals(s.kv.Key) {
    46  		return s.kv, true
    47  	}
    48  
    49  	return nil, false
    50  }
    51  
    52  func (s *ScalarConfigProvider) Weight() int {
    53  	return s.weight
    54  }