Snapshot.java 3.28 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
package adt.mainnode.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.IdClass;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import adt.mainnode.identity.SnapshotIdentity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.time.DateUtils;

import java.util.Date;

@Entity
@Data
@NoArgsConstructor
@IdClass(SnapshotIdentity.class)
public class Snapshot {

    @Id
    @JsonIgnore
    @Column(name = "vlan")
    String vlanName;

    @Id
    @JsonIgnore
    @Column(name = "node_id")
    String nodeId;

    @Id
    @Column(name = "snapshotId")
    String snapshotId;

    @Column(name = "discovery_method")
    String discoveryMethod;

    @Column(name = "timestamp_main_node")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    Date timestamp_mainNode;

    @Column(name = "timestamp_dist_node_scan_start")
    @JsonProperty("timestamp_dist_node_scan_start")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    Date timestamp_distNode_ini;

    @Column(name = "timestamp_dist_node_scan_end")
    @JsonProperty("timestamp_dist_node_scan_end")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    Date timestampDistNodeEnd;

    public static Snapshot createSnapshot(ScanInfo scanInfo, SnapshotIdentity snapshotIdentity, String discoveryMethod) {
        Snapshot snapshot = new Snapshot();

        snapshot.setVlanName(snapshotIdentity.getVlanName());
        snapshot.setSnapshotId(snapshotIdentity.getSnapshotId());
        snapshot.setNodeId(snapshotIdentity.getNodeId());
        snapshot.setTimestamp_distNode_ini(scanInfo.getIniTimestampScan());
        snapshot.setTimestampDistNodeEnd(scanInfo.getEndTimestampScan());
        snapshot.setTimestamp_mainNode(scanInfo.getMainNode_timestamp());

        snapshot.setDiscoveryMethod(discoveryMethod);

        return snapshot;
    }

    public static Snapshot createSnapshot_nlp(String vlanName, String nodeId, String snapshotId,
                              Date mainNode_timestamp, String timestamp_distNode_ini, String timestampDistNodeEnd, String discoveryMethod) {

        Snapshot snapshot = new Snapshot();

        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");

        snapshot.setVlanName(vlanName);
        snapshot.setNodeId(nodeId);
        snapshot.setSnapshotId(snapshotId);
        snapshot.setTimestamp_mainNode(mainNode_timestamp);

        snapshot.setDiscoveryMethod(discoveryMethod);

        timestamp_distNode_ini = timestamp_distNode_ini.replace("b", "");
        timestamp_distNode_ini = timestamp_distNode_ini.replace("'", "");
        timestampDistNodeEnd = timestampDistNodeEnd.replace("b", "");
        timestampDistNodeEnd = timestampDistNodeEnd.replace("'", "");

        try {

            Date date1 = DateUtils.parseDate(timestamp_distNode_ini, "yyyy-MM-dd HH:mm:ss");

            Date date2 = DateUtils.parseDate(timestampDistNodeEnd, "yyyy-MM-dd HH:mm:ss");

            snapshot.setTimestamp_distNode_ini(date1);
            snapshot.setTimestampDistNodeEnd(date2);
        }catch(ParseException p){
        }
        return snapshot;
    }

}