github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/before_store_event_args.go (about) 1 package ravendb 2 3 // BeforeStoreEventArgs describe arguments for "before store" listener 4 type BeforeStoreEventArgs struct { 5 documentMetadata *MetadataAsDictionary 6 7 Session *InMemoryDocumentSessionOperations 8 DocumentID string 9 Entity interface{} 10 } 11 12 func newBeforeStoreEventArgs(session *InMemoryDocumentSessionOperations, documentID string, entity interface{}) *BeforeStoreEventArgs { 13 return &BeforeStoreEventArgs{ 14 Session: session, 15 DocumentID: documentID, 16 Entity: entity, 17 } 18 } 19 20 func (a *BeforeStoreEventArgs) isMetadataAccessed() bool { 21 return a.documentMetadata != nil 22 } 23 24 // GetDocumentMetadata returns metadata for entity represented by this event 25 func (a *BeforeStoreEventArgs) GetDocumentMetadata() *MetadataAsDictionary { 26 if a.documentMetadata == nil { 27 a.documentMetadata, _ = a.Session.GetMetadataFor(a.Entity) 28 } 29 30 return a.documentMetadata 31 }