/* license-start
*
* Copyright (C) 2008 - 2013 Crispico, <http://www.crispico.com/>.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details, at <http://www.gnu.org/licenses/>.
*
* Contributors:
* Crispico - Initial API and implementation
*
* license-end
*/
package com.crispico.flower.mp.codesync.base.action;
import com.crispico.flower.mp.codesync.base.Diff;
import com.crispico.flower.mp.codesync.base.Match;
public class ActionSynchronize {
public static ActionSynchronize INSTANCE = new ActionSynchronize();
/**
* @author Cristi
* @author Mariana
*/
public ActionResult[] execute(Match match) {
if (match.isConflict() || match.isChildrenConflict())
throw new IllegalArgumentException("The match (or one of its children) are conflicted.");
boolean childrenConflict = false;
boolean childrenModifiedLeft = false;
boolean childrenModifiedRight = false;
boolean diffsInConflict = false;
boolean diffsModifiedLeft = false;
boolean diffsModifiedRight = false;
ActionResult[] result = new ActionResult[match.getDiffs().size()];
int i = 0;
for (Diff diff : match.getDiffs()) {
int defaultAction = DiffActionRegistry.INSTANCE.getActionEntriesForUI(match, diff, true).defaultAction;
if (defaultAction != -1) {
result[i] = DiffActionRegistry.ActionType.values()[defaultAction].diffAction.execute(match, i);
// diffsInConflict = diffsInConflict
}
i++;
}
return result;
}
}