Enum VersionType

    • 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​(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:
        IllegalArgumentException - if this enum type has no constant with the specified name
        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 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 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
      • fromValue

        public static VersionType fromValue​(byte value)