package com.ikokoon.serenity.model;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
/**
* @author Michael Couck
* @since 12.08.09
* @version 01.00
*/
@Entity
@Unique(fields = { Composite.CLASS_NAME, Composite.NAME, Composite.DESCRIPTION })
public class Method<E, F> extends Composite<Class<?, ?>, Line<?, ?>> implements Comparable<Method<?, ?>>, Serializable {
/** General. */
private String name;
private String className;
private int access;
private String description;
/** Coverage/complexity. */
private double complexity;
private double coverage;
/** Profiling. */
private int invocations;
private long startTime;
private long endTime;
private long netTime;
private long totalTime;
private long startWait;
private long endWait;
private long waitTime;
private List<Snapshot<?, ?>> snapshots = new ArrayList<Snapshot<?, ?>>();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAccess() {
return access;
}
public void setAccess(int access) {
this.access = access;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
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;
}
/** Profiling attributes. */
public int getInvocations() {
return invocations;
}
public void setInvocations(int invocations) {
this.invocations = invocations;
}
public long getStartTime() {
return startTime;
}
public void setStartTime(long startTime) {
this.startTime = startTime;
}
public long getEndTime() {
return endTime;
}
public void setEndTime(long endTime) {
this.endTime = endTime;
}
public long getNetTime() {
return netTime;
}
public void setNetTime(long netTime) {
this.netTime = netTime;
}
public long getTotalTime() {
return totalTime;
}
public void setTotalTime(long totalTime) {
this.totalTime = totalTime;
}
public long getStartWait() {
return startWait;
}
public void setStartWait(long startWait) {
this.startWait = startWait;
}
public long getEndWait() {
return endWait;
}
public void setEndWait(long endWait) {
this.endWait = endWait;
}
public long getWaitTime() {
return waitTime;
}
public void setWaitTime(long waitTime) {
this.waitTime = waitTime;
}
public List<Snapshot<?, ?>> getSnapshots() {
return snapshots;
}
public void setSnapshots(List<Snapshot<?, ?>> snapshots) {
this.snapshots = snapshots;
}
public String toString() {
return getId() + ":" + name;
}
public void reset() {
setEndTime(0);
setEndWait(0);
setInvocations(0);
setNetTime(0);
setStartTime(0);
setStartWait(0);
setTotalTime(0);
}
public int compareTo(Method<?, ?> 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;
}
}