package edu.isi.karma.controller.command.alignment;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.json.JSONArray;
import edu.isi.karma.controller.command.Command;
import edu.isi.karma.controller.command.ICommand;
import edu.isi.karma.controller.history.CommandConsolidator;
import edu.isi.karma.controller.history.HistoryJsonUtil;
import edu.isi.karma.rep.Workspace;
public class AddLiteralNodeConsolidator extends CommandConsolidator {
@Override
public Pair<ICommand, Object> consolidateCommand(List<ICommand> commands,
ICommand newCommand, Workspace workspace) {
if (newCommand instanceof AddLiteralNodeCommand) {
String nodeId = ((AddLiteralNodeCommand)newCommand).getNodeId();
if(nodeId != null) {
String model = newCommand.getModel();
Iterator<ICommand> itr = commands.iterator();
while(itr.hasNext()) {
ICommand tmp = itr.next();
if (tmp.getModel().equals(model)
&& ((Command)tmp).getOutputColumns().equals(((Command)newCommand).getOutputColumns())
&& (tmp instanceof AddLiteralNodeCommand)) {
String tmpNodeId = ((AddLiteralNodeCommand)tmp).getNodeId();
if(tmpNodeId != null && tmpNodeId.equals(nodeId))
return new ImmutablePair<>(tmp, (Object)newCommand);
}
}
}
}
return null;
}
}