public Command construct()

in accord-core/src/main/java/accord/impl/CommandChange.java [520:562]


        public Command construct(RedundantBefore redundantBefore)
        {
            if (!hasUpdate)
                return null;

            Invariants.require(txnId != null);
            if (participants == null) participants = StoreParticipants.empty(txnId);
            else participants = participants.filter(LOAD, redundantBefore, txnId, saveStatus.known.isExecuteAtKnown() ? executeAt : null);

            if (durability == null)
                durability = NotDurable;

            WaitingOn waitingOn = null;
            if (this.waitingOn != null)
                waitingOn = this.waitingOn.provide(txnId, partialDeps, executesAtLeast, minUniqueHlc);

            switch (saveStatus.status)
            {
                case NotDefined:
                    return saveStatus == SaveStatus.Uninitialised ? uninitialised(txnId)
                                                                  : notDefined(txnId, saveStatus, durability, participants, promised);
                case PreAccepted:
                    return preaccepted(txnId, saveStatus, durability, participants, promised, executeAt, partialTxn, partialDeps);
                case AcceptedInvalidate:
                    if (!saveStatus.known.isDefinitionKnown())
                        return notAccepted(txnId, saveStatus, durability, participants, promised, acceptedOrCommitted, partialDeps);
                case AcceptedMedium:
                case AcceptedSlow:
                case PreCommitted:
                    return accepted(txnId, saveStatus, durability, participants, promised, executeAt, partialTxn, partialDeps, acceptedOrCommitted);
                case Committed:
                case Stable:
                    return committed(txnId, saveStatus, durability, participants, promised, executeAt, partialTxn, partialDeps, acceptedOrCommitted, waitingOn);
                case PreApplied:
                case Applied:
                    return executed(txnId, saveStatus, durability, participants, promised, executeAt, partialTxn, partialDeps, acceptedOrCommitted, waitingOn, writes, result);
                case Truncated:
                case Invalidated:
                    return truncated(txnId, saveStatus, durability, participants, executeAt, partialDeps, executesAtLeast, writes, result);
                default:
                    throw new UnhandledEnum(saveStatus.status);
            }
        }