package org.intellij.sonar.sonarreport.data;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.intellij.sonar.sonarserver.result.DateTimeTypeConverter;
import org.joda.time.DateTime;
public class SonarReport {
private String version;
private List<Issue> issues;
private List<Component> components;
private List<Rule> rules;
private List<User> users;
private static final Gson GSON = new GsonBuilder()
.registerTypeAdapter(DateTime.class,new DateTimeTypeConverter())
.create();
public SonarReport(String version,List<Issue> issues,List<Component> components,List<Rule> rules,List<User> users) {
this.version = version;
this.issues = issues;
this.components = components;
this.rules = rules;
this.users = users;
}
public String getVersion() {
return version;
}
public List<Issue> getIssues() {
return issues;
}
public List<Component> getComponents() {
return components;
}
public List<Rule> getRules() {
return rules;
}
public List<User> getUsers() {
return users;
}
@SuppressWarnings("RedundantIfStatement")
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
SonarReport that = (SonarReport) o;
if (components != null
? !components.equals(that.components)
: that.components != null)
return false;
if (issues != null
? !issues.equals(that.issues)
: that.issues != null)
return false;
if (rules != null
? !rules.equals(that.rules)
: that.rules != null)
return false;
if (users != null
? !users.equals(that.users)
: that.users != null)
return false;
if (version != null
? !version.equals(that.version)
: that.version != null)
return false;
return true;
}
@Override
public int hashCode() {
int result = version != null
? version.hashCode()
: 0;
result = 31 * result+(issues != null
? issues.hashCode()
: 0);
result = 31 * result+(components != null
? components.hashCode()
: 0);
result = 31 * result+(rules != null
? rules.hashCode()
: 0);
result = 31 * result+(users != null
? users.hashCode()
: 0);
return result;
}
@Override
public String toString() {
return "SonarReport{"+
"version='"+version+'\''+
", issues="+issues+
", components="+components+
", rules="+rules+
", users="+users+
'}';
}
public static SonarReport fromJson(String json) {
return GSON.fromJson(json,SonarReport.class);
}
}