Skip to content

Commit cdf1358

Browse files
Luke SikinaLuke-Sikina
Luke Sikina
authored andcommitted
[CHORE] - values always JSON array
1 parent 8dfec66 commit cdf1358

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

src/main/java/edu/harvard/dbmi/avillach/dictionary/concept/ConceptResultSetUtil.java

+16-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88

99
import java.sql.ResultSet;
1010
import java.sql.SQLException;
11+
import java.util.ArrayList;
1112
import java.util.List;
13+
import java.util.stream.Collectors;
1214

1315
@Component
1416
public class ConceptResultSetUtil {
@@ -17,7 +19,7 @@ public CategoricalConcept mapCategorical(ResultSet rs) throws SQLException {
1719
return new CategoricalConcept(
1820
rs.getString("concept_path"), rs.getString("name"),
1921
rs.getString("display"), rs.getString("dataset"), rs.getString("description"),
20-
rs.getString("values") == null ? List.of() : List.of(rs.getString("values").split(",")),
22+
rs.getString("values") == null ? List.of() : parseValues(rs.getString("values")),
2123
null,
2224
null
2325
);
@@ -32,6 +34,19 @@ public ContinuousConcept mapContinuous(ResultSet rs) throws SQLException {
3234
);
3335
}
3436

37+
public List<String> parseValues(String valuesArr) {
38+
try {
39+
ArrayList<String> vals = new ArrayList<>();
40+
JSONArray arr = new JSONArray(valuesArr);
41+
for (int i = 0; i < arr.length(); i++) {
42+
vals.add(arr.getString(i));
43+
}
44+
return vals;
45+
} catch (JSONException ex) {
46+
return List.of();
47+
}
48+
}
49+
3550
public Integer parseMin(String valuesArr) {
3651
try {
3752
JSONArray arr = new JSONArray(valuesArr);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package edu.harvard.dbmi.avillach.dictionary.concept;
2+
3+
import org.junit.jupiter.api.Assertions;
4+
import org.junit.jupiter.api.Test;
5+
6+
import java.util.List;
7+
8+
import static org.junit.jupiter.api.Assertions.*;
9+
10+
class ConceptResultSetUtilTest {
11+
12+
@Test
13+
void shouldParseValues() {
14+
List<String> actual = new ConceptResultSetUtil().parseValues("[\"Look, I'm valid json\"]");
15+
List<String> expected = List.of("Look, I'm valid json");
16+
17+
Assertions.assertEquals(expected, actual);
18+
}
19+
}

0 commit comments

Comments
 (0)