-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
-
67
-
68
-
69
-
70
-
71
-
72
-
73
-
74
-
75
-
76
-
77
-
78
-
79
-
80
-
81
-
82
package activitypub
var validCollectionTypes = [...]string{CollectionType, OrderedCollectionType}
type Page ObjectOrLink
type Collection struct {
*Object
// A non-negative integer specifying the total number of objects contained by the logical view of the collection.
// This number might not reflect the actual number of items serialized within the Collection object instance.
TotalItems uint `jsonld:"totalItems"`
// Identifies the items contained in a collection. The items might be ordered or unordered.
Items ItemCollection `jsonld:"items"`
}
type OrderedCollection struct {
*Object
// A non-negative integer specifying the total number of objects contained by the logical view of the collection.
// This number might not reflect the actual number of items serialized within the Collection object instance.
TotalItems uint `jsonld:"totalItems"`
// Identifies the items contained in a collection. The items might be ordered or unordered.
OrderedItems ItemCollection `jsonld:"orderedItems"`
}
type CollectionPage struct {
PartOf *Collection
// In a paged Collection, indicates the page that contains the most recently updated member items.
Current Page `jsonld:"current"`
// In a paged Collection, indicates the furthest preceeding page of items in the collection.
First Page `jsonld:"first"`
// In a paged Collection, indicates the furthest proceeding page of the collection.
Last Page `jsonld:"last"`
// In a paged Collection, indicates the next page of items.
Next Page `jsonld:"next"`
// In a paged Collection, identifies the previous page of items.
Prev Page `jsonld:"prev"`
}
type OrderedCollectionPage struct {
PartOf *OrderedCollection
// In a paged Collection, indicates the page that contains the most recently updated member items.
Current Page `jsonld:"current"`
// In a paged Collection, indicates the furthest preceeding page of items in the collection.
First Page `jsonld:"first"`
// In a paged Collection, indicates the furthest proceeding page of the collection.
Last Page `jsonld:"last"`
// In a paged Collection, indicates the next page of items.
Next Page `jsonld:"next"`
// In a paged Collection, identifies the previous page of items.
Prev Page `jsonld:"prev"`
// A non-negative integer value identifying the relative position within the logical view of a strictly ordered collection.
StartIndex uint `jsonld:"startIndex"`
}
func ValidCollectionType(_type string) bool {
for _, v := range validCollectionTypes {
if v == _type {
return true
}
}
return false
}
func CollectionNew(id ObjectId) *Collection {
o := ObjectNew(id, CollectionType)
return &Collection{Object: o}
}
func OrderedCollectionNew(id ObjectId) *OrderedCollection {
o := ObjectNew(id, OrderedCollectionType)
return &OrderedCollection{Object: o}
}
func CollectionPageNew(parent *Collection) *CollectionPage {
return &CollectionPage{PartOf: parent}
}
func OrderedCollectionPageNew(parent *OrderedCollection) *OrderedCollectionPage {
return &OrderedCollectionPage{PartOf: parent}
}