aboutsummaryrefslogtreecommitdiffstats
path: root/src/kube2msb/vendor/github.com/emicklei/go-restful/swagger/api_declaration_list.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/kube2msb/vendor/github.com/emicklei/go-restful/swagger/api_declaration_list.go')
-rw-r--r--src/kube2msb/vendor/github.com/emicklei/go-restful/swagger/api_declaration_list.go64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/kube2msb/vendor/github.com/emicklei/go-restful/swagger/api_declaration_list.go b/src/kube2msb/vendor/github.com/emicklei/go-restful/swagger/api_declaration_list.go
new file mode 100644
index 0000000..9f4c369
--- /dev/null
+++ b/src/kube2msb/vendor/github.com/emicklei/go-restful/swagger/api_declaration_list.go
@@ -0,0 +1,64 @@
+package swagger
+
+// Copyright 2015 Ernest Micklei. All rights reserved.
+// Use of this source code is governed by a license
+// that can be found in the LICENSE file.
+
+import (
+ "bytes"
+ "encoding/json"
+)
+
+// ApiDeclarationList maintains an ordered list of ApiDeclaration.
+type ApiDeclarationList struct {
+ List []ApiDeclaration
+}
+
+// At returns the ApiDeclaration by its path unless absent, then ok is false
+func (l *ApiDeclarationList) At(path string) (a ApiDeclaration, ok bool) {
+ for _, each := range l.List {
+ if each.ResourcePath == path {
+ return each, true
+ }
+ }
+ return a, false
+}
+
+// Put adds or replaces a ApiDeclaration with this name
+func (l *ApiDeclarationList) Put(path string, a ApiDeclaration) {
+ // maybe replace existing
+ for i, each := range l.List {
+ if each.ResourcePath == path {
+ // replace
+ l.List[i] = a
+ return
+ }
+ }
+ // add
+ l.List = append(l.List, a)
+}
+
+// Do enumerates all the properties, each with its assigned name
+func (l *ApiDeclarationList) Do(block func(path string, decl ApiDeclaration)) {
+ for _, each := range l.List {
+ block(each.ResourcePath, each)
+ }
+}
+
+// MarshalJSON writes the ModelPropertyList as if it was a map[string]ModelProperty
+func (l ApiDeclarationList) MarshalJSON() ([]byte, error) {
+ var buf bytes.Buffer
+ encoder := json.NewEncoder(&buf)
+ buf.WriteString("{\n")
+ for i, each := range l.List {
+ buf.WriteString("\"")
+ buf.WriteString(each.ResourcePath)
+ buf.WriteString("\": ")
+ encoder.Encode(each)
+ if i < len(l.List)-1 {
+ buf.WriteString(",\n")
+ }
+ }
+ buf.WriteString("}")
+ return buf.Bytes(), nil
+}