package com.opendoorlogistics.core.tables.decorators.datastores.undoredo; import com.opendoorlogistics.api.tables.ODLDatastore; import com.opendoorlogistics.api.tables.ODLTableDefinition; import com.opendoorlogistics.core.utils.LargeList; public class Transaction { final long transactionNb; final LargeList<UndoRedo> undoRedo; Transaction(long transactionNb) { undoRedo = new LargeList<UndoRedo>(); this.transactionNb = transactionNb; } void undo(ODLDatastore<? extends ODLTableDefinition> database){ int n =undoRedo.size(); for(int i = n-1 ; i >=0 ; i--){ undoRedo.get(i).undo(database); } } void redo(ODLDatastore<? extends ODLTableDefinition> database){ int n =undoRedo.size(); for(int i =0 ; i < n ; i++){ undoRedo.get(i).redo(database); } } }