Class AbstractSearchLoader<K extends io.vertigo.datamodel.data.model.KeyConcept,I extends io.vertigo.datamodel.data.model.DataObject>

java.lang.Object
io.vertigo.datafactory.impl.search.loader.AbstractSearchLoader<K,I>
Type Parameters:
K - KeyConcept type
I - Index type
All Implemented Interfaces:
io.vertigo.core.node.component.Component, io.vertigo.core.node.component.CoreComponent, SearchLoader<K,I>
Direct Known Subclasses:
AbstractSqlSearchLoader

public abstract class AbstractSearchLoader<K extends io.vertigo.datamodel.data.model.KeyConcept,I extends io.vertigo.datamodel.data.model.DataObject> extends Object implements SearchLoader<K,I>
Abstract SearchLoader with default chunk implementation.
Author:
npiedeloup
  • Constructor Details

    • AbstractSearchLoader

      public AbstractSearchLoader()
  • Method Details

    • chunk

      public final Iterable<SearchChunk<K>> chunk(Class<K> keyConceptClass)
      Create a chunk iterator for crawl all keyConcept data.
      Specified by:
      chunk in interface SearchLoader<K extends io.vertigo.datamodel.data.model.KeyConcept,I extends io.vertigo.datamodel.data.model.DataObject>
      Parameters:
      keyConceptClass - keyConcept class
      Returns:
      Iterator of chunk (ordered by ID)
    • chunk

      public final Iterable<SearchChunk<K>> chunk(Optional<Serializable> startValue, Class<K> keyConceptClass)
      Create a chunk iterator for crawl keyConcept data over a specific version field, starting at a specific value.
      Specified by:
      chunk in interface SearchLoader<K extends io.vertigo.datamodel.data.model.KeyConcept,I extends io.vertigo.datamodel.data.model.DataObject>
      Parameters:
      keyConceptClass - keyConcept class
      Returns:
      Iterator of chunk ordered by versionFieldName
    • getVersionField

      public io.vertigo.datamodel.data.definitions.DataField getVersionField(io.vertigo.datamodel.data.definitions.DataDefinition dataDefinition)
    • loadNextURI

      protected abstract List<io.vertigo.core.lang.Tuple<io.vertigo.datamodel.data.model.UID<K>,Serializable>> loadNextURI(Serializable lastValue, boolean orderByVersion, io.vertigo.datamodel.data.definitions.DataDefinition dataDefinition)
      Load uris of next chunk.
      Parameters:
      lastValue - Last chunk value
      orderByVersion - Order chunk by version or by id (if versionFieldName not empty, we could crawl data by version or by id)
      dataDefinition - KeyConcept definition
      Returns:
      Uris of next chunk.
    • getVersionFieldName

      public Optional<io.vertigo.datamodel.data.definitions.DataFieldName<K>> getVersionFieldName()
      Field use as a version field. It's use to check if an element was modified. If it's comparable for the whole entity set (like a sequence, or an lastModified), it could be use for delta reindexing
      Specified by:
      getVersionFieldName in interface SearchLoader<K extends io.vertigo.datamodel.data.model.KeyConcept,I extends io.vertigo.datamodel.data.model.DataObject>
      Returns:
      optional version field