Skip to content

Commit af508f8

Browse files
- CHG: Dependency update.
- CHG: Version bump. - CHG: Made code changes required due to codegen changes.
1 parent 97977d5 commit af508f8

File tree

7 files changed

+119
-102
lines changed

7 files changed

+119
-102
lines changed

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ plugins {
33
}
44

55
group 'uk.ac.hutton.germinate.brapi'
6-
version '4.6.0'
6+
version '4.7.0'
77

88
sourceCompatibility = 11
99

@@ -20,7 +20,7 @@ repositories {
2020
dependencies {
2121
compile fileTree(dir: 'lib', include: ['*.jar'])
2222

23-
implementation 'org.json:json:20220320'
23+
implementation 'org.json:json:20230227'
2424

2525
implementation 'ch.systems.cisd:jhdf5:14.12.0'
2626

src/main/java/jhi/germinate/brapi/server/resource/genotyping/variant/VariantBaseServerResource.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@
1212
import java.sql.*;
1313
import java.text.SimpleDateFormat;
1414
import java.util.*;
15-
import java.util.Date;
1615
import java.util.stream.Collectors;
1716

1817
import static jhi.germinate.server.database.codegen.tables.Datasetmembers.*;
19-
import static jhi.germinate.server.database.codegen.tables.ViewTableMarkers.*;
18+
import static jhi.germinate.server.database.codegen.tables.Markers.MARKERS;
19+
import static jhi.germinate.server.database.codegen.tables.Markertypes.MARKERTYPES;
20+
import static jhi.germinate.server.database.codegen.tables.Synonyms.SYNONYMS;
2021

2122
public interface VariantBaseServerResource
2223
{
@@ -31,7 +32,9 @@ default List<Variant> getVariantsInternal(DSLContext context, List<Condition> co
3132
SelectConditionStep<?> step = context.select()
3233
.hint("SQL_CALC_FOUND_ROWS")
3334
.from(DATASETMEMBERS)
34-
.leftJoin(VIEW_TABLE_MARKERS).on(DATASETMEMBERS.FOREIGN_ID.eq(VIEW_TABLE_MARKERS.MARKER_ID))
35+
.leftJoin(MARKERS).on(DATASETMEMBERS.FOREIGN_ID.eq(MARKERS.ID))
36+
.leftJoin(MARKERTYPES).on(MARKERS.MARKERTYPE_ID.eq(MARKERTYPES.ID))
37+
.leftJoin(SYNONYMS).on(SYNONYMS.SYNONYMTYPE_ID.eq(2).and(SYNONYMS.FOREIGN_ID.eq(MARKERS.ID)))
3538
.where(DATASETMEMBERS.DATASET_ID.in(datasetIds))
3639
.and(DATASETMEMBERS.DATASETMEMBERTYPE_ID.eq(1));
3740

@@ -46,18 +49,16 @@ default List<Variant> getVariantsInternal(DSLContext context, List<Condition> co
4649
.stream()
4750
.map(m -> {
4851
Variant result = new Variant()
49-
.setVariantDbId(m.get(DATASETMEMBERS.DATASET_ID) + "-" + m.get(VIEW_TABLE_MARKERS.MARKER_ID))
50-
.setCreated(m.get(VIEW_TABLE_MARKERS.CREATED_ON, String.class))
51-
.setUpdated(m.get(VIEW_TABLE_MARKERS.UPDATED_ON, String.class))
52-
.setVariantType(m.get(VIEW_TABLE_MARKERS.MARKER_TYPE));
52+
.setVariantDbId(m.get(DATASETMEMBERS.DATASET_ID) + "-" + m.get(MARKERS.ID))
53+
.setCreated(m.get(MARKERS.CREATED_ON, String.class))
54+
.setUpdated(m.get(MARKERS.UPDATED_ON, String.class))
55+
.setVariantType(m.get(MARKERTYPES.DESCRIPTION));
5356

5457
List<String> names = new ArrayList<>();
55-
names.add(m.get(VIEW_TABLE_MARKERS.MARKER_NAME));
58+
names.add(m.get(MARKERS.MARKER_NAME));
5659

57-
if (m.get(VIEW_TABLE_MARKERS.MARKER_SYNONYMS) != null)
58-
{
59-
Collections.addAll(names, m.get(VIEW_TABLE_MARKERS.MARKER_SYNONYMS));
60-
}
60+
if (m.get(SYNONYMS.SYNONYMS_) != null)
61+
Collections.addAll(names, m.get(SYNONYMS.SYNONYMS_));
6162

6263
result.setVariantNames(names);
6364
result.setVariantSetDbId(Collections.singletonList(Integer.toString(m.get(DATASETMEMBERS.DATASET_ID))));

src/main/java/jhi/germinate/brapi/server/resource/genotyping/variant/VariantServerResource.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import static jhi.germinate.server.database.codegen.tables.Datasets.*;
3030
import static jhi.germinate.server.database.codegen.tables.Germinatebase.*;
3131
import static jhi.germinate.server.database.codegen.tables.Markers.*;
32-
import static jhi.germinate.server.database.codegen.tables.ViewTableMarkers.*;
3332

3433
@Path("brapi/v2/variants")
3534
@Secured
@@ -55,7 +54,7 @@ public BaseResult<ArrayResult<Variant>> getVariants(@QueryParam("variantDbId") S
5554
List<Condition> conditions = new ArrayList<>();
5655

5756
if (!StringUtils.isEmpty(variantDbId))
58-
conditions.add(DSL.concat(DATASETMEMBERS.DATASET_ID, DSL.val("-"), VIEW_TABLE_MARKERS.MARKER_ID).eq(variantDbId));
57+
conditions.add(DSL.concat(DATASETMEMBERS.DATASET_ID, DSL.val("-"), MARKERS.ID).eq(variantDbId));
5958
// TODO: Other parameters
6059

6160
List<Variant> variants = getVariantsInternal(context, conditions, page, pageSize, req, resp, securityContext);
@@ -78,7 +77,7 @@ public BaseResult<Variant> getVariantById(@PathParam("variantDbId") String varia
7877
try (Connection conn = Database.getConnection())
7978
{
8079
DSLContext context = Database.getContext(conn);
81-
List<Variant> variants = getVariantsInternal(context, Collections.singletonList(DSL.concat(DATASETMEMBERS.DATASET_ID, DSL.val("-"), VIEW_TABLE_MARKERS.MARKER_ID).eq(variantDbId)), page, pageSize, req, resp, securityContext);
80+
List<Variant> variants = getVariantsInternal(context, Collections.singletonList(DSL.concat(DATASETMEMBERS.DATASET_ID, DSL.val("-"), MARKERS.ID).eq(variantDbId)), page, pageSize, req, resp, securityContext);
8281

8382
if (CollectionUtils.isEmpty(variants))
8483
return new BaseResult<>(null, page, pageSize, 0);

src/main/java/jhi/germinate/brapi/server/resource/phenotyping/observation/ObservationUnitBaseServerResource.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ protected BaseResult<ArrayResult<ObservationUnit>> getObservationUnitsBase(DSLCo
116116
o.setObservationVariableDbId(ud.getObservationVariableDbId());
117117
o.setObservationVariableName(ud.getObservationVariableName());
118118
o.setStudyDbId(d.getStudyDbId());
119+
o.setValue(ud.getValue());
119120
Timestamp t = ud.getObservationTimeStamp();
120121
if (t != null)
121122
o.setObservationTimeStamp(sdf.format(t));

src/main/java/jhi/germinate/brapi/server/resource/phenotyping/observation/ObservationVariableBaseServerResource.java

Lines changed: 101 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -2,97 +2,113 @@
22

33
import jhi.germinate.server.database.codegen.enums.PhenotypesDatatype;
44
import jhi.germinate.server.database.pojo.TraitRestrictions;
5-
import jhi.germinate.server.util.*;
6-
import org.jooq.*;
7-
import uk.ac.hutton.ics.brapi.resource.base.*;
8-
import uk.ac.hutton.ics.brapi.resource.germplasm.attribute.*;
5+
import jhi.germinate.server.util.CollectionUtils;
6+
import jhi.germinate.server.util.StringUtils;
7+
import org.jooq.Condition;
8+
import org.jooq.DSLContext;
9+
import org.jooq.Record;
10+
import org.jooq.SelectOnConditionStep;
11+
import uk.ac.hutton.ics.brapi.resource.base.ArrayResult;
12+
import uk.ac.hutton.ics.brapi.resource.base.BaseResult;
13+
import uk.ac.hutton.ics.brapi.resource.germplasm.attribute.Category;
14+
import uk.ac.hutton.ics.brapi.resource.germplasm.attribute.Scale;
15+
import uk.ac.hutton.ics.brapi.resource.germplasm.attribute.Trait;
16+
import uk.ac.hutton.ics.brapi.resource.germplasm.attribute.ValidValues;
917
import uk.ac.hutton.ics.brapi.resource.phenotyping.observation.ObservationVariable;
1018
import uk.ac.hutton.ics.brapi.server.base.BaseServerResource;
1119

12-
import java.util.*;
20+
import java.util.ArrayList;
21+
import java.util.List;
1322
import java.util.stream.Collectors;
1423

15-
import static jhi.germinate.server.database.codegen.tables.Phenotypes.*;
16-
import static jhi.germinate.server.database.codegen.tables.Units.*;
24+
import static jhi.germinate.server.database.codegen.tables.Phenotypes.PHENOTYPES;
25+
import static jhi.germinate.server.database.codegen.tables.Units.UNITS;
1726

1827
public class ObservationVariableBaseServerResource extends BaseServerResource
1928
{
20-
protected BaseResult<ArrayResult<ObservationVariable>> getVariables(DSLContext context, List<Condition> conditions)
21-
{
22-
SelectOnConditionStep<Record> step = context.select()
23-
.from(PHENOTYPES)
24-
.leftJoin(UNITS).on(UNITS.ID.eq(PHENOTYPES.UNIT_ID));
25-
26-
if (!CollectionUtils.isEmpty(conditions))
27-
conditions.forEach(c -> step.where(conditions));
28-
29-
List<ObservationVariable> variables = step.limit(pageSize)
30-
.offset(pageSize * page)
31-
.stream()
32-
.map(t -> {
33-
ObservationVariable variable = new ObservationVariable().setObservationVariableDbId(Integer.toString(t.get(PHENOTYPES.ID)))
34-
.setObservationVariableName(t.get(PHENOTYPES.NAME));
35-
36-
PhenotypesDatatype dataType = t.get(PHENOTYPES.DATATYPE);
37-
TraitRestrictions restrictions = t.get(PHENOTYPES.RESTRICTIONS);
38-
Integer unitId = t.get(UNITS.ID);
39-
String unitName = t.get(UNITS.UNIT_NAME);
40-
Scale scale = new Scale();
41-
42-
switch (dataType)
43-
{
44-
case date:
45-
scale.setDataType("Date");
46-
break;
47-
case numeric:
48-
scale.setDataType("Numeric");
49-
break;
50-
case categorical:
51-
scale.setDataType("Ordinal");
52-
break;
53-
case text:
54-
default:
55-
scale.setDataType("Text");
56-
}
57-
58-
if (unitId != null && !StringUtils.isEmpty(unitName))
59-
{
60-
scale.setScaleDbId(Integer.toString(unitId))
61-
.setScaleName(unitName);
62-
63-
if (restrictions != null)
64-
{
65-
ValidValues vv = new ValidValues();
66-
67-
if (restrictions.getCategories() != null)
68-
{
69-
List<Category> categories = new ArrayList<>();
70-
71-
for (String[] cats : restrictions.getCategories())
72-
{
73-
for (String value : cats)
74-
{
75-
categories.add(new Category().setValue(value).setLabel(value));
76-
}
77-
}
78-
79-
vv.setCategories(categories);
80-
}
81-
if (restrictions.getMin() != null)
82-
vv.setMinimumValue(Integer.toString((int) Math.floor(restrictions.getMin())));
83-
if (restrictions.getMax() != null)
84-
vv.setMaximumValue(Integer.toString((int) Math.ceil(restrictions.getMax())));
85-
86-
scale.setValidValues(vv);
87-
}
88-
}
89-
90-
variable.setScale(scale);
91-
92-
return variable;
93-
}).collect(Collectors.toList());
94-
95-
long totalCount = context.fetchOne("SELECT FOUND_ROWS()").into(Long.class);
96-
return new BaseResult<>(new ArrayResult<ObservationVariable>().setData(variables), page, pageSize, totalCount);
97-
}
29+
protected BaseResult<ArrayResult<ObservationVariable>> getVariables(DSLContext context, List<Condition> conditions)
30+
{
31+
SelectOnConditionStep<Record> step = context.select()
32+
.from(PHENOTYPES)
33+
.leftJoin(UNITS).on(UNITS.ID.eq(PHENOTYPES.UNIT_ID));
34+
35+
if (!CollectionUtils.isEmpty(conditions))
36+
conditions.forEach(c -> step.where(conditions));
37+
38+
List<ObservationVariable> variables = step.limit(pageSize)
39+
.offset(pageSize * page)
40+
.stream()
41+
.map(t -> {
42+
ObservationVariable variable = new ObservationVariable().setObservationVariableDbId(Integer.toString(t.get(PHENOTYPES.ID)))
43+
.setObservationVariableName(t.get(PHENOTYPES.NAME));
44+
45+
PhenotypesDatatype dataType = t.get(PHENOTYPES.DATATYPE);
46+
TraitRestrictions restrictions = t.get(PHENOTYPES.RESTRICTIONS);
47+
Integer unitId = t.get(UNITS.ID);
48+
String unitName = t.get(UNITS.UNIT_NAME);
49+
Scale scale = new Scale();
50+
51+
switch (dataType)
52+
{
53+
case date:
54+
scale.setDataType("Date");
55+
break;
56+
case numeric:
57+
scale.setDataType("Numeric");
58+
break;
59+
case categorical:
60+
scale.setDataType("Ordinal");
61+
break;
62+
case text:
63+
default:
64+
scale.setDataType("Text");
65+
}
66+
67+
if (unitId != null && !StringUtils.isEmpty(unitName))
68+
{
69+
scale.setScaleDbId(Integer.toString(unitId))
70+
.setScaleName(unitName);
71+
}
72+
else
73+
{
74+
scale.setScaleName("N/A");
75+
}
76+
77+
if (restrictions != null)
78+
{
79+
ValidValues vv = new ValidValues();
80+
81+
if (restrictions.getCategories() != null)
82+
{
83+
List<Category> categories = new ArrayList<>();
84+
85+
for (String[] cats : restrictions.getCategories())
86+
{
87+
for (String value : cats)
88+
{
89+
categories.add(new Category().setValue(value).setLabel(value));
90+
}
91+
}
92+
93+
vv.setCategories(categories);
94+
}
95+
if (restrictions.getMin() != null)
96+
vv.setMinimumValue(Integer.toString((int) Math.floor(restrictions.getMin())));
97+
if (restrictions.getMax() != null)
98+
vv.setMaximumValue(Integer.toString((int) Math.ceil(restrictions.getMax())));
99+
100+
scale.setValidValues(vv);
101+
}
102+
103+
variable.setScale(scale);
104+
variable.setTrait(new Trait().setTraitDbId(Integer.toString(t.get(PHENOTYPES.ID)))
105+
.setTraitName(t.get(PHENOTYPES.NAME))
106+
.setTraitDescription(t.get(PHENOTYPES.DESCRIPTION)));
107+
108+
return variable;
109+
}).collect(Collectors.toList());
110+
111+
long totalCount = context.fetchOne("SELECT FOUND_ROWS()").into(Long.class);
112+
return new BaseResult<>(new ArrayResult<ObservationVariable>().setData(variables), page, pageSize, totalCount);
113+
}
98114
}

0 commit comments

Comments
 (0)