forked from project-flogo/core
/
alias.go
44 lines (32 loc) · 789 Bytes
/
alias.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package support
import "fmt"
var aliases = make(map[string]map[string]string)
func RegisterAlias(contribType, alias, ref string) error {
aliasToRefMap, exists := aliases[contribType]
if !exists {
aliasToRefMap = make(map[string]string)
aliases[contribType] = aliasToRefMap
}
if _, exists := aliasToRefMap[alias]; exists {
return fmt.Errorf("alias '%s' for %s already registered", alias, contribType)
}
aliasToRefMap[alias] = ref
return nil
}
func GetAliasRef(contribType, alias string) (string, bool) {
if alias == "" {
return "", false
}
if alias[0] == '#' {
alias = alias[1:]
}
aliasToRefMap, exists := aliases[contribType]
if !exists {
return "", false
}
ref, exists := aliasToRefMap[alias]
if !exists {
return "", false
}
return ref, true
}