/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.view.worker.trigger;
/**
* Encapsulates a trigger's response to being queried.
*/
public class ViewCycleTriggerResult {
private final ViewCycleType _cycleType;
private final ViewCycleEligibility _cycleEligibility;
private final Long _stateValidityNanos;
public ViewCycleTriggerResult(ViewCycleEligibility cycleEligibility) {
this(cycleEligibility, null, null);
}
public ViewCycleTriggerResult(ViewCycleType cycleType) {
this(null, cycleType, null);
}
public ViewCycleTriggerResult(long nanos) {
this(null, null, nanos);
}
public ViewCycleTriggerResult(ViewCycleEligibility cycleEligibility, ViewCycleType cycleType) {
this(cycleEligibility, cycleType, null);
}
public ViewCycleTriggerResult(ViewCycleEligibility cycleEligibility, ViewCycleType cycleType, Long stateValidityNanos) {
_cycleEligibility = cycleEligibility;
_cycleType = cycleType;
_stateValidityNanos = stateValidityNanos;
}
public static ViewCycleTriggerResult preventUntil(long nanos) {
return new ViewCycleTriggerResult(ViewCycleEligibility.PREVENT, null, nanos);
}
public static ViewCycleTriggerResult nothingUntil(long nanos) {
return new ViewCycleTriggerResult(nanos);
}
public static ViewCycleTriggerResult forceFull() {
return new ViewCycleTriggerResult(ViewCycleEligibility.FORCE, ViewCycleType.FULL);
}
public ViewCycleType getCycleType() {
return _cycleType;
}
public ViewCycleEligibility getCycleEligibility() {
return _cycleEligibility;
}
public Long getNextStateChangeNanos() {
return _stateValidityNanos;
}
@Override
public String toString() {
return "ViewCycleTriggerResult[cycleType=" + _cycleType + ", cycleEligibility=" + _cycleEligibility + ", stateValidityNanos=" + _stateValidityNanos + "]";
}
}