Class IndexVersionOperation

java.lang.Object
org.apache.jackrabbit.oak.indexversion.IndexVersionOperation
Direct Known Subclasses:
LuceneIndexVersionOperation

public abstract class IndexVersionOperation extends Object
  • Constructor Details

    • IndexVersionOperation

      public IndexVersionOperation(IndexName indexName)
  • Method Details

    • setOperation

      public void setOperation(org.apache.jackrabbit.oak.indexversion.IndexVersionOperation.Operation operation)
    • getOperation

      public org.apache.jackrabbit.oak.indexversion.IndexVersionOperation.Operation getOperation()
    • getIndexName

      public IndexName getIndexName()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • generateIndexVersionOperationList

      public List<IndexVersionOperation> generateIndexVersionOperationList(NodeState rootNode, String parentPath, List<IndexName> indexNameObjectList, long purgeThresholdMillis)
      Generate list of index version operation over a list of indexes have same index base. This will purge base index.
      Parameters:
      rootNode - NodeState of root
      parentPath - parent path of baseIndex
      indexNameObjectList - This is a list of IndexName Objects with same baseIndexName on which operations will be applied.
      purgeThresholdMillis - after which a fully functional index is eligible for purge operations
      Returns:
      This method returns an IndexVersionOperation list i.e indexNameObjectList marked with operations
    • generateIndexVersionOperationList

      public List<IndexVersionOperation> generateIndexVersionOperationList(NodeState rootNode, String parentPath, List<IndexName> indexNameObjectList, long purgeThresholdMillis, boolean shouldPurgeBaseIndex)
      Generate list of index version operation over a list of indexes have same index base.
      Parameters:
      rootNode - NodeState of root
      parentPath - parent path of baseIndex
      indexNameObjectList - This is a list of IndexName Objects with same baseIndexName on which operations will be applied.
      purgeThresholdMillis - after which a fully functional index is eligible for purge operations
      shouldPurgeBaseIndex - If set to true, will apply purge operations on active base index i.e. DELETE or DELETE_HIDDEN_AND_DISABLE
      Returns:
      This method returns an IndexVersionOperation list i.e indexNameObjectList marked with operations
    • isHiddenOakMountExists

      protected static boolean isHiddenOakMountExists(NodeState indexNode)
    • getIndexVersionOperationInstance

      protected abstract IndexVersionOperation getIndexVersionOperationInstance(IndexName indexName)
    • checkIfDisabledIndexCanBeMarkedForDeletion

      protected abstract boolean checkIfDisabledIndexCanBeMarkedForDeletion(NodeState indexNode)
      Parameters:
      indexNode - - NodeState of a disabled index
      Returns:
      true if the disabled index with NodeState indexNode can be marked for deletion or not.
    • getActiveIndex

      @Nullable protected abstract @Nullable IndexName getActiveIndex(List<IndexName> reverseSortedIndexNameList, String parentPath, NodeState rootNode)
      Parameters:
      reverseSortedIndexNameList -
      parentPath -
      rootNode -
      Returns:
      Highest versioned active index's IndexName