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  }