/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.uff.ic.oceano.core.model;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
/**
*
* @author DanCastellani
*/
@Entity
@Table(name = "MetricValue",
uniqueConstraints =
@UniqueConstraint(columnNames = {"idRevision", "idMetric", "delta"}))
@NamedQueries({
@NamedQuery(name = "MetricValue.getMetricValueId", query = "select mv.id from MetricValue mv where mv.revision = ? and mv.metric = ? and mv.delta = ?"),
@NamedQuery(name = "MetricValue.getAll", query = "select m from MetricValue m"),
@NamedQuery(name = "MetricValue.getByRevision", query = "select mv from MetricValue mv where mv.revision = ?"),
@NamedQuery(name = "MetricValue.getByRevisionMetricAndDelta", query = "select mv from MetricValue mv where mv.revision = ? and mv.metric = ? and mv.delta = ?"),
@NamedQuery(name = "MetricValue.getValuesByProjectAndMetric", query = "select mv from MetricValue mv where mv.revision.project = ? and mv.metric = ? and mv.delta = ? order by mv.revision.number"),
@NamedQuery(name = "MetricValue.getAllSortedByConfigurationAndMetric", query = "select mv from MetricValue mv join mv.metric me order by mv.revision.number, me.name")
})
@SequenceGenerator(name = "MetricValue_seq", sequenceName = "MetricValue_seq")
public class MetricValue implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "MetricValue_seq")
private Long id;
private Double doubleValue;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "idRevision")
private Revision revision;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "idMetric")
private Metric metric;
private boolean delta = false;
public static MetricValue createMetricValueWithZero(Revision revision, Metric metric) {
MetricValue mv = new MetricValue();
mv.setDoubleValue(0D);
mv.setRevision(revision);
mv.setMetric(metric);
return mv;
}
public MetricValue() {
}
public MetricValue(Revision revision, Metric metric, Double metricValue) {
this.revision = revision;
this.metric = metric;
this.doubleValue = metricValue;
}
@Override
public String toString() {
return this.metric.getName() + "(" + revision.getProject().getConfigurationItem().getName() + ":" + revision.getNumber() + ") = " + this.doubleValue;
}
/**
* @return the id
*/
public Long getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(Long id) {
this.id = id;
}
/**
* @return the revision
*/
public Revision getRevision() {
return revision;
}
/**
* @param revision the revision to set
*/
public void setRevision(Revision revision) {
this.revision = revision;
}
/**
* @return the metric
*/
public Metric getMetric() {
return metric;
}
/**
* @param metric the metric to set
*/
public void setMetric(Metric metric) {
this.metric = metric;
}
/**
* @return the delta
*/
public boolean isDelta() {
return delta;
}
/**
* @param delta the delta to set
*/
public void setDelta(boolean delta) {
this.delta = delta;
}
/**
* @return the doubleValue
*/
public Double getDoubleValue() {
return doubleValue;
}
/**
* @param doubleValue the doubleValue to set
*/
public void setDoubleValue(Double doubleValue) {
this.doubleValue = doubleValue;
}
}