contentserver/server/repo/content/repoNode.go
2013-08-22 18:38:50 +02:00

49 lines
1.3 KiB
Go

package content
import (
"fmt"
"strings"
)
type RepoNode struct {
Id string `json:"id"`
MimeType string `json:"mimeType"`
Handler string `json:"handler"`
//Path string `json:"path"`
Regions map[string]string `json:"regions"`
URIs map[string]map[string]string `json:"uris"`
Names map[string]string `json:"names"`
Hidden bool `json:"hidden"` // hidden in tree
Groups []string `json:"groups"`
Data map[string]interface{} `json:"data"`
Index []string `json:"index"`
Nodes map[string]*RepoNode `json:"nodes"`
LinkIds []string `json:"linkIds"` // ids to link to
// published from - to
}
func (node *RepoNode) AddNode(name string, childNode *RepoNode) *RepoNode {
node.Nodes[name] = childNode
return node
}
func (node *RepoNode) GetName(language string) string {
return node.Names[language]
}
func (node *RepoNode) PrintNode(id string, level int) {
prefix := strings.Repeat(INDENT, level)
fmt.Printf("%s %s:\n", prefix, id)
for lang, name := range node.Names {
fmt.Printf("%s %s: %s\n", prefix+INDENT, lang, name)
}
for key, childNode := range node.Nodes {
childNode.PrintNode(key, level+1)
}
}
func NewRepoNode() *RepoNode {
node := new(RepoNode)
return node
}