X-Git-Url: https://gerrit.akraino.org/r/gitweb?p=validation.git;a=blobdiff_plain;f=ui%2Fsrc%2Fmain%2Fjava%2Forg%2Fakraino%2Fvalidation%2Fui%2Fentity%2FSubmission.java;h=a4c797ca3215d624ce78850e282e6f137e7375db;hp=bdbe5359b64b48fbe175282a884136754737082f;hb=147ecf7bf79ea9967a121d0038103151a38ebef2;hpb=e6b82a7ccd840c8b089ae4d5e69930fd0dd5ef35 diff --git a/ui/src/main/java/org/akraino/validation/ui/entity/Submission.java b/ui/src/main/java/org/akraino/validation/ui/entity/Submission.java index bdbe535..a4c797c 100644 --- a/ui/src/main/java/org/akraino/validation/ui/entity/Submission.java +++ b/ui/src/main/java/org/akraino/validation/ui/entity/Submission.java @@ -15,23 +15,36 @@ */ package org.akraino.validation.ui.entity; +import java.io.IOException; import java.io.Serializable; +import java.util.HashSet; +import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; +import javax.persistence.OneToOne; import javax.persistence.Table; import org.akraino.validation.ui.data.SubmissionStatus; +import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.web.support.UserUtils; + +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; @Entity @Table(name = "submission") public class Submission implements Serializable { + private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(Submission.class); + /** * */ @@ -49,6 +62,10 @@ public class Submission implements Serializable { @JoinColumn(name = "timeslot_id") private Timeslot timeslot; + @OneToOne(mappedBy = "submission", targetEntity = ValidationDbTestResult.class, fetch = FetchType.EAGER) + @JsonSerialize(using = ValidationDbTestResultSerializer.class) + private ValidationDbTestResult validationDbTestResult; + public void setSubmissionId(int submissionId) { this.submissionId = submissionId; } @@ -73,4 +90,55 @@ public class Submission implements Serializable { return this.timeslot; } + public void setValidationDbTestResult(ValidationDbTestResult validationDbTestResult) { + this.validationDbTestResult = validationDbTestResult; + } + + public ValidationDbTestResult getValidationDbTestResult() { + return validationDbTestResult; + } + + static class ValidationDbTestResultSerializer extends StdSerializer { + + public ValidationDbTestResultSerializer() { + this(null); + } + + public ValidationDbTestResultSerializer(Class t) { + super(t); + } + + @Override + public void serialize(ValidationDbTestResult validationDbTestResult, + com.fasterxml.jackson.core.JsonGenerator gen, SerializerProvider provider) throws IOException { + ValidationDbTestResult result = new ValidationDbTestResult(); + try { + result.setResultId(validationDbTestResult.getResultId()); + result.setAllLayers(validationDbTestResult.getAllLayers()); + result.setBlueprintInstance(validationDbTestResult.getBlueprintInstance()); + result.setDateStorage(validationDbTestResult.getDateStorage()); + result.setLab(validationDbTestResult.getLab()); + result.setOptional(validationDbTestResult.getOptional()); + result.setResult(validationDbTestResult.getResult()); + result.setTimestamp(validationDbTestResult.getTimestamp()); + Set wRobotDbTestResults = new HashSet(); + if (validationDbTestResult.getWRobotDbTestResults() != null + && validationDbTestResult.getWRobotDbTestResults().size() > 0) { + for (WRobotDbTestResult wRobotDbTestResult : validationDbTestResult.getWRobotDbTestResults()) { + WRobotDbTestResult temp = new WRobotDbTestResult(); + temp.setLayer(wRobotDbTestResult.getLayer()); + // No need for robot results when fetching submissions + // temp.setRobotTestResults(wRobotDbTestResult.getRobotTestResults()); + temp.setWRobotResultId(wRobotDbTestResult.getWRobotResultId()); + wRobotDbTestResults.add(temp); + } + } + result.setWRobotDbTestResults(wRobotDbTestResults); + } catch (Exception ex) { + LOGGER.error(EELFLoggerDelegate.errorLogger, "Error when serializing." + UserUtils.getStackTrace(ex)); + } + gen.writeObject(result); + } + } + }