Class StorageRecord<Type>

java.lang.Object
org.opensaml.storage.StorageRecord<Type>
Type Parameters:
Type - the object type represented by the record
Direct Known Subclasses:
MemcachedStorageRecord, MutableStorageRecord

@NotThreadSafe public class StorageRecord<Type> extends Object
Represents a versioned record in a StorageService.
  • Field Details

    • version

      private long version
      Version field.
    • value

      private String value
      Value field.
    • expiration

      private Long expiration
      Expiration field.
  • Constructor Details

    • StorageRecord

      public StorageRecord(@Nonnull @NotEmpty String val, @Nullable Long exp)
      Constructor.
      Parameters:
      val - value
      exp - expiration, or null if none
  • Method Details

    • getVersion

      public long getVersion()
      Get the record version.
      Returns:
      the record version
    • getValue

      @Nonnull public String getValue()
      Get the record value.
      Returns:
      the record value
    • getValue

      @Nonnull public Type getValue(@Nonnull StorageSerializer<Type> serializer, @Nonnull @NotEmpty String context, @Nonnull @NotEmpty String key) throws IOException
      Get the record value, using a custom deserialization process.
      Parameters:
      serializer - a custom (de)serialization process to apply
      context - context of record
      key - key of record
      Returns:
      the record value
      Throws:
      IOException - if deserialization fails
    • getExpiration

      @Nullable public Long getExpiration()
      Get the record expiration.
      Returns:
      the record expiration, or null if none
    • setVersion

      protected void setVersion(long ver)
      Set the record version.
      Parameters:
      ver - the new record version, must be > 0
    • setValue

      protected void setValue(@Nonnull @NotEmpty String val)
      Set the record value.
      Parameters:
      val - the new record value
    • setValue

      protected void setValue(@Nonnull Type instance, @Nonnull StorageSerializer<Type> serializer) throws IOException
      Set the record value, using a custom serialization process.
      Parameters:
      instance - the new record value
      serializer - a custom serialization process to apply
      Throws:
      IOException - if serialization fails
    • setExpiration

      protected void setExpiration(@Nullable Long exp)
      Set the record expiration.
      Parameters:
      exp - the new record expiration, or null if none
    • incrementVersion

      protected long incrementVersion()
      Increment the record version and returns the new value.
      Returns:
      the updated version