Files
obitools4/pkg/obitax/default_taxonomy.go
2025-01-27 17:12:45 +01:00

49 lines
982 B
Go

package obitax
import (
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault"
log "github.com/sirupsen/logrus"
)
var __defaut_taxonomy__ *Taxonomy
func (taxonomy *Taxonomy) SetAsDefault() {
log.Infof("Set as default taxonomy %s", taxonomy.Name())
__defaut_taxonomy__ = taxonomy
}
func (taxonomy *Taxonomy) OrDefault(panicOnNil bool) *Taxonomy {
if taxonomy == nil {
taxonomy = __defaut_taxonomy__
}
if panicOnNil && taxonomy == nil {
log.Panic("Cannot deal with nil taxonomy")
}
return taxonomy
}
func IsDefaultTaxonomyDefined() bool {
return __defaut_taxonomy__ != nil
}
func DefaultTaxonomy() *Taxonomy {
var err error
if __defaut_taxonomy__ == nil {
if obidefault.HasSelectedTaxonomy() {
__defaut_taxonomy__, err = LoadTaxonomy(
obidefault.SelectedTaxonomy(),
!obidefault.AreAlternativeNamesSelected(),
)
if err != nil {
log.Fatalf("Cannot load default taxonomy: %v", err)
}
}
}
return __defaut_taxonomy__
}