package pl.touk.sputnik.connector.stash; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Data; import lombok.Getter; import lombok.experimental.Builder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Data @Builder public class SingleFileChanges { private final String filename; @Getter(AccessLevel.NONE) private final Map<Integer, ChangeDetails> changesMap = new HashMap<>(); public void addChange(int line, ChangeType changeType, List<String> comments) { changesMap.put(line, new ChangeDetails(changeType, new ArrayList<>(comments))); } public ChangeType getChangeType(int line) { return changesMap.get(line).changeType; } public boolean containsComment(Integer line, String message) { return changesMap.containsKey(line) && changesMap.get(line).comments.contains(message); } public boolean containsChange(Integer line) { return changesMap.containsKey(line); } @AllArgsConstructor private static class ChangeDetails { private final ChangeType changeType; private final List<String> comments; } }