addUserWithLabel(issue.reporter(), "reporter", json);
addCharacteristics(rule, json);
}
private void addComponents(DbSession session, Issue issue, JsonWriter json) {
ComponentDto component = dbClient.componentDao().getByUuid(session, issue.componentUuid());
Long subProjectId = component.subProjectId();
ComponentDto subProject = subProjectId != null ? dbClient.componentDao().getNullableById(subProjectId, session) : null;
ComponentDto project = dbClient.componentDao().getByUuid(session, component.projectUuid());
String projectName = project.longName() != null ? project.longName() : project.name();
// Do not display sub project long name if sub project and project are the same
boolean displaySubProjectLongName = subProject != null && !subProject.getId().equals(project.getId());
String subProjectName = displaySubProjectLongName ? subProject.longName() != null ? subProject.longName() : subProject.name() : null;
json
.prop("component", component.key())
.prop("componentLongName", component.longName())
.prop("componentQualifier", component.qualifier())
.prop("componentEnabled", component.isEnabled())
.prop("project", project.key())
.prop("projectName", projectName)
.prop("subProjectName", subProjectName);
}