/*
* Copyright (c) 2010-2012 Grid Dynamics Consulting Services, Inc, All Rights Reserved
* http://www.griddynamics.com
*
* This library is free software; you can redistribute it and/or modify it under the terms of
* the Apache License; either
* version 2.0 of the License, or any later version.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package com.griddynamics.jagger.dbapi.entity;
import com.griddynamics.jagger.util.GeneralNodeInfo;
import javax.persistence.CascadeType;
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.OneToMany;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Entity
public class NodeInfoEntity {
@Id
// Identity strategy is not supported by Oracle DB from the box
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private Long id;
@Column
private String sessionId;
@Column
private String nodeId;
@Column
private long systemTime;
@Column
private String osName;
@Column
private String osVersion;
@Column
private String jaggerJavaVersion;
@Column
private String cpuModel;
@Column
private int cpuMHz;
@Column
private int cpuTotalCores;
@Column
private int cpuTotalSockets;
@Column
private long systemRAM;
@OneToMany(
fetch = FetchType.EAGER,
cascade = CascadeType.ALL,
mappedBy = "nodeInfoEntity")
private List<NodePropertyEntity> properties;
public NodeInfoEntity(String sessionId, GeneralNodeInfo generalNodeInfo) {
this.sessionId = sessionId;
this.nodeId = generalNodeInfo.getNodeId();
this.systemTime = generalNodeInfo.getSystemTime();
this.osName = generalNodeInfo.getOsName();
this.osVersion = generalNodeInfo.getOsVersion();
this.jaggerJavaVersion = generalNodeInfo.getJaggerJavaVersion();
this.cpuModel = generalNodeInfo.getCpuModel();
this.cpuMHz = generalNodeInfo.getCpuMHz();
this.cpuTotalCores = generalNodeInfo.getCpuTotalCores();
this.cpuTotalSockets = generalNodeInfo.getCpuTotalSockets();
this.systemRAM = generalNodeInfo.getSystemRAM();
if (generalNodeInfo.getProperties() != null) {
properties = new ArrayList<>(generalNodeInfo.getProperties().size());
properties.addAll(generalNodeInfo.getProperties().entrySet().stream()
.map(entry -> new NodePropertyEntity(entry.getKey(), entry.getValue(), this))
.collect(Collectors.toList()));
}
}
public NodeInfoEntity() {
}
public String getSessionId() {
return sessionId;
}
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNodeId() {
return nodeId;
}
public void setNodeId(String nodeId) {
this.nodeId = nodeId;
}
public long getSystemRAM() {
return systemRAM;
}
public void setSystemRAM(long systemRAM) {
this.systemRAM = systemRAM;
}
public String getOsName() {
return osName;
}
public void setOsName(String osName) {
this.osName = osName;
}
public long getSystemTime() {
return systemTime;
}
public void setSystemTime(long systemTime) {
this.systemTime = systemTime;
}
public String getOsVersion() {
return osVersion;
}
public void setOsVersion(String osVersion) {
this.osVersion = osVersion;
}
public String getJaggerJavaVersion() {
return jaggerJavaVersion;
}
public void setJaggerJavaVersion(String jaggerJavaVersion) {
this.jaggerJavaVersion = jaggerJavaVersion;
}
public int getCpuTotalSockets() {
return cpuTotalSockets;
}
public void setCpuTotalSockets(int cpuTotalSockets) {
this.cpuTotalSockets = cpuTotalSockets;
}
public String getCpuModel() {
return cpuModel;
}
public void setCpuModel(String cpuModel) {
this.cpuModel = cpuModel;
}
public int getCpuMHz() {
return cpuMHz;
}
public void setCpuMHz(int cpuMHz) {
this.cpuMHz = cpuMHz;
}
public int getCpuTotalCores() {
return cpuTotalCores;
}
public void setCpuTotalCores(int cpuTotalCores) {
this.cpuTotalCores = cpuTotalCores;
}
public List<NodePropertyEntity> getProperties() {
return properties;
}
public void setProperties(List<NodePropertyEntity> properties) {
this.properties = properties;
}
}