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%2FBlueprintInstance.java;h=9024b38604c0672df621e3a3aa924d42a7c4fc73;hp=30722e2017914039016fa573a571abbd9107bbbf;hb=3ff5d7028b19a649f6b80c476ff45ced1fdd67dc;hpb=147ecf7bf79ea9967a121d0038103151a38ebef2 diff --git a/ui/src/main/java/org/akraino/validation/ui/entity/BlueprintInstance.java b/ui/src/main/java/org/akraino/validation/ui/entity/BlueprintInstance.java index 30722e2..9024b38 100644 --- a/ui/src/main/java/org/akraino/validation/ui/entity/BlueprintInstance.java +++ b/ui/src/main/java/org/akraino/validation/ui/entity/BlueprintInstance.java @@ -15,6 +15,7 @@ */ package org.akraino.validation.ui.entity; +import java.io.IOException; import java.io.Serializable; import java.util.HashSet; import java.util.Set; @@ -32,10 +33,19 @@ import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.Table; +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 = "blueprint_instance") public class BlueprintInstance implements Serializable { + private static final EELFLoggerDelegate LOGGER = EELFLoggerDelegate.getLogger(BlueprintInstance.class); + /** * */ @@ -59,6 +69,12 @@ public class BlueprintInstance implements Serializable { @JoinColumn(name = "blueprint_layer_id") }) private Set blueprintLayers = new HashSet<>(); + @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) + @JoinTable(name = "blueprint_instance_timeslot", joinColumns = { + @JoinColumn(name = "blueprint_instance_id") }, inverseJoinColumns = { @JoinColumn(name = "timeslot_id") }) + @JsonSerialize(using = TimeslotsSerializer.class) + private Set timeslots = new HashSet<>(); + public int getBlueprintInstanceId() { return blueprintInstId; } @@ -91,4 +107,43 @@ public class BlueprintInstance implements Serializable { this.blueprintLayers = blueprintLayers; } + public Set getTimeslots() { + return timeslots; + } + + public void setTimeslots(Set timeslots) { + this.timeslots = timeslots; + } + + static class TimeslotsSerializer extends StdSerializer> { + + public TimeslotsSerializer() { + this(null); + } + + public TimeslotsSerializer(Class> tclass) { + super(tclass); + } + + @Override + public void serialize(Set timeslots, com.fasterxml.jackson.core.JsonGenerator gen, + SerializerProvider provider) throws IOException { + Set results = new HashSet<>(); + for (Timeslot timeslot : timeslots) { + try { + Timeslot result = new Timeslot(); + result.setDuration(timeslot.getDuration()); + result.setLabInfo(timeslot.getLabInfo()); + result.setStartDateTime(timeslot.getStartDateTime()); + result.setTimeslotId(timeslot.getTimeslotId()); + results.add(result); + } catch (Exception ex) { + LOGGER.error(EELFLoggerDelegate.errorLogger, + "Error when serializing." + UserUtils.getStackTrace(ex)); + } + } + gen.writeObject(results); + } + } + }