package com.statscollector.gerrit.config;
import java.util.Arrays;
import java.util.List;
import org.springframework.beans.BeanUtils;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.statscollector.application.config.AbstractWebConfig;
import lombok.EqualsAndHashCode;
@JsonPropertyOrder({ "projectName", "host", "hostPort", "username", "password",
"threadSplitSize", "reviewersToIgnore" })
@EqualsAndHashCode(callSuper = true)
public class GerritConfig extends AbstractWebConfig {
private Integer threadSplitSize, startDateOffset, endDateOffset;
private String reviewersToIgnore;
@JsonCreator
public GerritConfig() {
}
@JsonProperty(required = true)
public Integer getThreadSplitSize() {
return threadSplitSize;
}
public void setThreadSplitSize(final Integer threadSplitSize) {
this.threadSplitSize = threadSplitSize;
}
public String getReviewersToIgnore() {
return reviewersToIgnore;
}
public void setReviewersToIgnore(final String reviewersToIgnore) {
this.reviewersToIgnore = reviewersToIgnore;
}
public void replaceWith(final GerritConfig newGerritConfig) {
BeanUtils.copyProperties(newGerritConfig, this);
}
@JsonIgnore
public List<String> getReviewersToIgnoreList() {
return Arrays.asList(reviewersToIgnore.split(","));
}
}