Interface DocStoreBeanAdapter<T>

All Superinterfaces:
BeanDocType<T>
All Known Implementing Classes:
DocStoreBeanBaseAdapter

public interface DocStoreBeanAdapter<T> extends BeanDocType<T>
Doc store specific adapter to process doc store events for a given bean type.
  • Method Summary

    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).
    Create the document mapping.
    void
    Process a delete by id of a given document.
    boolean
    Return true if this bean type as embedded invalidate registered.
    void
    index(Object idValue, T entityBean, DocUpdateContext txn)
    Process an index event which is effectively an insert or update (or put).
    Return the index name for this bean type.
    Return the index type for this bean type.
    void
    insert(Object idValue, io.ebeaninternal.server.core.PersistRequestBean<T> persistRequest, DocStoreUpdateContext txn)
    Process an insert persist request.
    boolean
    Return true if this type is mapped for doc storage.
    io.ebean.annotation.DocStoreMode
    mode(io.ebeaninternal.server.core.PersistRequest.Type persistType, io.ebean.annotation.DocStoreMode txnMode)
    Determine and return how this persist type will be processed given the transaction mode.
    Return the unique queueId for this bean type.
    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
    In deployment phase read the embedded/nested document information.
    void
    update(Object idValue, io.ebeaninternal.server.core.PersistRequestBean<T> persistRequest, DocStoreUpdateContext txn)
    Process an update persist request.
    void
    updateEmbedded(io.ebeaninternal.server.core.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, DocUpdateContext txn)
    Process an update of an embedded document.

    Methods inherited from interface io.ebean.plugin.BeanDocType

    embedded, embeddedManyRoot
  • Method Details

    • 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 interface BeanDocType<T>
    • mapped

      boolean mapped()
      Return true if this type is mapped for doc storage.
    • queueId

      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).
    • mode

      io.ebean.annotation.DocStoreMode mode(io.ebeaninternal.server.core.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.

    • indexType

      Return the index type for this bean type.
      Specified by:
      indexType in interface BeanDocType<T>
    • indexName

      Return the index name for this bean type.
      Specified by:
      indexName in interface BeanDocType<T>
    • deleteById

      void deleteById(Object idValue, DocUpdateContext txn) throws IOException
      Process a delete by id of a given document.
      Specified by:
      deleteById in interface BeanDocType<T>
      Throws:
      IOException
    • index

      void index(Object idValue, T entityBean, DocUpdateContext txn) throws IOException
      Process an index event which is effectively an insert or update (or put).
      Specified by:
      index in interface BeanDocType<T>
      Throws:
      IOException
    • insert

      void insert(Object idValue, io.ebeaninternal.server.core.PersistRequestBean<T> persistRequest, DocStoreUpdateContext txn) throws IOException
      Process an insert persist request.
      Throws:
      IOException
    • update

      void update(Object idValue, io.ebeaninternal.server.core.PersistRequestBean<T> persistRequest, DocStoreUpdateContext txn) throws IOException
      Process an update persist request.
      Throws:
      IOException
    • updateEmbedded

      void updateEmbedded(io.ebeaninternal.server.core.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 request
      docStoreUpdates - Invalidation events are registered to this docStoreUpdates
    • updateEmbedded

      void updateEmbedded(Object idValue, String embeddedProperty, String embeddedRawContent, DocUpdateContext txn) throws IOException
      Process an update of an embedded document.
      Specified by:
      updateEmbedded in interface BeanDocType<T>
      Parameters:
      idValue - the id of the bean effected by an embedded document update
      embeddedProperty - the path of the property
      embeddedRawContent - the embedded content for this property in JSON form
      txn - the doc store transaction to use to process the update
      Throws:
      IOException
    • createDocMapping

      Create the document mapping.
    • rawProperty

      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 interface BeanDocType<T>
    • hasEmbeddedInvalidation

      Return true if this bean type as embedded invalidate registered.