package com.intuit.tank.project;
/*
* #%L
* Intuit Tank data model
* %%
* Copyright (C) 2011 - 2015 Intuit Inc.
* %%
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
* #L%
*/
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import com.intuit.tank.vm.api.enumerated.VMRole;
@Entity
@Table(name = "job_vm_instance")
public class JobVMInstance extends BaseEntity {
private static final long serialVersionUID = 1L;
@ManyToOne
@JoinColumn(name = "job_id", updatable = false, insertable = false)
private JobConfiguration job;
@ManyToOne
@JoinColumn(name = "vm_instance_id")
private VMInstance vmInstance;
@Column(name = "user_count")
private int userCount;
@Column(name = "status")
private String status;
@Enumerated(EnumType.STRING)
@Column(name = "vm_role")
private VMRole vmRole;
public JobConfiguration getJob() {
return job;
}
protected void setJob(JobConfiguration job) {
this.job = job;
}
public void setParent(JobConfiguration job) {
this.job = job;
}
public VMInstance getVMInstance() {
return vmInstance;
}
public void setVMInstance(VMInstance instance) {
this.vmInstance = instance;
}
public int getUserCount() {
return userCount;
}
public void setUserCount(int userCount) {
this.userCount = userCount;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
/**
* @return the vmRole
*/
public VMRole getVmRole() {
return vmRole;
}
/**
* @param vmRole
* the vmRole to set
*/
public void setVmRole(VMRole vmRole) {
this.vmRole = vmRole;
}
/**
* @{inheritDoc
*/
@Override
public String toString() {
return new ToStringBuilder(this).append("id", getId()).append("status", status)
.toString();
}
/**
* @{inheritDoc
*/
@Override
public boolean equals(Object obj) {
if (!(obj instanceof JobVMInstance)) {
return false;
}
JobVMInstance o = (JobVMInstance) obj;
return new EqualsBuilder().append(o.getId(), getId()).isEquals();
}
/**
* @{inheritDoc
*/
@Override
public int hashCode() {
return new HashCodeBuilder(29, 45).append(getId()).toHashCode();
}
}