package org.openlca.core.model;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = "tbl_dq_indicators")
public class DQIndicator extends AbstractEntity implements Comparable<DQIndicator> {
@Column(name = "name")
public String name;
@Column(name = "position")
public int position;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)
@JoinColumn(name = "f_dq_indicator")
public final List<DQScore> scores = new ArrayList<>();
@Override
public int compareTo(DQIndicator o) {
if (o == null)
return 1;
return Integer.compare(position, o.position);
}
@Override
public DQIndicator clone() {
DQIndicator clone = new DQIndicator();
clone.name = name;
clone.position = position;
for (DQScore score : scores) {
clone.scores.add(score.clone());
}
return clone;
}
public DQScore getScore(int pos) {
for (DQScore score : scores) {
if (score.position == pos)
return score;
}
return null;
}
}