package railo.runtime.debug;
import railo.runtime.PageSource;
import railo.runtime.op.Caster;
public abstract class DebugEntrySupport implements DebugEntry {
private static final long serialVersionUID = -2495816599745340388L;
private static int _id=1;
private String id;
private long exeTime;
private String path;
private int count=1;
private long min=0;
private long max=0;
/**
* constructor of the class
* @param source
* @param key
*/
protected DebugEntrySupport(PageSource source) {
this.path=source==null?"":source.getDisplayPath();
id=Caster.toString(++_id);
}
@Override
public long getExeTime() {
return positiv(exeTime);
}
@Override
public void updateExeTime(long exeTime) {
if(exeTime>=0) {
if(count==1 || min>exeTime)min=exeTime;
if(max<exeTime)max=exeTime;
this.exeTime += exeTime;
}
}
@Override
public String getPath() {
return path;
}
@Override
public String getId() {
return id;
}
/**
* increment the inner counter
*/
protected void countPP() {
count++;
}
@Override
public int getCount() {
return count;
}
@Override
public long getMax() {
return positiv(max);
}
@Override
public long getMin() {
return positiv(min);
}
protected long positiv(long time) {
if(time<0)return 0;
return time;
}
}