resource/resolver/known_reference_resolver.go (23 lines of code) (raw):
package resolver
import (
"github.com/azure/armstrong/dependency"
"github.com/azure/armstrong/resource/types"
)
var _ ReferenceResolver = &KnownReferenceResolver{}
type KnownReferenceResolver struct {
knownPatterns map[string]types.Reference
}
func (r KnownReferenceResolver) Resolve(pattern dependency.Pattern) (*ResolvedResult, error) {
ref, ok := r.knownPatterns[pattern.String()]
if !ok || !ref.IsKnown() {
return nil, nil
}
return &ResolvedResult{
Reference: &ref,
}, nil
}
func NewKnownReferenceResolver(knownPatterns map[string]types.Reference) KnownReferenceResolver {
return KnownReferenceResolver{
knownPatterns: knownPatterns,
}
}