Interface IPersister<T>

All Superinterfaces:
IConstraint<T>
All Known Implementing Classes:
KindOfQuantity, LinearKindOfQuantity, WrappingPersister

public interface IPersister<T> extends IConstraint<T>
A specialized constraint that allows all instances of T, but not null. As a result, interactiveFormat(Object) and persistableString(Object) cannot throw QuantityConversionException, but NullPointerException and in some cases IllegalArgumentException. This interface is typically implemented by content types where every allowed value readily can be represented with a human editable string.
  • Method Details

    • validate

      boolean validate(T value)
      Description copied from interface: IConstraint
      Fundamentally, check that value satisfies this constraint and throw an exception otherwise. As long as the method returns normally, value is a valid value, regardless of the return value. However, when wrapping a persister in a constraint, it is possible that the persister treats some magic values differently. If the constraint isn't aware of these magical values it should typically not try to validate them. This is signaled by the persister by returning true from this method.
      Specified by:
      validate in interface IConstraint<T>
      Returns:
      true if this value is considered magical and further validation should be skipped, false otherwise. Any return value mean that the value is valid.
    • persistableString

      String persistableString(T value)
      A string representation independent of locale or internationalization, that when parsed using IConstraint.parsePersisted(String) (on this instance) yields a result that is equal to the given value. That is, the exact representation must be preserved.
      Specified by:
      persistableString in interface IConstraint<T>
      Returns:
      a string representation independent of locale or internationalization.
      Throws:
      NullPointerException - if value is null
      IllegalArgumentException - if some type aspect of value prevents it from being valid
    • interactiveFormat

      String interactiveFormat(T value)
      An exact string representation taking locale and internationalization into account. When parsed using IConstraint.parseInteractive(String) (on this instance) yields a result that is equal to the given value. That is, the exact representation must be preserved.
      Specified by:
      interactiveFormat in interface IConstraint<T>
      Returns:
      a string representation taking locale and internationalization into account.
      Throws:
      NullPointerException - if value is null
      IllegalArgumentException - if some type aspect of value prevents it from being valid