001/* 002 * JKNIV, SQLegance keeping queries maintainable. 003 * 004 * Copyright (C) 2017, the original author or authors. 005 * 006 * This library is free software; you can redistribute it and/or 007 * modify it under the terms of the GNU Lesser General Public 008 * License as published by the Free Software Foundation; either 009 * version 2.1 of the License. 010 * 011 * This library is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 014 * Lesser General Public License for more details. 015 * 016 * You should have received a copy of the GNU Lesser General Public 017 * License along with this library; if not, write to the Free Software Foundation, Inc., 018 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 019 */ 020package net.sf.jkniv.sqlegance; 021 022/** 023 * Statistical data for query execution 024 * 025 * @author Alisson Gomes 026 * @since 0.6.0 027 * 028 */ 029public interface Statistical 030{ 031 /** 032 * add time to statistics 033 * @param time milliseconds 034 */ 035 void add(long time); 036 037 /** 038 * Add a exception data to statistical keeping the 039 * first, last and total exceptions registered. 040 * @param e exception 041 */ 042 void add(Exception e); 043 044 /** 045 * maximum time execution 046 * @return maximum milliseconds execution 047 */ 048 long getMaxTime(); 049 050 /** 051 * minimum time execution 052 * @return minimum milliseconds execution 053 */ 054 long getMinTime(); 055 056 /** 057 * average time execution 058 * @return average milliseconds execution 059 */ 060 long getAvgTime(); 061 062 /** 063 * total time execution 064 * @return total milliseconds execution 065 */ 066 long getTotalTime(); 067 068 /** 069 * first time execution 070 * @return total milliseconds execution 071 */ 072 long getFirstTime(); 073 074 /** 075 * last time execution 076 * @return total milliseconds execution 077 */ 078 long getLastTime(); 079 080 /** 081 * times executed 082 * @return times executed 083 */ 084 long getCount(); 085 086 /** 087 * the total of execution with error 088 * @return quantity of errors happened 089 */ 090 long getTotalException(); 091 092 /** 093 * The first error happened 094 * @return the first error 095 */ 096 Exception getFirstException(); 097 098 /** 099 * The last error happened 100 * @return the last error 101 */ 102 Exception getLastException(); 103}