public static SaveStatus enrich()

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;
    }