Class MVMap.RewriteDecisionMaker<V>

java.lang.Object
org.h2.mvstore.MVMap.DecisionMaker<V>
org.h2.mvstore.MVMap.RewriteDecisionMaker<V>
Enclosing class:
MVMap<K,V>

private static final class MVMap.RewriteDecisionMaker<V> extends MVMap.DecisionMaker<V>
  • Field Details

    • pagePos

      private final long pagePos
    • decision

      private MVMap.Decision decision
  • Constructor Details

    • RewriteDecisionMaker

      RewriteDecisionMaker(long pagePos)
  • Method Details

    • decide

      public MVMap.Decision decide(V existingValue, V providedValue, CursorPos<?,?> tip)
      Description copied from class: MVMap.DecisionMaker
      Makes a decision about how to proceed with the update.
      Overrides:
      decide in class MVMap.DecisionMaker<V>
      Parameters:
      existingValue - the old value
      providedValue - the new value
      tip - the cursor position
      Returns:
      the decision
    • decide

      public MVMap.Decision decide(V existingValue, V providedValue)
      Description copied from class: MVMap.DecisionMaker
      Makes a decision about how to proceed with the update.
      Specified by:
      decide in class MVMap.DecisionMaker<V>
      Parameters:
      existingValue - value currently exists in the map
      providedValue - original input value
      Returns:
      PUT if a new value need to replace existing one or a new value to be inserted if there is none REMOVE if existing value should be deleted ABORT if update operation should be aborted or repeated later REPEAT if update operation should be repeated immediately
    • selectValue

      public <T extends V> T selectValue(T existingValue, T providedValue)
      Description copied from class: MVMap.DecisionMaker
      Provides revised value for insert/update based on original input value and value currently existing in the map. This method is only invoked after call to decide(), if it returns PUT.
      Overrides:
      selectValue in class MVMap.DecisionMaker<V>
      Type Parameters:
      T - value type
      Parameters:
      existingValue - value currently exists in the map
      providedValue - original input value
      Returns:
      value to be used by insert/update
    • reset

      public void reset()
      Description copied from class: MVMap.DecisionMaker
      Resets internal state (if any) of a this DecisionMaker to it's initial state. This method is invoked whenever concurrent update failure is encountered, so we can re-start update process.
      Overrides:
      reset in class MVMap.DecisionMaker<V>
    • getDecision

      MVMap.Decision getDecision()
    • toString

      public String toString()
      Overrides:
      toString in class Object