Class VersionValue

  • All Implemented Interfaces:
    UnsavedValueStrategy

    public class VersionValue
    extends Object
    implements UnsavedValueStrategy
    A strategy for determining if a version value is a version of a new transient instance or a previously persistent transient instance. The strategy is determined by the unsaved-value attribute in the mapping file.
    • Field Detail

      • NULL

        public static final VersionValue NULL
        Assume the transient instance is newly instantiated if the version is null, otherwise assume it is a detached instance.
      • UNDEFINED

        public static final VersionValue UNDEFINED
        Assume the transient instance is newly instantiated if the version is null, otherwise defer to the identifier unsaved-value.
      • NEGATIVE

        public static final VersionValue NEGATIVE
        Assume the transient instance is newly instantiated if the version is negative, otherwise assume it is a detached instance.
    • Constructor Detail

      • VersionValue

        protected VersionValue()
      • VersionValue

        public VersionValue​(Object value)
        Assume the transient instance is newly instantiated if its version is null or equal to value
        Parameters:
        value - value to compare to
    • Method Detail

      • isUnsaved

        public @Nullable Boolean isUnsaved​(@Nullable Object version)
                                    throws MappingException
        Description copied from interface: UnsavedValueStrategy
        Make the transient/detached determination
        Specified by:
        isUnsaved in interface UnsavedValueStrategy
        Parameters:
        version - The value to be tested
        Returns:
        true indicates the value corresponds to unsaved data (aka, transient state); false indicates the value does not corresponds to unsaved data (aka, detached state); null indicates that this strategy was not able to determine conclusively.
        Throws:
        MappingException
      • getDefaultValue

        public @Nullable Object getDefaultValue​(@Nullable Object currentValue)
        Description copied from interface: UnsavedValueStrategy
        Get a default value meant to indicate transience.
        Specified by:
        getDefaultValue in interface UnsavedValueStrategy
        Parameters:
        currentValue - The current state value.
        Returns:
        The default transience value.