X-Git-Url: http://jaekl.net/gitweb/?p=cfb.git;a=blobdiff_plain;f=prod%2Fnet%2Fjaekl%2Fcfb%2Fstore%2FDbStore.java;h=3860ca5637e5c2fd31f93bec95b1d59900dec6d5;hp=69ea8bbafaeb405ce06ce3387e2f9caa3f490678;hb=2769cf82ccae57ee3716aecc9bd694be1f115d92;hpb=8e5bdf0294e85b4419ee1e582d5677cccd3f736e diff --git a/prod/net/jaekl/cfb/store/DbStore.java b/prod/net/jaekl/cfb/store/DbStore.java index 69ea8bb..3860ca5 100644 --- a/prod/net/jaekl/cfb/store/DbStore.java +++ b/prod/net/jaekl/cfb/store/DbStore.java @@ -54,6 +54,7 @@ public class DbStore { Object[][] values = { { Long.valueOf(runId), + analysis.getProjectName(), analysis.getBuildNumber(), analysis.getStart(), analysis.getEnd() @@ -119,6 +120,10 @@ public class DbStore { Location getLoc(Long locId) throws SQLException, TypeMismatchException { + if (null == locId) { + return null; + } + Column[] columns = { CfbSchema.CLASSNAME, CfbSchema.METHODNAME, CfbSchema.METHODROLE, CfbSchema.STARTLINE, CfbSchema.ENDLINE }; Table[] tables = { CfbSchema.LOCATIONS }; Condition[] conditions = { new Condition(CfbSchema.LOCID, locId, Operation.EQUAL) }; @@ -128,8 +133,8 @@ public class DbStore { String className = row.getString(0); String methodName = row.getString(1); String methodRole = row.getString(2); - long startLine = row.getLong(3); - long endLine = row.getLong(4); + Integer startLine = row.getInt(3); + Integer endLine = row.getInt(4); Location loc = new Location(locId, className, methodName, methodRole, startLine, endLine); return loc; @@ -206,6 +211,10 @@ public class DbStore { LocalVariable getVar(Long varId) throws SQLException, TypeMismatchException { + if (null == varId) { + return null; + } + Column[] columns = { CfbSchema.NAME, CfbSchema.VARROLE }; Table[] tables = { CfbSchema.VARIABLES }; Condition[] conditions = { new Condition(CfbSchema.VARID_PK, varId, Operation.EQUAL) }; @@ -279,7 +288,10 @@ public class DbStore { { Column[] columns = { CfbSchema.RUNID }; Table[] tables = { CfbSchema.RUNS }; - Condition[] conditions = { new Condition( CfbSchema.STARTTIME, analysis.getStart(), Operation.LESS_THAN ) }; + Condition[] conditions = { + new Condition( CfbSchema.PROJNAME, analysis.getProjectName(), Operation.EQUAL ), + new Condition( CfbSchema.STARTTIME, analysis.getStart(), Operation.LESS_THAN ) + }; Sort[] sorts = { new Sort( CfbSchema.STARTTIME, Sort.Direction.DESCENDING ) }; int limit = 1; @@ -290,11 +302,11 @@ public class DbStore { return rows.get(0).getLong(0); } - Analysis getAnalysis(Long priorId) throws SQLException, TypeMismatchException + Analysis getAnalysis(Long analysisId) throws SQLException, TypeMismatchException { - Column[] columns = { CfbSchema.VERSION, CfbSchema.STARTTIME, CfbSchema.ENDTIME }; + Column[] columns = { CfbSchema.PROJNAME, CfbSchema.VERSION, CfbSchema.STARTTIME, CfbSchema.ENDTIME }; Table[] tables = { CfbSchema.RUNS }; - Condition[] conditions = { new Condition( CfbSchema.RUNID, priorId, Operation.EQUAL ) }; + Condition[] conditions = { new Condition( CfbSchema.RUNID, analysisId, Operation.EQUAL ) }; List rows = m_driver.select(m_con, columns, tables, conditions); if (rows.size() < 1) { @@ -303,16 +315,17 @@ public class DbStore { Row row = rows.get(0); - String version = row.getString(0); - java.util.Date start= row.getDate(1); - java.util.Date end = row.getDate(2); + String projName = row.getString(0); + String version = row.getString(1); + java.util.Date start= row.getDate(2); + java.util.Date end = row.getDate(3); - Analysis prior = new Analysis(version); - prior.setId(priorId.longValue()); + Analysis prior = new Analysis(projName, version); + prior.setId(analysisId.longValue()); prior.setStart(start); prior.setEnd(end); - prior.setBugCollection(getBugCollection(priorId)); + prior.setBugCollection(getBugCollection(analysisId)); return prior; } @@ -341,21 +354,21 @@ public class DbStore { for (Row row : rows) { // long foundId = row.getLong(0); - long bugId = row.getLong(1); - long categoryId = row.getLong(2); - long firstLocId = row.getLong(3); - long secondLocId = row.getLong(4); - long thirdLocId = row.getLong(5); - long varId = row.getLong(6); + Long bugId = row.getLong(1); + Long categoryId = row.getLong(2); + Long firstLocId = row.getLong(3); + Long secondLocId = row.getLong(4); + Long thirdLocId = row.getLong(5); + Long varId = row.getLong(6); String bugType = getBugType(bugId); String category = getCategoryName(categoryId); Location[] locations = { getLoc(firstLocId), getLoc(secondLocId), getLoc(thirdLocId) }; - LocalVariable[] vars = { getVar(Long.valueOf(varId)) }; + LocalVariable[] vars = { getVar(varId) }; BugInstance bug = new BugInstance(bugId, category, bugType, locations, vars); - coll.getBugs().add(bug); + coll.add(bug); } return coll;