Class AggregateValidationStatus

All Implemented Interfaces:
IObservable, IObservableValue<IStatus>

public final class AggregateValidationStatus extends ComputedValue<IStatus>
This class can be used to aggregate status values from a data binding context into a single status value. Instances of this class can be used as an observable value with a value type of IStatus, or the static methods can be called directly if an aggregated status result is only needed once.
Since:
1.0
  • Field Details

    • MERGED

      public static final int MERGED
      Constant denoting an aggregation strategy that merges multiple non-OK status objects in a MultiStatus. Returns an OK status result if all statuses from the given validation status providers are the an OK status. Returns a single status if there is only one non-OK status.
      See Also:
    • MAX_SEVERITY

      public static final int MAX_SEVERITY
      Constant denoting an aggregation strategy that always returns the most severe status from the given validation status providers. If there is more than one status at the same severity level, it picks the first one it encounters.
      See Also:
  • Constructor Details

  • Method Details

    • calculate

      protected IStatus calculate()
      Description copied from class: ComputedValue
      Subclasses must override this method to provide the object's value. Any dependencies used to calculate the value must be IObservable, and implementers must use one of the interface methods tagged TrackedGetter for ComputedValue to recognize it as a dependency.
      Specified by:
      calculate in class ComputedValue<IStatus>
      Returns:
      the object's value
    • getStatusMerged

      public static IStatus getStatusMerged(Collection<? extends ValidationStatusProvider> validationStatusProviders)
      Returns a status object that merges multiple non-OK status objects in a MultiStatus. Returns an OK status result if all statuses from the given validation status providers are the an OK status. Returns a single status if there is only one non-OK status.
      Parameters:
      validationStatusProviders - a collection of validation status providers
      Returns:
      a merged status
    • getStatusMaxSeverity

      public static IStatus getStatusMaxSeverity(Collection<? extends ValidationStatusProvider> validationStatusProviders)
      Returns a status that always returns the most severe status from the given validation status providers. If there is more than one status at the same severity level, it picks the first one it encounters.
      Parameters:
      validationStatusProviders - a collection of validation status providers
      Returns:
      a single status reflecting the most severe status from the given validation status providers
    • addListener

      protected void addListener(Object listenerType, IObservablesListener listener)
      Parameters:
      listenerType - arbitrary object to identify a type of the listener
      listener - the listener to add; not null
    • removeListener

      protected void removeListener(Object listenerType, IObservablesListener listener)
      Parameters:
      listenerType - arbitrary object to identify a type of the listener
      listener - the listener to remove; not null
    • fireEvent

      protected void fireEvent(ObservableEvent event)
    • firstListenerAdded

      protected void firstListenerAdded()
    • lastListenerRemoved

      protected void lastListenerRemoved()
    • getRealm

      public Realm getRealm()
      Returns:
      Returns the realm.
    • clone

      protected Object clone() throws CloneNotSupportedException
      Overrides:
      clone in class Object
      Throws:
      CloneNotSupportedException