package jeql.monitor;
import jeql.monitor.MonitorRowList.MonitorRowIterator;
public class MonitorItem
{
private static final String ITEM_NAME_LINE_SEP = " : ";
private int line;
private String name;
private String tag;
private MonitorRowList mrl;
private MonitorRowIterator mri;
private String rowDesc;
private long lastScanCount;
private long lastRowCount;
private boolean isActive = false;
public MonitorItem(MonitorRowList mrl, MonitorRowIterator mri)
{
this.line = mrl.getLine();
name = mrl.getName() + ITEM_NAME_LINE_SEP + line;
this.tag = mrl.getSource();
this.mrl = mrl;
setIterator(mri);
}
public int getLine() { return line; }
public String getName() { return name; }
public String getTag() { return tag; }
public MonitorRowList getRowList() { return mrl; }
public long getScanCount()
{
return mri.getScanCount();
}
public long getRowCount()
{
return mri.getRowCount();
}
public long getTotalRowCount()
{
if (mrl != null) {
return mrl.getTotalRowCount();
}
return 0;
}
public String getRowDesc()
{
String newDesc = mri.rowDesc();
if (rowDesc == null || newDesc.length() > 0)
rowDesc = newDesc;
return rowDesc;
}
public void updateActive()
{
isActive = lastScanCount != mri.getScanCount() || lastRowCount != mri.getRowCount();
lastScanCount = mri.getScanCount();
lastRowCount = mri.getRowCount();
}
public boolean isActive()
{
return isActive;
}
public boolean isEqual(MonitorRowList mrl)
{
return this.mrl == mrl;
}
public void setIterator(MonitorRowIterator mri)
{
this.mri = mri;
}
public String toString()
{
if (mri != null) return mri.toString();
return "XXXX";
}
}