@Override
public TaskTree execute(Site source, Site destination, ActionDecider actionDecider, RuleSet rules) throws DataParseException,
FileSystemException, IOException {
if (!source.isAvailable()) {
throw new FileSystemException("source is unavailable");
}
if (!destination.isAvailable()) {
throw new FileSystemException("destination is unavailable");
}
this.actionDecider = actionDecider;
TaskTree tree = new TaskTree(source, destination);