package se.bjurr.sbcc.data; import static com.google.common.base.Optional.absent; import static com.google.common.collect.Lists.newArrayList; import static com.google.common.collect.Maps.newTreeMap; import static java.lang.Boolean.TRUE; import static se.bjurr.sbcc.settings.SbccGroup.Accept.ACCEPT; import java.util.List; import java.util.Map; import se.bjurr.sbcc.settings.SbccGroup; import se.bjurr.sbcc.settings.SbccMatch; import com.google.common.base.Optional; public class SbccChangeSetVerificationResult { private Map<SbccGroup, SbccMatch> groupsResult = newTreeMap(); private boolean nameAuthorResult; private boolean nameCommitterResult; private boolean emailAuthorResult; private boolean emailCommitterResult; private Map<String, Long> exceeding = newTreeMap(); private Optional<String> rejectedContent = absent(); private List<String> failingJqls = newArrayList(); private boolean validateChangeSetForAuthorEmailInBitbucket; private boolean validateChangeSetForAuthorNameInBitbucket; public Boolean getEmailAuthorResult() { return emailAuthorResult; } public Map<SbccGroup, SbccMatch> getGroupsResult() { return groupsResult; } public boolean getNameAuthorResult() { return nameAuthorResult; } public boolean getNameCommitterResult() { return nameCommitterResult; } public boolean hasErrors() { for (final SbccGroup g : groupsResult.keySet()) { if (g.getAccept().equals(ACCEPT)) { return TRUE; } } return getRejectedContent().isPresent() || getExceeding().size() > 0 || !emailAuthorResult || !emailCommitterResult || !nameAuthorResult || !nameCommitterResult || !failingJqls.isEmpty() || !validateChangeSetForAuthorEmailInBitbucket || !validateChangeSetForAuthorNameInBitbucket; } public boolean hasReportables() { return !groupsResult.isEmpty() || hasErrors(); } public void setEmailAuthorResult(Boolean emailResult) { this.emailAuthorResult = emailResult; } public void setEmailCommitterResult(boolean emailResult) { this.emailCommitterResult = emailResult; } public void setGroupsResult(Map<SbccGroup, SbccMatch> groupsResult) { this.groupsResult = groupsResult; } public void setNameAuthorResult(boolean nameResult) { this.nameAuthorResult = nameResult; } public void setNameCommitterResult(boolean nameResult) { this.nameCommitterResult = nameResult; } public void addContentSizeValidationResult(Map<String, Long> exceeding) { this.exceeding = exceeding; } public void addContentDiffValidationResult(Optional<String> rejectedContent) { this.rejectedContent = rejectedContent; } public Map<String, Long> getExceeding() { return exceeding; } public Optional<String> getRejectedContent() { return rejectedContent; } public boolean isEmailAuthorResult() { return emailAuthorResult; } public boolean getEmailCommitterResult() { return emailCommitterResult; } public void setFailingJql(List<String> queries) { this.failingJqls = queries; } public List<String> getFailingJqls() { return failingJqls; } public void addAuthorEmailInBitbucketValidationResult( boolean validateChangeSetForAuthorEmailInBitbucket) { this.validateChangeSetForAuthorEmailInBitbucket = validateChangeSetForAuthorEmailInBitbucket; } public boolean isValidateChangeSetForAuthorEmailInBitbucket() { return validateChangeSetForAuthorEmailInBitbucket; } public void addAuthorNameInBitbucketValidationResult( boolean validateChangeSetForAuthorNameInBitbucket) { this.validateChangeSetForAuthorNameInBitbucket = validateChangeSetForAuthorNameInBitbucket; } public boolean isValidateChangeSetForAuthorNameInBitbucket() { return validateChangeSetForAuthorNameInBitbucket; } }