X-Git-Url: http://jaekl.net/gitweb/?p=cfb.git;a=blobdiff_plain;f=prod%2Fnet%2Fjaekl%2Fcfb%2Fdb%2FCfbSchema.java;h=1b989ff5e3ba6a91c372d06dd32e29b86715d9ff;hp=e214b1bc59172dda99363b7b4865266dce20ec74;hb=083fb5094456d37fa4765400a461625635fbf77d;hpb=3c10b6100c6035a65ce37dea846b027135289f67 diff --git a/prod/net/jaekl/cfb/db/CfbSchema.java b/prod/net/jaekl/cfb/db/CfbSchema.java index e214b1b..1b989ff 100644 --- a/prod/net/jaekl/cfb/db/CfbSchema.java +++ b/prod/net/jaekl/cfb/db/CfbSchema.java @@ -4,59 +4,119 @@ package net.jaekl.cfb.db; import static net.jaekl.cfb.db.Column.Null.*; import static net.jaekl.cfb.db.Column.Type.*; + +import java.sql.Connection; +import java.sql.SQLException; + +import net.jaekl.cfb.analyze.MessageMap; import net.jaekl.cfb.db.driver.DbDriver; public class CfbSchema extends Schema { + MessageMap m_msgMap; + + public static final Sequence BUG_SEQ = new Sequence("BUG_SEQ"); + public static final Sequence CATEGORY_SEQ = new Sequence("CATEGORY_SEQ"); + public static final Sequence FOUND_SEQ = new Sequence("FOUND_SEQ"); + public static final Sequence LOC_SEQ = new Sequence("LOC_SEQ"); + public static final Sequence RUN_SEQ = new Sequence("RUN_SEQ"); + + public static final String BUGID = "BUGID"; + public static final String CATEGORYID = "CATEGORYID"; + public static final String FOUNDID = "FOUNDID"; + public static final String LOCID = "LOCID"; + public static final String RUNID = "RUNID"; + // Define each table as follows: // { // { table_name }, // { column_name, type, width (-1 for default), null/not_null } // } - private static final Object[][][] TABLES = { - { - // Description of each possible bug - { "BUG" }, - { "BUGID", INTEGER, -1, NOT_NULL }, - { "TYPE", VARCHAR, 80, NOT_NULL } - }, - { - // Description of each possible bug category - { "CATEGORY" }, - { "CATEGORYID", INTEGER, -1, NOT_NULL }, - { "CATEGORY", VARCHAR, 80, NOT_NULL } - }, - { - // One BugInstance, found during an analysis - { "FOUND" }, - { "FOUNDID", INTEGER, -1, NOT_NULL }, - { "BUGID", INTEGER, -1, NOT_NULL }, - { "CATEGORYID", INTEGER, -1, NOT_NULL }, - { "FIRSTLOCID", INTEGER, -1, NOT_NULL }, - { "SECONDLOCID", INTEGER, -1, NULL }, - { "THIRDLOCID", INTEGER, -1, NULL } - }, - { - // Location in the source code referenced by a BugInstance - { "LOCATION" }, - { "LOCID", INTEGER, -1, NOT_NULL }, - { "CLASSNAME", VARCHAR, 256, NOT_NULL }, - { "STARTLINE", INTEGER, -1, NULL }, - { "ENDLINE", INTEGER, -1, NULL } - }, - { - // Runs of FindBugs, normally one per build version - { "RUN" }, - { "RUNID", INTEGER, -1, NOT_NULL }, - { "VERSION", VARCHAR, 32, NULL }, - { "STARTTIME", TIMESTAMPTZ, -1, NOT_NULL }, - { "ENDTIME", TIMESTAMPTZ, -1, NOT_NULL } - } - }; + private static final Object[][] BUGS_DEFN = + { + // Description of each possible bug + { "BUG" }, + { BUGID, INTEGER, -1, NOT_NULL }, + { "TYPE", VARCHAR, 80, NOT_NULL } + }; + private static final Object[][] CATEGORIES_DEFN = + { + // Description of each possible bug category + { "CATEGORY" }, + { CATEGORYID, INTEGER, -1, NOT_NULL }, + { "CATEGORY", VARCHAR, 80, NOT_NULL } + }; + private static final Object[][] FOUND_DEFN = + { + // One BugInstance, found during an analysis + { "FOUND" }, + { FOUNDID, INTEGER, -1, NOT_NULL }, + { "BUGID", INTEGER, -1, NOT_NULL }, + { "CATEGORYID", INTEGER, -1, NOT_NULL }, + { "FIRSTLOCID", INTEGER, -1, NOT_NULL }, + { "SECONDLOCID", INTEGER, -1, NULL }, + { "THIRDLOCID", INTEGER, -1, NULL } + }; + private static final Object[][] LOCATIONS_DEFN = + { + // Location in the source code referenced by a BugInstance + { "LOCATION" }, + { LOCID, INTEGER, -1, NOT_NULL }, + { "CLASSNAME", VARCHAR, 256, NOT_NULL }, + { "STARTLINE", INTEGER, -1, NULL }, + { "ENDLINE", INTEGER, -1, NULL } + }; + private static final Object[][] RUNS_DEFN = + { + // Runs of FindBugs, normally one per build version + { "RUN" }, + { RUNID, INTEGER, -1, NOT_NULL }, + { "VERSION", VARCHAR, 32, NULL }, + { "STARTTIME", TIMESTAMPTZ, -1, NOT_NULL }, + { "ENDTIME", TIMESTAMPTZ, -1, NOT_NULL } + }; + + public static final Table BUGS = Table.construct(BUGS_DEFN); + public static final Table CATEGORIES = Table.construct(CATEGORIES_DEFN); + public static final Table FOUND = Table.construct(FOUND_DEFN); + public static final Table LOCATIONS = Table.construct(LOCATIONS_DEFN); + public static final Table RUNS = Table.construct(RUNS_DEFN); + + private static final Sequence[] SEQUENCES = { + BUG_SEQ, + CATEGORY_SEQ, + FOUND_SEQ, + LOC_SEQ, + RUN_SEQ + }; + + private static final Table[] TABLES = { + BUGS, + CATEGORIES, + FOUND, + LOCATIONS, + RUNS + }; public CfbSchema(DbDriver driver) { super("CFB", driver); + + m_msgMap = null; addTables(TABLES); - } + addSequences(SEQUENCES); + } + + public void setMessageMap(MessageMap msgMap) { + m_msgMap = msgMap; + } + + @Override + boolean postCreationInit(Connection con) throws SQLException { + assert(null != m_msgMap); + + + + return true; + } }