void (@NotNull CommandMerger nextCommandToMerge) { setBeforeState(nextCommandToMerge.myStateBefore); myStateAfter = nextCommandToMerge.myStateAfter; if (myTransparent) { // todo write test if (nextCommandToMerge.hasActions()) { myTransparent = nextCommandToMerge.myTransparent; } } else { if (!hasActions()) { myTransparent = nextCommandToMerge.myTransparent; } } myValid &= nextCommandToMerge.myValid; myForcedGlobal |= nextCommandToMerge.myForcedGlobal; myCurrentActions.addAll(nextCommandToMerge.myCurrentActions); myAllAffectedDocuments.addAll(nextCommandToMerge.myAllAffectedDocuments); myAdditionalAffectedDocuments.addAll(nextCommandToMerge.myAdditionalAffectedDocuments); mergeUndoConfirmationPolicy(nextCommandToMerge.getUndoConfirmationPolicy()); }