From 45eea16a68634e666ba388fc48534fe621a39af3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20T=C3=A1rraga=20Gim=C3=A9nez?= Date: Wed, 4 Sep 2024 13:16:58 +0200 Subject: [PATCH] core: create the data model QualityControlStatus and include it in family, individual and sample internals, #TASK-6772, #TASK-6766 --- .../models/common/QualityControlStatus.java | 70 +++++++++++++++++++ .../core/models/family/FamilyInternal.java | 18 ++++- .../models/individual/IndividualInternal.java | 21 +++++- .../core/models/sample/SampleInternal.java | 25 +++++-- 4 files changed, 124 insertions(+), 10 deletions(-) create mode 100644 opencga-core/src/main/java/org/opencb/opencga/core/models/common/QualityControlStatus.java diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/common/QualityControlStatus.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/common/QualityControlStatus.java new file mode 100644 index 00000000000..f5631ef5dd8 --- /dev/null +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/common/QualityControlStatus.java @@ -0,0 +1,70 @@ +/* + * Copyright 2015-2020 OpenCB + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.opencb.opencga.core.models.common; + +import org.opencb.opencga.core.common.TimeUtils; + +public class QualityControlStatus extends Internal { + + public QualityControlStatus() { + } + + public QualityControlStatus(InternalStatus status, String registrationDate, String modificationDate) { + super(status, registrationDate, modificationDate); + } + + public static QualityControlStatus init() { + return new QualityControlStatus(null, TimeUtils.getTime(), TimeUtils.getTime()); + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("QualityControlStatus{"); + sb.append("status=").append(status); + sb.append(", registrationDate='").append(registrationDate).append('\''); + sb.append(", modificationDate='").append(lastModified).append('\''); + sb.append('}'); + return sb.toString(); + } + + public InternalStatus getStatus() { + return status; + } + + public QualityControlStatus setStatus(InternalStatus status) { + this.status = status; + return this; + } + + public String getRegistrationDate() { + return registrationDate; + } + + public QualityControlStatus setRegistrationDate(String registrationDate) { + this.registrationDate = registrationDate; + return this; + } + + public String getLastModified() { + return lastModified; + } + + public QualityControlStatus setLastModified(String lastModified) { + this.lastModified = lastModified; + return this; + } +} diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/family/FamilyInternal.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/family/FamilyInternal.java index 93cc5ceea98..7a7da51089f 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/models/family/FamilyInternal.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/family/FamilyInternal.java @@ -18,21 +18,26 @@ import org.opencb.opencga.core.common.TimeUtils; import org.opencb.opencga.core.models.common.Internal; +import org.opencb.opencga.core.models.common.QualityControlStatus; public class FamilyInternal extends Internal { private FamilyStatus status; + private QualityControlStatus qualityControlStatus; public FamilyInternal() { } - public FamilyInternal(String registrationDate, String modificationDate, FamilyStatus status) { + public FamilyInternal(String registrationDate, String modificationDate, FamilyStatus status, + QualityControlStatus qualityControlStatus) { super(null, registrationDate, modificationDate); this.status = status; + this.qualityControlStatus = qualityControlStatus; } public static FamilyInternal init() { - return new FamilyInternal(TimeUtils.getTime(), TimeUtils.getTime(), new FamilyStatus()); + String time = TimeUtils.getTime(); + return new FamilyInternal(time, time, new FamilyStatus(), QualityControlStatus.init()); } @Override @@ -71,4 +76,13 @@ public FamilyInternal setLastModified(String lastModified) { this.lastModified = lastModified; return this; } + + public QualityControlStatus getQualityControlStatus() { + return qualityControlStatus; + } + + public FamilyInternal setQualityControlStatus(QualityControlStatus qualityControlStatus) { + this.qualityControlStatus = qualityControlStatus; + return this; + } } diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/individual/IndividualInternal.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/individual/IndividualInternal.java index 4a309e42517..b81d793500f 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/models/individual/IndividualInternal.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/individual/IndividualInternal.java @@ -19,18 +19,24 @@ import org.opencb.opencga.core.common.TimeUtils; import org.opencb.opencga.core.models.common.Internal; import org.opencb.opencga.core.models.common.InternalStatus; +import org.opencb.opencga.core.models.common.QualityControlStatus; public class IndividualInternal extends Internal { + private QualityControlStatus qualityControlStatus; + public IndividualInternal() { } - public IndividualInternal(InternalStatus status, String registrationDate, String modificationDate) { + public IndividualInternal(InternalStatus status, String registrationDate, String modificationDate, + QualityControlStatus qualityControlStatus) { super(status, registrationDate, modificationDate); + this.qualityControlStatus = qualityControlStatus; } public static IndividualInternal init() { - return new IndividualInternal(new InternalStatus(InternalStatus.READY), TimeUtils.getTime(), TimeUtils.getTime()); + String time = TimeUtils.getTime(); + return new IndividualInternal(new InternalStatus(InternalStatus.READY), time, time, QualityControlStatus.init()); } @Override @@ -38,7 +44,8 @@ public String toString() { final StringBuilder sb = new StringBuilder("IndividualInternal{"); sb.append("status=").append(status); sb.append(", registrationDate='").append(registrationDate).append('\''); - sb.append(", modificationDate='").append(lastModified).append('\''); + sb.append(", lastModified='").append(lastModified).append('\''); + sb.append(", qualityControlStatus=").append(qualityControlStatus); sb.append('}'); return sb.toString(); } @@ -70,4 +77,12 @@ public IndividualInternal setLastModified(String lastModified) { return this; } + public QualityControlStatus getQualityControlStatus() { + return qualityControlStatus; + } + + public IndividualInternal setQualityControlStatus(QualityControlStatus qualityControlStatus) { + this.qualityControlStatus = qualityControlStatus; + return this; + } } diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/sample/SampleInternal.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/sample/SampleInternal.java index 2beb13a1547..45ac9169a23 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/models/sample/SampleInternal.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/sample/SampleInternal.java @@ -21,6 +21,7 @@ import org.opencb.opencga.core.common.TimeUtils; import org.opencb.opencga.core.models.common.Internal; import org.opencb.opencga.core.models.common.InternalStatus; +import org.opencb.opencga.core.models.common.QualityControlStatus; import org.opencb.opencga.core.models.common.RgaIndex; import java.util.Objects; @@ -35,20 +36,23 @@ public class SampleInternal extends Internal { description = FieldConstants.SAMPLE_INTERNAL_RGA_DESCRIPTION) private RgaIndex rga; private SampleInternalVariant variant; + private QualityControlStatus qualityControlStatus; public SampleInternal() { } public SampleInternal(String registrationDate, String modificationDate, InternalStatus status, RgaIndex rga, - SampleInternalVariant variant) { + SampleInternalVariant variant, QualityControlStatus qualityControlStatus) { super(status, registrationDate, modificationDate); this.rga = rga; this.variant = variant; + this.qualityControlStatus = qualityControlStatus; } public static SampleInternal init() { - return new SampleInternal(TimeUtils.getTime(), TimeUtils.getTime(), new InternalStatus(InternalStatus.READY), RgaIndex.init(), - SampleInternalVariant.init()); + String time = TimeUtils.getTime(); + return new SampleInternal(time, time, new InternalStatus(InternalStatus.READY), RgaIndex.init(), SampleInternalVariant.init(), + QualityControlStatus.init()); } @Override @@ -59,6 +63,7 @@ public String toString() { sb.append(", lastModified='").append(lastModified).append('\''); sb.append(", rga=").append(rga); sb.append(", variant=").append(variant); + sb.append(", qualityControlStatus=").append(qualityControlStatus); sb.append('}'); return sb.toString(); } @@ -108,6 +113,15 @@ public SampleInternal setLastModified(String lastModified) { return this; } + public QualityControlStatus getQualityControlStatus() { + return qualityControlStatus; + } + + public SampleInternal setQualityControlStatus(QualityControlStatus qualityControlStatus) { + this.qualityControlStatus = qualityControlStatus; + return this; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -117,11 +131,12 @@ public boolean equals(Object o) { return false; } SampleInternal that = (SampleInternal) o; - return Objects.equals(rga, that.rga) && Objects.equals(variant, that.variant); + return Objects.equals(rga, that.rga) && Objects.equals(variant, that.variant) + && Objects.equals(qualityControlStatus, that.qualityControlStatus); } @Override public int hashCode() { - return Objects.hash(rga, variant); + return Objects.hash(rga, variant, qualityControlStatus); } }