diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/base/ArrayResult.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/base/ArrayResult.java index a6f3898..723cbe7 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/base/ArrayResult.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/base/ArrayResult.java @@ -12,4 +12,8 @@ public class ArrayResult { private List data; + + public ArrayResult(List data) { + this.data = data; + } } diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/base/BaseResult.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/base/BaseResult.java index 40d3e5d..8c577fe 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/base/BaseResult.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/base/BaseResult.java @@ -1,5 +1,7 @@ package uk.ac.hutton.ics.brapi.resource.base; +import java.util.List; + import com.fasterxml.jackson.annotation.*; import com.google.gson.annotations.SerializedName; import lombok.*; @@ -23,4 +25,16 @@ public BaseResult(T result, int currentPage, int pageSize, long totalCount) this.result = result; metadata.setPagination(new Pagination(pageSize, currentPage, totalCount, pageSize)); } + + public BaseResult(T result, int currentPage, int pageSize, long totalCount, int totalPages) + { + this.result = result; + metadata.setPagination(new Pagination().setCurrentPage(currentPage).setPageSize(pageSize).setTotalCount(totalCount).setTotalPages(totalPages)); + } + + public BaseResult(T result, List status) + { + this.result = result; + metadata.setStatus(status); + } } diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/base/BrapiCall.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/base/BrapiCall.java index 3bf9bcc..4771dd6 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/base/BrapiCall.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/base/BrapiCall.java @@ -3,6 +3,8 @@ import java.util.*; import java.util.stream.Collectors; +import com.fasterxml.jackson.annotation.JsonValue; + public class BrapiCall { private List contentTypes = new ArrayList<>(); @@ -118,6 +120,7 @@ public static ContentType getFromString(String type) return null; } + @JsonValue public String getType() { return type; @@ -147,6 +150,7 @@ public static DataType getFromString(String type) return null; } + @JsonValue public String getType() { return type; @@ -185,6 +189,7 @@ public static Version getFromString(String version) return null; } + @JsonValue public String getNumber() { return number; diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/base/LastUpdate.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/base/LastUpdate.java index 381f694..bf15a34 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/base/LastUpdate.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/base/LastUpdate.java @@ -3,7 +3,6 @@ import lombok.*; import lombok.experimental.Accessors; -import java.sql.Timestamp; @NoArgsConstructor @Getter diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/base/Metadata.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/base/Metadata.java index ca44339..afeeeb5 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/base/Metadata.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/base/Metadata.java @@ -13,5 +13,5 @@ public class Metadata { private List datafiles; private Pagination pagination; - private List status; + private List status = List.of(); } diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/base/Pagination.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/base/Pagination.java index fcb23fd..5f74aa9 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/base/Pagination.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/base/Pagination.java @@ -10,14 +10,14 @@ public class Pagination { private int pageSize; - private int page; + private int currentPage; private long totalCount; private int totalPages; public Pagination(int pageSize, int page, long totalCount, int desiredPageSize) { this.pageSize = pageSize; - this.page = page; + this.currentPage = page; this.totalCount = totalCount; this.totalPages = (int) Math.ceil(totalCount / (float) desiredPageSize); } diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/core/list/ListSearch.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/core/list/ListSearch.java index c52612d..5499797 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/core/list/ListSearch.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/core/list/ListSearch.java @@ -3,7 +3,6 @@ import lombok.*; import lombok.experimental.Accessors; -import java.sql.Timestamp; import java.util.List; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/core/list/Lists.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/core/list/Lists.java index f66c975..fc97126 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/core/list/Lists.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/core/list/Lists.java @@ -4,7 +4,6 @@ import lombok.experimental.Accessors; import uk.ac.hutton.ics.brapi.resource.base.*; -import java.sql.Timestamp; import java.util.List; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/core/study/Study.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/core/study/Study.java index c1abef6..893e9d2 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/core/study/Study.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/core/study/Study.java @@ -6,7 +6,6 @@ import uk.ac.hutton.ics.brapi.resource.phenotyping.observation.ObservationLevel; import java.net.URI; -import java.sql.Timestamp; import java.util.List; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/allelematrix/AlleleMatrixPagination.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/allelematrix/AlleleMatrixPagination.java index 7e5f69a..a6b93bb 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/allelematrix/AlleleMatrixPagination.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/allelematrix/AlleleMatrixPagination.java @@ -2,7 +2,6 @@ import lombok.*; import lombok.experimental.Accessors; -import uk.ac.hutton.ics.brapi.resource.base.Pagination; @NoArgsConstructor @AllArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/call/Call.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/call/Call.java index eb28076..a619365 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/call/Call.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/call/Call.java @@ -1,10 +1,8 @@ package uk.ac.hutton.ics.brapi.resource.genotyping.call; -import com.google.gson.annotations.SerializedName; import lombok.*; import lombok.experimental.Accessors; import uk.ac.hutton.ics.brapi.resource.base.BrapiObject; -import uk.ac.hutton.ics.brapi.resource.genotyping.variant.Genotype; import java.util.List; diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/call/CallSet.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/call/CallSet.java index c4e8a34..963924a 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/call/CallSet.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/call/CallSet.java @@ -4,7 +4,6 @@ import lombok.experimental.Accessors; import uk.ac.hutton.ics.brapi.resource.base.BrapiObject; -import java.sql.Timestamp; import java.util.List; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/map/Map.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/map/Map.java index 84ce7b2..86a0069 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/map/Map.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/map/Map.java @@ -5,7 +5,6 @@ import uk.ac.hutton.ics.brapi.resource.base.BrapiObject; import java.net.URI; -import java.sql.Timestamp; @NoArgsConstructor @Getter diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/reference/Reference.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/reference/Reference.java index 7e9c599..612cfb1 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/reference/Reference.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/reference/Reference.java @@ -5,7 +5,6 @@ import uk.ac.hutton.ics.brapi.resource.base.BrapiObject; import uk.ac.hutton.ics.brapi.resource.germplasm.germplasm.MiniGermplasm; -import java.net.URI; import java.util.List; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/reference/ReferenceSet.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/reference/ReferenceSet.java index c9d41f7..f34b9cb 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/reference/ReferenceSet.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/reference/ReferenceSet.java @@ -6,7 +6,6 @@ import uk.ac.hutton.ics.brapi.resource.base.Reference; import uk.ac.hutton.ics.brapi.resource.germplasm.germplasm.MiniGermplasm; -import java.net.URI; import java.util.List; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/sample/Sample.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/sample/Sample.java index 4156cfd..0936904 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/sample/Sample.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/sample/Sample.java @@ -4,7 +4,6 @@ import lombok.experimental.Accessors; import uk.ac.hutton.ics.brapi.resource.base.*; -import java.sql.Timestamp; import java.util.List; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/variant/Analysis.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/variant/Analysis.java index 4cf0565..89d71d2 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/variant/Analysis.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/variant/Analysis.java @@ -3,7 +3,6 @@ import lombok.*; import lombok.experimental.Accessors; -import java.sql.Timestamp; import java.util.List; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/variant/Variant.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/variant/Variant.java index 1eddbfc..dd90d2d 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/variant/Variant.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/genotyping/variant/Variant.java @@ -1,11 +1,9 @@ package uk.ac.hutton.ics.brapi.resource.genotyping.variant; -import com.google.gson.annotations.SerializedName; import lombok.*; import lombok.experimental.Accessors; import uk.ac.hutton.ics.brapi.resource.base.*; -import java.sql.Timestamp; import java.util.List; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/attribute/AttributeValue.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/attribute/AttributeValue.java index ac52a33..3b8f066 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/attribute/AttributeValue.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/attribute/AttributeValue.java @@ -4,7 +4,6 @@ import lombok.experimental.Accessors; import uk.ac.hutton.ics.brapi.resource.base.*; -import java.sql.Timestamp; import java.util.List; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/attribute/Scale.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/attribute/Scale.java index 558fcc3..e0e6765 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/attribute/Scale.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/attribute/Scale.java @@ -6,13 +6,15 @@ import java.util.List; +import com.fasterxml.jackson.annotation.JsonValue; + @NoArgsConstructor @Getter @Setter @Accessors(chain = true) public class Scale extends BrapiObject { - private String dataType; + private DataType dataType; private Integer decimalPlaces; private List externalReferences; private OntologyReference ontologyReference; @@ -21,4 +23,35 @@ public class Scale extends BrapiObject private String scalePUI; private String units; private ValidValues validValues; + + /** + * Scale data type + */ + public enum DataType { + /** Numerical scales express the trait with real numbers. The numerical scale defines the unit e.g. centimeter, ton per hectare, branches. */ + NUMERICAL("Numerical"), + /** Ordinal scales are scales composed of ordered categories. */ + ORDINAL("Ordinal"), + /** Categorical scale that can take one of a limited and fixed number of categories. There is no intrinsic ordering to the categories. */ + NOMINAL("Nominal"), + /** A free text is used to express the trait. */ + TEXT("Text"), + /** This scale class is exceptionally used to express complex traits. Code is a nominal scale that combines the expressions of the different traits composing the complex trait. For example a severity trait might be expressed by a 2 digit and 2 character code. The first 2 digits are the percentage of the plant covered by a fungus and the 2 characters refer to the delay in development, e.g. "75VD" means "75 %" of the plant is infected and the plant is very delayed. */ + CODE("Code"), + /** The date class is for events expressed in a time format, See ISO 8601. */ + DATE("Date"), + /** The Duration class is for time elapsed between two events expressed in a time format, e.g. days, hours, months. */ + DURATION("Duration"); + + String value; + + private DataType(String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return value; + } + } } diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/attribute/ValidValues.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/attribute/ValidValues.java index f072dd1..8fdafdd 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/attribute/ValidValues.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/attribute/ValidValues.java @@ -14,4 +14,12 @@ public class ValidValues private List categories; private String maximumValue; private String minimumValue; + + /** @deprecated Deprecated in BrAPI 2.1 */ + @Deprecated + private Integer min; + /** @deprecated Deprecated in BrAPI 2.1 */ + @Deprecated + private Integer max; + } diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/cross/Cross.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/cross/Cross.java index 4e1058a..bc99c9d 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/cross/Cross.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/cross/Cross.java @@ -4,7 +4,6 @@ import lombok.experimental.Accessors; import uk.ac.hutton.ics.brapi.resource.base.*; -import java.sql.Timestamp; import java.util.*; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/seedlot/SeedLotTransaction.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/seedlot/SeedLotTransaction.java index 150ebff..87e2320 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/seedlot/SeedLotTransaction.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/germplasm/seedlot/SeedLotTransaction.java @@ -4,7 +4,6 @@ import lombok.experimental.Accessors; import uk.ac.hutton.ics.brapi.resource.base.*; -import java.sql.Timestamp; import java.util.List; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/image/Image.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/image/Image.java index 05878d2..5152f0c 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/image/Image.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/image/Image.java @@ -6,7 +6,6 @@ import uk.ac.hutton.ics.brapi.resource.core.location.GeometryPoint; import java.net.URI; -import java.sql.Timestamp; import java.util.List; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/image/ImageSearch.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/image/ImageSearch.java index d4c399e..a7b9351 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/image/ImageSearch.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/image/ImageSearch.java @@ -4,7 +4,6 @@ import lombok.experimental.Accessors; import uk.ac.hutton.ics.brapi.resource.core.location.*; -import java.sql.Timestamp; import java.util.List; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/observation/ObservationSearch.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/observation/ObservationSearch.java index 380ea87..831bba4 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/observation/ObservationSearch.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/observation/ObservationSearch.java @@ -3,7 +3,6 @@ import lombok.*; import lombok.experimental.Accessors; -import java.sql.Timestamp; import java.util.List; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/observation/ObservationVariable.java b/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/observation/ObservationVariable.java index 53e0459..0f18eed 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/observation/ObservationVariable.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/resource/phenotyping/observation/ObservationVariable.java @@ -6,7 +6,6 @@ import uk.ac.hutton.ics.brapi.resource.germplasm.attribute.*; import java.net.URI; -import java.sql.Timestamp; import java.util.List; @NoArgsConstructor diff --git a/src/main/java/uk/ac/hutton/ics/brapi/server/phenotyping/ontology/BrapiOntologyServerResource.java b/src/main/java/uk/ac/hutton/ics/brapi/server/phenotyping/ontology/BrapiOntologyServerResource.java index 94f4291..ae4e7d2 100644 --- a/src/main/java/uk/ac/hutton/ics/brapi/server/phenotyping/ontology/BrapiOntologyServerResource.java +++ b/src/main/java/uk/ac/hutton/ics/brapi/server/phenotyping/ontology/BrapiOntologyServerResource.java @@ -2,7 +2,6 @@ import jakarta.ws.rs.*; import uk.ac.hutton.ics.brapi.resource.base.*; -import uk.ac.hutton.ics.brapi.resource.phenotyping.image.Image; import uk.ac.hutton.ics.brapi.resource.phenotyping.ontology.Ontology; import java.io.IOException;