if(!batchManager.isBatchActive()) {
ctx.error("No active batch.");
return;
}
Batch batch = batchManager.getActiveBatch();
final int batchSize = batch.size();
if(batchSize == 0) {
ctx.error("The batch is empty.");
return;
}
List<String> arguments = ctx.getParsedCommandLine().getOtherProperties();
if(arguments.isEmpty()) {
ctx.error("Missing line number.");
return;
}
if(arguments.size() != 2) {
ctx.error("Expected two arguments but received: " + arguments);
return;
}
String intStr = arguments.get(0);
final int lineNumber;
try {
lineNumber = Integer.parseInt(intStr);
} catch(NumberFormatException e) {
ctx.error("Failed to parse line number '" + intStr + "': " + e.getLocalizedMessage());
return;
}
if(lineNumber < 1 || lineNumber > batchSize) {
ctx.error(lineNumber + " isn't in range [1.." + batchSize + "].");
return;
}
intStr = arguments.get(1);
final int toLineNumber;
try {
toLineNumber = Integer.parseInt(intStr);
} catch(NumberFormatException e) {
ctx.error("Failed to parse line number '" + intStr + "': " + e.getLocalizedMessage());
return;
}
if(toLineNumber < 1 || toLineNumber > batchSize) {
ctx.error(toLineNumber + " isn't in range [1.." + batchSize + "].");
return;
}
batch.move(lineNumber - 1, toLineNumber - 1);
}