Enum VersionType

    • Enum Constant Detail

      • EXTERNAL_GTE

        public static final VersionType EXTERNAL_GTE
      • FORCE

        @Deprecated
        public static final VersionType FORCE
        Deprecated.
        this will be removed in 7.0 and should not be used! It is *ONLY* for backward compatibility with 5.0 indices
        Warning: this version type should be used with care. Concurrent indexing may result in loss of data on replicas
    • Method Detail

      • values

        public static VersionType[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (VersionType c : VersionType.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static VersionType valueOf​(java.lang.String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        java.lang.NullPointerException - if the argument is null
      • getValue

        public byte getValue()
      • isVersionConflictForWrites

        public abstract boolean isVersionConflictForWrites​(long currentVersion,
                                                           long expectedVersion,
                                                           boolean deleted)
        Checks whether the current version conflicts with the expected version, based on the current version type.
        Parameters:
        currentVersion - the current version for the document
        expectedVersion - the version specified for the write operation
        deleted - true if the document is currently deleted (note that #currentVersion will typically be Versions.NOT_FOUND, but may be something else if the document was recently deleted
        Returns:
        true if versions conflict false o.w.
      • explainConflictForWrites

        public abstract java.lang.String explainConflictForWrites​(long currentVersion,
                                                                  long expectedVersion,
                                                                  boolean deleted)
        Returns a human readable explanation for a version conflict on write. Note that this method is only called if isVersionConflictForWrites(long, long, boolean) returns true;
        Parameters:
        currentVersion - the current version for the document
        expectedVersion - the version specified for the write operation
        deleted - true if the document is currently deleted (note that #currentVersion will typically be Versions.NOT_FOUND, but may be something else if the document was recently deleted
      • isVersionConflictForReads

        public abstract boolean isVersionConflictForReads​(long currentVersion,
                                                          long expectedVersion)
        Checks whether the current version conflicts with the expected version, based on the current version type.
        Parameters:
        currentVersion - the current version for the document
        expectedVersion - the version specified for the read operation
        Returns:
        true if versions conflict false o.w.
      • explainConflictForReads

        public abstract java.lang.String explainConflictForReads​(long currentVersion,
                                                                 long expectedVersion)
        Returns a human readable explanation for a version conflict on read. Note that this method is only called if isVersionConflictForReads(long, long) returns true;
        Parameters:
        currentVersion - the current version for the document
        expectedVersion - the version specified for the read operation
      • updateVersion

        public abstract long updateVersion​(long currentVersion,
                                           long expectedVersion)
        Returns the new version for a document, based on its current one and the specified in the request
        Returns:
        new version
      • validateVersionForWrites

        public abstract boolean validateVersionForWrites​(long version)
        validate the version is a valid value for this type when writing.
        Returns:
        true if valid, false o.w
      • validateVersionForReads

        public abstract boolean validateVersionForReads​(long version)
        validate the version is a valid value for this type when reading.
        Returns:
        true if valid, false o.w
      • versionTypeForReplicationAndRecovery

        public VersionType versionTypeForReplicationAndRecovery()
        Some version types require different semantics for primary and replicas. This version allows the type to override the default behavior.
      • fromString

        public static VersionType fromString​(java.lang.String versionType)
      • fromString

        public static VersionType fromString​(java.lang.String versionType,
                                             VersionType defaultVersionType)
      • toString

        public static java.lang.String toString​(VersionType versionType)
      • fromValue

        public static VersionType fromValue​(byte value)
      • readFromStream

        public static VersionType readFromStream​(StreamInput in)
                                          throws java.io.IOException
        Throws:
        java.io.IOException