package de.otto.edison.status.indicator;
import de.otto.edison.status.domain.ApplicationStatus;
/**
* Aggregates the ApplicationStatus from all registered StatusDetailIndicators.
*
* @author Guido Steinacker
* @since 13.02.15
*/
public interface ApplicationStatusAggregator {
/**
* Aggregate and return the current {@link ApplicationStatus} from all
* registered {@link de.otto.edison.status.indicator.StatusDetailIndicator}s.
*
* @return aggregated ApplicationStatus
*/
ApplicationStatus aggregatedStatus();
/**
* Optionally implement an update method, that is used to explicitly update a
* cached ApplicationStatus. This is used by the {@link de.otto.edison.status.scheduler.Scheduler}.
*/
default void update() {}
}