package com.ikokoon.serenity.model;
import java.io.Serializable;
import java.util.Set;
import java.util.TreeSet;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToMany;
/**
* @author Michael Couck
* @since 12.08.09
* @version 01.00
*/
@Entity
@Unique(fields = { Composite.NAME })
public class Package<E, F> extends Composite<Project<?, ?>, Class<?, ?>> implements Comparable<Package<?, ?>>, Serializable {
private String name;
private double coverage;
private double complexity;
private double abstractness;
private double stability;
private double distance;
private double lines;
private double interfaces;
private double implementations;
private double executed;
private double efference;
private double afference;
private Set<Efferent> efferent = new TreeSet<Efferent>();
private Set<Afferent> afferent = new TreeSet<Afferent>();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getLines() {
return lines;
}
public void setLines(double lines) {
this.lines = lines;
}
public double getExecuted() {
return executed;
}
public void setExecuted(double totalLinesExecuted) {
this.executed = totalLinesExecuted;
}
public double getComplexity() {
return complexity;
}
public void setComplexity(double complexity) {
this.complexity = complexity;
}
public double getCoverage() {
return coverage;
}
public void setCoverage(double coverage) {
this.coverage = coverage;
}
public double getAbstractness() {
return abstractness;
}
public void setAbstractness(double abstractness) {
this.abstractness = abstractness;
}
public double getStability() {
return stability;
}
public void setStability(double stability) {
this.stability = stability;
}
public double getDistance() {
return distance;
}
public void setDistance(double distance) {
this.distance = distance;
}
public double getInterfaces() {
return interfaces;
}
public void setInterfaces(double interfaces) {
this.interfaces = interfaces;
}
public double getImplementations() {
return implementations;
}
public void setImplementations(double implementations) {
this.implementations = implementations;
}
public double getEfference() {
return efference;
}
public void setEfference(double efferent) {
this.efference = efferent;
}
public double getAfference() {
return afference;
}
public void setAfference(double afferent) {
this.afference = afferent;
}
@ManyToMany(cascade = { CascadeType.MERGE, CascadeType.REFRESH }, fetch = FetchType.LAZY)
public Set<Efferent> getEfferent() {
return efferent;
}
public void setEfferent(Set<Efferent> efference) {
this.efferent = efference;
}
@ManyToMany(cascade = { CascadeType.MERGE, CascadeType.REFRESH }, fetch = FetchType.LAZY)
public Set<Afferent> getAfferent() {
return afferent;
}
public void setAfferent(Set<Afferent> afference) {
this.afferent = afference;
}
public String toString() {
return getId() + ":" + name;
}
public int compareTo(Package<?, ?> o) {
int comparison = 0;
if (this.getId() != null && o.getId() != null) {
comparison = this.getId().compareTo(o.getId());
} else {
if (this.getName() != null && o.getName() != null) {
comparison = this.getName().compareTo(o.getName());
}
}
return comparison;
}
}