package com.destinationradiodenver.mobileStreaming.web.entity;
import javax.persistence.Entity;
import java.io.Serializable;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Column;
import javax.persistence.Version;
import java.lang.Override;
import java.util.Set;
import java.util.HashSet;
import javax.persistence.ManyToMany;
import com.destinationradiodenver.mobileStreaming.web.entity.Encoder;
import com.destinationradiodenver.mobileStreaming.web.entity.Stream;
import javax.persistence.OneToMany;
import javax.persistence.CascadeType;
@Entity
public class MobileProfile implements Serializable
{
/**
*@author cpenhale
*/
private static final long serialVersionUID = 3777485706873502024L;
@Id
private @GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", updatable = false, nullable = false)
Long id = null;
@Version
private @Column(name = "version")
int version = 0;
@Column
private String name;
@Column
private int bandwidth;
@Column
private int width;
@Column
private int height;
private @ManyToMany(mappedBy = "mobileProfiles", fetch = FetchType.EAGER)
Set<Stream> streams = new HashSet<Stream>();
private @OneToMany(mappedBy = "mobileProfile", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
Set<Encoder> encoders = new HashSet<Encoder>();
public Long getId()
{
return this.id;
}
public void setId(final Long id)
{
this.id = id;
}
public int getVersion()
{
return this.version;
}
public void setVersion(final int version)
{
this.version = version;
}
@Override
public boolean equals(Object that)
{
if (this == that)
{
return true;
}
if (that == null)
{
return false;
}
if (getClass() != that.getClass())
{
return false;
}
if (id != null)
{
return id.equals(((MobileProfile) that).id);
}
return super.equals(that);
}
@Override
public int hashCode()
{
if (id != null)
{
return id.hashCode();
}
return super.hashCode();
}
public String getName()
{
return this.name;
}
public void setName(final String name)
{
this.name = name;
}
public int getBandwidth()
{
return this.bandwidth;
}
public void setBandwidth(final int bandwidth)
{
this.bandwidth = bandwidth;
}
public int getWidth()
{
return this.width;
}
public void setWidth(final int width)
{
this.width = width;
}
public int getHeight()
{
return this.height;
}
public void setHeight(final int height)
{
this.height = height;
}
public String toString()
{
String result = "";
if (name != null && !name.trim().isEmpty())
result += name;
result += " " + bandwidth;
result += " " + width;
result += " " + height;
return result;
}
public Set<Stream> getStreams()
{
return this.streams;
}
public void setStreams(final Set<Stream> streams)
{
this.streams = streams;
}
public Set<Encoder> getEncoders()
{
return this.encoders;
}
public void setEncoders(final Set<Encoder> encoders)
{
this.encoders = encoders;
}
}