mirror of
				https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
				synced 2025-10-30 09:35:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package providers
 | |
| 
 | |
| import (
 | |
| 	"encoding/xml"
 | |
| 	"fmt"
 | |
| )
 | |
| 
 | |
| type AgentProvider struct {
 | |
| 	XMLProvider[Agents]
 | |
| }
 | |
| 
 | |
| type Agent struct {
 | |
| 	XMLName  xml.Name `xml:"akteur"`
 | |
| 	Names    []string `xml:"name"`
 | |
| 	SortName string   `xml:"sortiername"`
 | |
| 	Life     string   `xml:"lebensdaten"`
 | |
| 	GND      string   `xml:"gnd"`
 | |
| 	Org      bool     `xml:"org,attr"`
 | |
| 	Identifier
 | |
| 	AnnotationNote
 | |
| }
 | |
| 
 | |
| type Agents struct {
 | |
| 	XMLName xml.Name `xml:"akteure"`
 | |
| 	Agents  []Agent  `xml:"akteur"`
 | |
| }
 | |
| 
 | |
| func (a Agents) String() string {
 | |
| 	var res []string
 | |
| 	for _, agent := range a.Agents {
 | |
| 		res = append(res, agent.String())
 | |
| 	}
 | |
| 
 | |
| 	return fmt.Sprintf("Agents: %v", res)
 | |
| }
 | |
| 
 | |
| func (a Agents) Append(data Agents) Agents {
 | |
| 	a.Agents = append(a.Agents, data.Agents...)
 | |
| 	return a
 | |
| }
 | |
| 
 | |
| func (a *Agent) String() string {
 | |
| 	return fmt.Sprintf("ID: %s\nNames: %v\nSortName: %s\nLife: %s\nGND: %s\nAnnotations: %v\nNotes: %v\n", a.ID, a.Names, a.SortName, a.Life, a.GND, a.Annotations, a.Notes)
 | |
| }
 | |
| 
 | |
| func NewAgentProvider(paths []string) *AgentProvider {
 | |
| 	return &AgentProvider{XMLProvider: XMLProvider[Agents]{paths: paths}}
 | |
| }
 | 
