package com.beijunyi.parallelgit.filesystem.io;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Nonnull;
import com.beijunyi.parallelgit.filesystem.exceptions.GfsCheckoutConflictException;
import static java.util.Collections.unmodifiableMap;
public class GfsCheckoutChangesCollector extends GfsChangesCollector {
private final Map<String, GfsCheckoutConflict> conflicts = new HashMap<>();
private final boolean failsOnConflict;
public GfsCheckoutChangesCollector(boolean failsOnConflict) {
this.failsOnConflict = failsOnConflict;
}
public void addConflict(GfsCheckoutConflict conflict) {
conflicts.put(conflict.getPath(), conflict);
if(failsOnConflict)
throw new GfsCheckoutConflictException(conflict);
}
public boolean hasConflicts() {
return !conflicts.isEmpty();
}
@Nonnull
public Map<String, GfsCheckoutConflict> getConflicts() {
return unmodifiableMap(conflicts);
}
}