kopia lustrzana https://github.com/reiver/greatape
69 wiersze
3.1 KiB
Go
69 wiersze
3.1 KiB
Go
package contracts
|
|
|
|
import . "github.com/xeronith/diamante/contracts/security"
|
|
|
|
var DocumentPassThroughFilter = func(IDocument) bool { return true }
|
|
|
|
type (
|
|
Documents []IDocument
|
|
DocumentIterator func(IDocument)
|
|
DocumentCondition func(IDocument) bool
|
|
DocumentFilterPredicate func(IDocument) bool
|
|
DocumentMapPredicate func(IDocument) IDocument
|
|
DocumentCacheCallback func()
|
|
|
|
IDocument interface {
|
|
IObject
|
|
// Content returns 'Content' of this 'Document' instance.
|
|
Content() string
|
|
// UpdateContent directly updates 'Content' into persistent data store and
|
|
// refreshes the in-memory cache after successful update.
|
|
UpdateContent(content string, editor Identity)
|
|
// UpdateContentAtomic updates 'Content' into persistent data store through a transaction and
|
|
// refreshes the in-memory cache after successful commit.
|
|
UpdateContentAtomic(transaction ITransaction, content string, editor Identity)
|
|
}
|
|
|
|
IDocumentCollection interface {
|
|
Count() int
|
|
IsEmpty() bool
|
|
IsNotEmpty() bool
|
|
HasExactlyOneItem() bool
|
|
HasAtLeastOneItem() bool
|
|
First() IDocument
|
|
Append(document IDocument)
|
|
ForEach(DocumentIterator)
|
|
Reverse() IDocumentCollection
|
|
Array() Documents
|
|
}
|
|
|
|
IDocumentManager interface {
|
|
ISystemComponent
|
|
OnCacheChanged(DocumentCacheCallback)
|
|
Count() int
|
|
Exists(id int64) bool
|
|
ExistsWhich(condition DocumentCondition) bool
|
|
ListDocuments(pageIndex uint32, pageSize uint32, criteria string, editor Identity) IDocumentCollection
|
|
GetDocument(id int64, editor Identity) (IDocument, error)
|
|
AddDocument(content string, editor Identity) (IDocument, error)
|
|
AddDocumentWithCustomId(id int64, content string, editor Identity) (IDocument, error)
|
|
AddDocumentObject(document IDocument, editor Identity) (IDocument, error)
|
|
AddDocumentAtomic(transaction ITransaction, content string, editor Identity) (IDocument, error)
|
|
AddDocumentWithCustomIdAtomic(id int64, transaction ITransaction, content string, editor Identity) (IDocument, error)
|
|
AddDocumentObjectAtomic(transaction ITransaction, document IDocument, editor Identity) (IDocument, error)
|
|
Log(content string, source string, editor Identity, payload string)
|
|
UpdateDocument(id int64, content string, editor Identity) (IDocument, error)
|
|
UpdateDocumentObject(id int64, document IDocument, editor Identity) (IDocument, error)
|
|
UpdateDocumentAtomic(transaction ITransaction, id int64, content string, editor Identity) (IDocument, error)
|
|
UpdateDocumentObjectAtomic(transaction ITransaction, id int64, document IDocument, editor Identity) (IDocument, error)
|
|
AddOrUpdateDocumentObject(id int64, document IDocument, editor Identity) (IDocument, error)
|
|
AddOrUpdateDocumentObjectAtomic(transaction ITransaction, id int64, document IDocument, editor Identity) (IDocument, error)
|
|
RemoveDocument(id int64, editor Identity) (IDocument, error)
|
|
RemoveDocumentAtomic(transaction ITransaction, id int64, editor Identity) (IDocument, error)
|
|
Find(id int64) IDocument
|
|
ForEach(iterator DocumentIterator)
|
|
Filter(predicate DocumentFilterPredicate) IDocumentCollection
|
|
Map(predicate DocumentMapPredicate) IDocumentCollection
|
|
}
|
|
)
|