forked from Luke-Sikina/picsure-search-refinement
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDashboardDrawerRowMapper.java
35 lines (30 loc) · 1.31 KB
/
DashboardDrawerRowMapper.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package edu.harvard.dbmi.avillach.dictionary.dashboarddrawer;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Array; // For handling SQL Array
import java.util.Arrays;
import java.util.List;
public class DashboardDrawerRowMapper implements RowMapper<DashboardDrawer> {
@Override
public DashboardDrawer mapRow(ResultSet rs, int rowNum) throws SQLException {
return new DashboardDrawer(
rs.getInt("dataset_id"), rs.getString("study_fullname"), rs.getString("study_abbreviation"),
convertSqlArrayToList(rs.getArray("consent_groups")), rs.getString("study_summary"),
convertSqlArrayToList(rs.getArray("study_focus")), rs.getString("study_design"), rs.getString("sponsor")
);
}
private List<String> convertSqlArrayToList(Array sqlArray) throws SQLException {
if (sqlArray == null) {
return List.of();
} else {
Object[] arrayContents = (Object[]) sqlArray.getArray();
// Check if the array contains a single empty value
if (arrayContents.length == 1 && "".equals(arrayContents[0])) {
return List.of();
} else {
return Arrays.asList((String[]) sqlArray.getArray());
}
}
}
}