Class WrappingPersister<T>

java.lang.Object
org.openjdk.jmc.common.unit.WrappingPersister<T>
All Implemented Interfaces:
IConstraint<T>, IPersister<T>

public abstract class WrappingPersister<T> extends Object implements IPersister<T>
  • Constructor Details

    • WrappingPersister

      protected WrappingPersister(IPersister<T> delegate)
  • Method Details

    • persistableString

      public String persistableString(T value)
      Description copied from interface: IPersister
      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>
      Specified by:
      persistableString in interface IPersister<T>
      Returns:
      a string representation independent of locale or internationalization.
    • parsePersisted

      public T parsePersisted(String persistedValue) throws QuantityConversionException
      Description copied from interface: IConstraint
      Parse a persisted string. Only guaranteed to be able to parse strings produced by IConstraint.persistableString(Object) on this instance. Only use this on persisted strings, never for interactive input.
      Specified by:
      parsePersisted in interface IConstraint<T>
      Returns:
      a valid value for this instance
      Throws:
      QuantityConversionException - if persistedValue couldn't be parsed or didn't satisfy the constraint
    • combine

      public IConstraint<T> combine(IConstraint<?> other)
      Description copied from interface: IConstraint
      Return a constraint that honors both this constraint and other, if such a constraint would accept anything except null. Otherwise, return null.
      Specified by:
      combine in interface IConstraint<T>
      Returns:
      a constraint or null
    • parseInteractive

      public T parseInteractive(String interactiveValue) throws QuantityConversionException
      Description copied from interface: IConstraint
      Parse an interactive string. Only guaranteed to be able to parse strings produced by IConstraint.interactiveFormat(Object) on this instance and in the same locale. Only use this for interactive input, never for persisted strings.
      Specified by:
      parseInteractive in interface IConstraint<T>
      Returns:
      a valid value for this instance
      Throws:
      QuantityConversionException - if interactiveValue couldn't be parsed or didn't satisfy the constraint
    • validate

      public 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>
      Specified by:
      validate in interface IPersister<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.
    • interactiveFormat

      public String interactiveFormat(T value)
      Description copied from interface: IPersister
      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>
      Specified by:
      interactiveFormat in interface IPersister<T>
      Returns:
      a string representation taking locale and internationalization into account.