}\r
\r
public List<List<Object>> getSystemDataFromDB(long start, long end) {\r
- String where = "WHERE SAMPLING_TIME BETWEEN " + start + " AND " + end\r
- + " ORDER BY SAMPLING_TIME";\r
+ String where = ""; \r
+ if (start != 0 || end != 0) {\r
+ where = String.format("WHERE %s BETWEEN %s AND %s", SystemMemoryDBTable.COLUMN.SAMPLING_TIME.name, Long.toString(start), Long.toString(end));\r
+ }\r
+ \r
+ where += " ORDER BY " + SystemMemoryDBTable.COLUMN.SAMPLING_TIME.name;\r
+\r
List<List<Object>> result = systemMemoryDBTable.selectAllColumnData(where);\r
\r
if (result != null) {\r
List<Long> output = null;\r
\r
String tableName = systemMemoryDBTable.getTableName();\r
- String columnName = SystemMemoryDBTable.MEMORY_USAGE_SYSTEM;\r
- String timecolumn = SystemMemoryDBTable.SAMPLING_TIME;\r
+ String columnName = SystemMemoryDBTable.COLUMN.MEMORY_USAGE_SYSTEM.name;\r
+ String timecolumn = SystemMemoryDBTable.COLUMN.SAMPLING_TIME.name;\r
\r
output = getColumnLongFromDB(tableName, columnName, timecolumn, start, end);\r
\r
\r
public Map<Integer, List<List<Object>>> getTargetProcessDataMapFromDB(long start, long end, int targetPID) {\r
Map<Integer, List<List<Object>>> processedResult = new HashMap<Integer, List<List<Object>>>();\r
- String where = "WHERE SAMPLING_TIME BETWEEN " + start + " AND " + end;\r
+ String where = "WHERE"; \r
+ if (start != 0 || end != 0) {\r
+ where += String.format(" %s BETWEEN %s AND %s", ProcessMemoryDBTable.COLUMN.SAMPLING_TIME.name, Long.toString(start), Long.toString(end));\r
+ }\r
+ \r
if (targetPID > 0) {\r
- where += " AND PID = " + targetPID;\r
+ if (start != 0 || end != 0) \r
+ where += " AND";\r
+ \r
+ where += String.format(" %s = %s", ProcessMemoryDBTable.COLUMN.PID.name, Integer.toString(targetPID));\r
} else {\r
// Do nothing. Get information from all processes.\r
}\r
- where += " ORDER BY SAMPLING_TIME";\r
+ \r
+ if(where == "WHERE") {\r
+ where = "";\r
+ }\r
+ \r
+ where += " ORDER BY " + ProcessMemoryDBTable.COLUMN.SAMPLING_TIME.name;\r
\r
List<List<Object>> queryResult = processMemoryDBTable.selectAllColumnData(where);\r
if (queryResult == null) {\r
public long getSystemMemoriesFromDB(long time) {\r
long processMemories = 0;\r
String tableName = systemMemoryDBTable.getTableName();\r
- String columnName = SystemMemoryDBTable.MEMORY_USAGE_SYSTEM;\r
- String timecolumn = SystemMemoryDBTable.SAMPLING_TIME;\r
+ String columnName = SystemMemoryDBTable.COLUMN.MEMORY_USAGE_SYSTEM.name;\r
+ String timecolumn = SystemMemoryDBTable.COLUMN.SAMPLING_TIME.name;\r
\r
String query = "SELECT "+columnName+" FROM "+tableName+" WHERE "+timecolumn+" = "\r
+ "(SELECT MAX("+timecolumn+") FROM "+tableName+" WHERE "+timecolumn+" <= "\r
public class SystemMemoryDBTable extends DBTable {
private static final String TABLENAME = "MEMORY_SYSTEM_DATA";
- public static enum COLUMN {
- SAMPLING_TIME,
- MEMORY_USAGE_SYSTEM,
- PROCESS_PID_OTHER,
- PROCESS_LOAD_OTHER,
- }
+ public enum COLUMN {
+ SAMPLING_TIME(0, "SAMPLING_TIME"),
+ MEMORY_USAGE_SYSTEM(1, "MEMORY_USAGE_SYSTEM"),
+ PROCESS_PID_OTHER(2, "PROCESS_PID_OTHER"),
+ PROCESS_LOAD_OTHER(3, "PROCESS_LOAD_OTHER");
+
+ public final int index;
+ public final String name;
- public static final String SAMPLING_TIME = "SAMPLING_TIME";
- public static final String MEMORY_USAGE_SYSTEM = "MEMORY_USAGE_SYSTEM";
- public static final String PROCESS_PID_OTHER = "PROCESS_PID_OTHER";
- public static final String PROCESS_LOAD_OTHER = "PROCESS_LOAD_OTHER";
+ COLUMN(int index, String name) {
+ this.index = index;
+ this.name = name;
+ }
+ }
public SystemMemoryDBTable() {
- addColumn(new DBColumn(SAMPLING_TIME, DBConstants.NOT_NULL, DBConstants.DBTYPE_LONG));
- addColumn(new DBColumn(MEMORY_USAGE_SYSTEM, DBConstants.EMPTY, DBConstants.DBTYPE_LONG));
- addColumn(new DBColumn(PROCESS_PID_OTHER, DBConstants.EMPTY, DBConstants.INTEGER_ARRAY));
- addColumn(new DBColumn(PROCESS_LOAD_OTHER, DBConstants.EMPTY, DBConstants.FLOAT_ARRAY));
+ addColumn(new DBColumn(COLUMN.SAMPLING_TIME.name, DBConstants.NOT_NULL, DBConstants.DBTYPE_LONG));
+ addColumn(new DBColumn(COLUMN.MEMORY_USAGE_SYSTEM.name, DBConstants.EMPTY, DBConstants.DBTYPE_LONG));
+ addColumn(new DBColumn(COLUMN.PROCESS_PID_OTHER.name, DBConstants.EMPTY, DBConstants.INTEGER_ARRAY));
+ addColumn(new DBColumn(COLUMN.PROCESS_LOAD_OTHER.name, DBConstants.EMPTY, DBConstants.FLOAT_ARRAY));
setIndexColumn(COLUMN.SAMPLING_TIME.ordinal());
}
} else {
try {
int index = 1;
- prep.setLong(index++, (Long) (rowData.get(COLUMN.SAMPLING_TIME.ordinal())));
- prep.setLong(index++, (Long) (rowData.get(COLUMN.MEMORY_USAGE_SYSTEM.ordinal())));
- setArrayToPreparedStatement(COLUMN.PROCESS_PID_OTHER.ordinal(),
+ prep.setLong(index++, (Long) (rowData.get(COLUMN.SAMPLING_TIME.index)));
+ prep.setLong(index++, (Long) (rowData.get(COLUMN.MEMORY_USAGE_SYSTEM.index)));
+ setArrayToPreparedStatement(COLUMN.PROCESS_PID_OTHER.index,
DBConstants.DBTYPE_INT4, prep, rowData);
- setArrayToPreparedStatement(COLUMN.PROCESS_LOAD_OTHER.ordinal(), DBConstants.DBTYPE_FLOAT,
+ setArrayToPreparedStatement(COLUMN.PROCESS_LOAD_OTHER.index, DBConstants.DBTYPE_FLOAT,
prep, rowData);
} catch (SQLException e) {
Logger.exception(e);