*/
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.SequenceGenerator;
+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 = "akraino.submission")
-public class Submission {
+@Table(name = "submission")
+public class Submission implements Serializable {
+
+ private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(Submission.class);
/**
*
private static final long serialVersionUID = 1L;
@Id
- @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "submission_id_generator")
- @SequenceGenerator(name = "submission_id_generator", sequenceName = "akraino.seq_submission", allocationSize = 1)
- @Column(name = "submission_id")
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "id")
private int submissionId;
@Column(name = "status")
private SubmissionStatus status;
- @Column(name = "jenkins_queue_job_item_url")
- private String jnksJobUrl;
-
- @Column(name = "nexus_result_url")
- private String nexusResultUrl;
-
@ManyToOne
- @JoinColumn(name = "blueprint_instance_id")
- private BlueprintInstance blueprintInstance;
+ @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;
this.status = submissionStatus;
}
- public String getJenkinsQueueJobItemUrl() {
- return this.jnksJobUrl;
- }
-
- public void setJnksQueueJobItemUrl(String url) {
- this.jnksJobUrl = url;
+ public void setTimeslot(Timeslot timeslot) {
+ this.timeslot = timeslot;
}
- public String getNexusResultUrl() {
- return this.nexusResultUrl;
+ public Timeslot getTimeslot() {
+ return this.timeslot;
}
- public void setNexusResultUrl(String nexusResultUrl) {
- this.nexusResultUrl = nexusResultUrl;
+ public void setValidationDbTestResult(ValidationDbTestResult validationDbTestResult) {
+ this.validationDbTestResult = validationDbTestResult;
}
- public void setBlueprintInstance(BlueprintInstance blueprintInstance) {
- this.blueprintInstance = blueprintInstance;
+ public ValidationDbTestResult getValidationDbTestResult() {
+ return validationDbTestResult;
}
- public BlueprintInstance getBlueprintInstance() {
- return this.blueprintInstance;
+ static class ValidationDbTestResultSerializer extends StdSerializer<ValidationDbTestResult> {
+
+ public ValidationDbTestResultSerializer() {
+ this(null);
+ }
+
+ public ValidationDbTestResultSerializer(Class<ValidationDbTestResult> 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<WRobotDbTestResult> wRobotDbTestResults = new HashSet<WRobotDbTestResult>();
+ 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);
+ }
}
}