2024-11-16 10:01:49 +01:00
|
|
|
package obitax
|
|
|
|
|
2025-01-27 17:12:45 +01:00
|
|
|
import (
|
|
|
|
"git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obidefault"
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
|
|
)
|
2024-11-16 10:01:49 +01:00
|
|
|
|
|
|
|
var __defaut_taxonomy__ *Taxonomy
|
|
|
|
|
|
|
|
func (taxonomy *Taxonomy) SetAsDefault() {
|
2024-11-29 18:15:03 +01:00
|
|
|
log.Infof("Set as default taxonomy %s", taxonomy.Name())
|
2024-11-16 10:01:49 +01:00
|
|
|
__defaut_taxonomy__ = taxonomy
|
|
|
|
}
|
|
|
|
|
|
|
|
func (taxonomy *Taxonomy) OrDefault(panicOnNil bool) *Taxonomy {
|
|
|
|
if taxonomy == nil {
|
2024-11-29 18:15:03 +01:00
|
|
|
taxonomy = __defaut_taxonomy__
|
2024-11-16 10:01:49 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
if panicOnNil && taxonomy == nil {
|
|
|
|
log.Panic("Cannot deal with nil taxonomy")
|
|
|
|
}
|
|
|
|
|
|
|
|
return taxonomy
|
|
|
|
}
|
|
|
|
|
|
|
|
func IsDefaultTaxonomyDefined() bool {
|
|
|
|
return __defaut_taxonomy__ != nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func DefaultTaxonomy() *Taxonomy {
|
2025-01-27 17:12:45 +01:00
|
|
|
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)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-11-16 10:01:49 +01:00
|
|
|
return __defaut_taxonomy__
|
|
|
|
}
|