Package io.ebeanservice.docstore.api
Interface DocStoreBeanAdapter<T>
-
- All Superinterfaces:
BeanDocType<T>
- All Known Implementing Classes:
DocStoreBeanBaseAdapter
,NoneDocStoreBeanAdapter
public interface DocStoreBeanAdapter<T> extends BeanDocType<T>
Doc store specific adapter to process doc store events for a given bean type.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
applyPath(Query<T> query)
Apply the document structure to the query so that it fetches the required properties to build the document (typically in JSON form).DocumentMapping
createDocMapping()
Create the document mapping.void
deleteById(Object idValue, DocStoreUpdateContext txn)
Process a delete by id of a given document.String
getIndexName()
Return the index name for this bean type.String
getIndexType()
Return the index type for this bean type.io.ebean.annotation.DocStoreMode
getMode(PersistRequest.Type persistType, io.ebean.annotation.DocStoreMode txnMode)
Determine and return how this persist type will be processed given the transaction mode.String
getQueueId()
Return the unique queueId for this bean type.boolean
hasEmbeddedInvalidation()
Return true if this bean type as embedded invalidate registered.void
index(Object idValue, T entityBean, DocStoreUpdateContext txn)
Process an index event which is effectively an insert or update (or put).void
insert(Object idValue, PersistRequestBean<T> persistRequest, DocStoreUpdateContext txn)
Process an insert persist request.boolean
isMapped()
Return true if this type is mapped for doc storage.String
rawProperty(String property)
Return an un-analysed property to use instead of the given property.void
registerInvalidationPath(String queueId, String path, Set<String> properties)
Register invalidation events for embedded/nested documents the given path and properties.void
registerPaths()
In deployment phase read the embedded/nested document information.void
update(Object idValue, PersistRequestBean<T> persistRequest, DocStoreUpdateContext txn)
Process an update persist request.void
updateEmbedded(PersistRequestBean<T> request, DocStoreUpdates docStoreUpdates)
Process the persist request adding any embedded/nested document invalidation to the docStoreUpdates.void
updateEmbedded(Object idValue, String embeddedProperty, String embeddedRawContent, DocStoreUpdateContext txn)
Process an update of an embedded document.-
Methods inherited from interface io.ebean.plugin.BeanDocType
getEmbedded, getEmbeddedManyRoot
-
-
-
-
Method Detail
-
registerPaths
void registerPaths()
In deployment phase read the embedded/nested document information.
-
registerInvalidationPath
void registerInvalidationPath(String queueId, String path, Set<String> properties)
Register invalidation events for embedded/nested documents the given path and properties.
-
applyPath
void applyPath(Query<T> query)
Apply the document structure to the query so that it fetches the required properties to build the document (typically in JSON form).- Specified by:
applyPath
in interfaceBeanDocType<T>
-
isMapped
boolean isMapped()
Return true if this type is mapped for doc storage.
-
getQueueId
String getQueueId()
Return the unique queueId for this bean type. This is expected to be a relatively short unique string (rather than a fully qualified class name).
-
getMode
io.ebean.annotation.DocStoreMode getMode(PersistRequest.Type persistType, io.ebean.annotation.DocStoreMode txnMode)
Determine and return how this persist type will be processed given the transaction mode.Some transactions (like bulk updates) might specifically turn off indexing for example.
-
getIndexType
String getIndexType()
Return the index type for this bean type.- Specified by:
getIndexType
in interfaceBeanDocType<T>
-
getIndexName
String getIndexName()
Return the index name for this bean type.- Specified by:
getIndexName
in interfaceBeanDocType<T>
-
deleteById
void deleteById(Object idValue, DocStoreUpdateContext txn) throws IOException
Process a delete by id of a given document.- Specified by:
deleteById
in interfaceBeanDocType<T>
- Throws:
IOException
-
index
void index(Object idValue, T entityBean, DocStoreUpdateContext txn) throws IOException
Process an index event which is effectively an insert or update (or put).- Specified by:
index
in interfaceBeanDocType<T>
- Throws:
IOException
-
insert
void insert(Object idValue, PersistRequestBean<T> persistRequest, DocStoreUpdateContext txn) throws IOException
Process an insert persist request.- Throws:
IOException
-
update
void update(Object idValue, PersistRequestBean<T> persistRequest, DocStoreUpdateContext txn) throws IOException
Process an update persist request.- Throws:
IOException
-
updateEmbedded
void updateEmbedded(PersistRequestBean<T> request, DocStoreUpdates docStoreUpdates)
Process the persist request adding any embedded/nested document invalidation to the docStoreUpdates.This is expected to check the specific properties to see what other documents they are nested in and register invalidation events based on that.
- Parameters:
request
- The persist requestdocStoreUpdates
- Invalidation events are registered to this docStoreUpdates
-
updateEmbedded
void updateEmbedded(Object idValue, String embeddedProperty, String embeddedRawContent, DocStoreUpdateContext txn) throws IOException
Process an update of an embedded document.- Specified by:
updateEmbedded
in interfaceBeanDocType<T>
- Parameters:
idValue
- the id of the bean effected by an embedded document updateembeddedProperty
- the path of the propertyembeddedRawContent
- the embedded content for this property in JSON formtxn
- the doc store transaction to use to process the update- Throws:
IOException
-
createDocMapping
DocumentMapping createDocMapping()
Create the document mapping.
-
rawProperty
String rawProperty(String property)
Return an un-analysed property to use instead of the given property.For analysed properties that we want to sort on we will map the property to an additional 'raw' property that we can use for sorting etc.
- Specified by:
rawProperty
in interfaceBeanDocType<T>
-
hasEmbeddedInvalidation
boolean hasEmbeddedInvalidation()
Return true if this bean type as embedded invalidate registered.
-
-