package org.rhq.coregui.client.util.rpc; import java.util.ArrayList; import java.util.Date; import com.smartgwt.client.data.DSResponse; import org.rhq.coregui.client.util.RPCDataSource; /** * Tracks responses received by {@link RPCDataSource}. * * @author John Mazzitelli */ public class DataSourceResponseStatistics { public static class Record { public Date timestamp; public String requestId; public int status; public Integer totalRows; public Integer startRow; public Integer endRow; private Record(String requestId, DSResponse response) { this.timestamp = new Date(); this.requestId = requestId; this.status = response.getStatus(); this.totalRows = response.getTotalRows(); this.startRow = response.getStartRow(); this.endRow = response.getEndRow(); } } private static boolean enableCollection = false; private static ArrayList<Record> statistics = new ArrayList<Record>(); private DataSourceResponseStatistics() { // static access only } public static boolean isEnableCollection() { return enableCollection; } public static void setEnableCollection(boolean enabled) { enableCollection = enabled; } public static void record(String requestId, DSResponse response) { if (enableCollection) { Record record = new Record(requestId, response); statistics.add(record); } } public static ArrayList<Record> getAll() { return statistics; } public static void clearAll() { statistics.clear(); } }