Reorganize and further unify the new commands.

This commit is contained in:
Albert Pham
2015-10-29 13:05:04 -07:00
parent 25ad916611
commit fdfc3cdb33
42 changed files with 543 additions and 321 deletions

View File

@ -25,6 +25,7 @@ import com.sk89q.worldedit.blocks.BaseBlock;
import com.sk89q.worldedit.extent.Extent;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import static com.google.common.base.Preconditions.checkNotNull;
@ -64,4 +65,9 @@ public class BlockMapEntryPlacer implements Operation {
@Override
public void cancel() {
}
@Override
public void addStatusMessages(List<String> messages) {
}
}

View File

@ -25,6 +25,7 @@ import com.sk89q.worldedit.history.changeset.ChangeSet;
import com.sk89q.worldedit.history.UndoContext;
import java.util.Iterator;
import java.util.List;
import static com.google.common.base.Preconditions.checkNotNull;
@ -79,6 +80,10 @@ public class ChangeSetExecutor implements Operation {
public void cancel() {
}
@Override
public void addStatusMessages(List<String> messages) {
}
/**
* Create a new undo operation.
*

View File

@ -21,6 +21,8 @@ package com.sk89q.worldedit.function.operation;
import com.sk89q.worldedit.WorldEditException;
import java.util.List;
import static com.google.common.base.Preconditions.checkNotNull;
/**
@ -57,4 +59,10 @@ public class DelegateOperation implements Operation {
original.cancel();
}
@Override
public void addStatusMessages(List<String> messages) {
original.addStatusMessages(messages);
delegate.addStatusMessages(messages);
}
}

View File

@ -246,4 +246,8 @@ public class ForwardExtentCopy implements Operation {
public void cancel() {
}
@Override
public void addStatusMessages(List<String> messages) {
}
}

View File

@ -21,6 +21,8 @@ package com.sk89q.worldedit.function.operation;
import com.sk89q.worldedit.WorldEditException;
import java.util.List;
/**
* An task that may be split into multiple steps to be run sequentially
* immediately or at a varying or fixed interval. Operations should attempt
@ -49,4 +51,12 @@ public interface Operation {
*/
void cancel();
/**
* Add messages to the provided list that describe the current status
* of the operation.
*
* @param messages The list to add messages to
*/
void addStatusMessages(List<String> messages);
}

View File

@ -19,11 +19,13 @@
package com.sk89q.worldedit.function.operation;
import com.google.common.collect.Lists;
import com.sk89q.worldedit.WorldEditException;
import java.util.ArrayDeque;
import java.util.Collection;
import java.util.Deque;
import java.util.List;
import static com.google.common.base.Preconditions.checkNotNull;
@ -32,6 +34,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
*/
public class OperationQueue implements Operation {
private final List<Operation> operations = Lists.newArrayList();
private final Deque<Operation> queue = new ArrayDeque<Operation>();
private Operation current;
@ -51,6 +54,7 @@ public class OperationQueue implements Operation {
for (Operation operation : operations) {
offer(operation);
}
this.operations.addAll(operations);
}
/**
@ -100,4 +104,11 @@ public class OperationQueue implements Operation {
queue.clear();
}
@Override
public void addStatusMessages(List<String> messages) {
for (Operation operation : operations) {
operation.addStatusMessages(messages);
}
}
}