2 * Copyright (c) 2019 AT&T Intellectual Property. All rights reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may
5 * not use this file except in compliance with the License. You may obtain
6 * a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13 * implied. See the License for the specific language governing
14 * permissions and limitations under the License.
16 package org.akraino.validation.ui.entity;
18 import java.io.IOException;
19 import java.io.Serializable;
20 import java.util.HashSet;
23 import javax.persistence.Column;
24 import javax.persistence.Entity;
25 import javax.persistence.FetchType;
26 import javax.persistence.GeneratedValue;
27 import javax.persistence.GenerationType;
28 import javax.persistence.Id;
29 import javax.persistence.JoinColumn;
30 import javax.persistence.ManyToOne;
31 import javax.persistence.OneToOne;
32 import javax.persistence.Table;
34 import org.akraino.validation.ui.data.SubmissionStatus;
35 import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
36 import org.onap.portalsdk.core.web.support.UserUtils;
38 import com.fasterxml.jackson.databind.SerializerProvider;
39 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
40 import com.fasterxml.jackson.databind.ser.std.StdSerializer;
43 @Table(name = "submission")
44 public class Submission implements Serializable {
46 private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(Submission.class);
51 private static final long serialVersionUID = 1L;
54 @GeneratedValue(strategy = GenerationType.IDENTITY)
56 private int submissionId;
58 @Column(name = "status")
59 private SubmissionStatus status;
62 @JoinColumn(name = "timeslot_id")
63 private Timeslot timeslot;
65 @OneToOne(mappedBy = "submission", targetEntity = ValidationDbTestResult.class, fetch = FetchType.EAGER)
66 @JsonSerialize(using = ValidationDbTestResultSerializer.class)
67 private ValidationDbTestResult validationDbTestResult;
69 public void setSubmissionId(int submissionId) {
70 this.submissionId = submissionId;
73 public int getSubmissionId() {
77 public SubmissionStatus getSubmissionStatus() {
81 public void setSubmissionStatus(SubmissionStatus submissionStatus) {
82 this.status = submissionStatus;
85 public void setTimeslot(Timeslot timeslot) {
86 this.timeslot = timeslot;
89 public Timeslot getTimeslot() {
93 public void setValidationDbTestResult(ValidationDbTestResult validationDbTestResult) {
94 this.validationDbTestResult = validationDbTestResult;
97 public ValidationDbTestResult getValidationDbTestResult() {
98 return validationDbTestResult;
101 static class ValidationDbTestResultSerializer extends StdSerializer<ValidationDbTestResult> {
103 public ValidationDbTestResultSerializer() {
107 public ValidationDbTestResultSerializer(Class<ValidationDbTestResult> t) {
112 public void serialize(ValidationDbTestResult validationDbTestResult,
113 com.fasterxml.jackson.core.JsonGenerator gen, SerializerProvider provider) throws IOException {
114 ValidationDbTestResult result = new ValidationDbTestResult();
116 result.setResultId(validationDbTestResult.getResultId());
117 result.setAllLayers(validationDbTestResult.getAllLayers());
118 result.setBlueprintInstance(validationDbTestResult.getBlueprintInstance());
119 result.setDateStorage(validationDbTestResult.getDateStorage());
120 result.setLab(validationDbTestResult.getLab());
121 result.setOptional(validationDbTestResult.getOptional());
122 result.setResult(validationDbTestResult.getResult());
123 result.setTimestamp(validationDbTestResult.getTimestamp());
124 Set<WRobotDbTestResult> wRobotDbTestResults = new HashSet<WRobotDbTestResult>();
125 if (validationDbTestResult.getWRobotDbTestResults() != null
126 && validationDbTestResult.getWRobotDbTestResults().size() > 0) {
127 for (WRobotDbTestResult wRobotDbTestResult : validationDbTestResult.getWRobotDbTestResults()) {
128 WRobotDbTestResult temp = new WRobotDbTestResult();
129 temp.setLayer(wRobotDbTestResult.getLayer());
130 // No need for robot results when fetching submissions
131 // temp.setRobotTestResults(wRobotDbTestResult.getRobotTestResults());
132 temp.setWRobotResultId(wRobotDbTestResult.getWRobotResultId());
133 wRobotDbTestResults.add(temp);
136 result.setWRobotDbTestResults(wRobotDbTestResults);
137 } catch (Exception ex) {
138 LOGGER.error(EELFLoggerDelegate.errorLogger, "Error when serializing." + UserUtils.getStackTrace(ex));
140 gen.writeObject(result);