in accord-core/src/main/java/accord/primitives/SaveStatus.java [345:393]
public static SaveStatus enrich(SaveStatus status, Known known)
{
// most statuses already know everything they can
switch (status.status)
{
case NotDefined:
case PreAccepted:
case AcceptedInvalidate:
case AcceptedMedium:
case AcceptedSlow:
case PreCommitted:
case Committed:
if (known.isSatisfiedBy(status.known))
return status;
return get(status.status, status.known.atLeast(known));
case Stable:
return status;
case Truncated:
switch (status)
{
default: throw new AssertionError("Unexpected status: " + status);
case Erased:
case Vestigial:
if (known.outcome().isInvalidated())
return Invalidated;
if (!known.outcome().isOrWasApply() || !known.is(ExecuteAtKnown))
return status;
case TruncatedUnapplied:
if (!known.is(ApplyAtKnown))
return TruncatedUnapplied;
case TruncatedApply:
if (!known.is(Outcome.Apply))
return TruncatedApply;
case TruncatedApplyWithOutcome:
if (!known.is(DepsKnown))
return TruncatedApplyWithOutcome;
return Applied;
}
}
return status;
}