package qubexplorer; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Objects; import org.sonar.wsclient.issue.Issue; import org.sonar.wsclient.issue.IssueComment; import org.sonar.wsclient.services.Rule; import qubexplorer.ui.issues.IssueLocation; /** * * @author Victor */ public class RadarIssue implements Issue{ private final Issue issue; private final Rule rule; public RadarIssue(Issue issue, Rule rule) { Objects.requireNonNull(issue, "issue is null"); Objects.requireNonNull(rule, "rule is null"); this.issue = issue; this.rule=rule; } @Override public String key() { return issue.key(); } @Override public String componentKey() { return issue.componentKey(); } @Override public String projectKey() { return issue.projectKey(); } @Override public String ruleKey() { return issue.ruleKey(); } public Rule rule() { return rule; } @Override public String severity() { return issue.severity(); } public Severity severityObject(){ return Severity.valueOf(severity()); } @Override public String message() { return issue.message(); } @Override public Integer line() { return issue.line(); } @Override public Double effortToFix() { return issue.effortToFix(); } @Override public String status() { return issue.status(); } @Override public String resolution() { return issue.resolution(); } @Override public String reporter() { return issue.reporter(); } @Override public String assignee() { return issue.assignee(); } @Override public String author() { return issue.author(); } @Override public String actionPlan() { return issue.actionPlan(); } @Override public Date creationDate() { return issue.creationDate(); } @Override public Date updateDate() { return issue.updateDate(); } @Override public Date closeDate() { return issue.closeDate(); } @Override public String attribute(String key) { return issue.attribute(key); } @Override public Map<String, String> attributes() { return issue.attributes(); } @Override public List<IssueComment> comments() { return issue.comments(); } public IssueLocation getLocation() { int lineNumber=issue.line() == null ? 0: issue.line(); return new IssueLocation(issue.componentKey(), lineNumber); } @Override public Long componentId() { return issue.componentId(); } @Override public String debt() { return issue.debt(); } }