+package net.jaekl.cfb.db;
+
+import static net.jaekl.cfb.db.Column.Null.*;
+import static net.jaekl.cfb.db.Column.Type.*;
+import net.jaekl.cfb.db.driver.DbDriver;
+
+
+public class CfbSchema extends Schema {
+ // Define each table as follows:
+ // {
+ // { table_name },
+ // { column_name, type, width (-1 for default), null/not_null }
+ // }
+ private static final Object[][][] TABLES = {
+ {
+ { "BUGS" },
+ { "BUGID", INTEGER, -1, NOT_NULL },
+ { "TYPE", VARCHAR, 80, NOT_NULL },
+ { "SHORTDESCR", VARCHAR, 128, NOT_NULL },
+ { "LONGDESCR", VARCHAR, 128, NOT_NULL },
+ { "DETAILS", VARCHAR, 4096, NOT_NULL }
+ },
+ {
+ { "CATEGORIES" },
+ { "CATEGORYID", INTEGER, -1, NOT_NULL },
+ { "DESCRIPTION", VARCHAR, 128, NOT_NULL },
+ { "ABBREVIATION", CHAR, 1, NOT_NULL },
+ { "DETAILS", VARCHAR, 4096, NOT_NULL }
+ },
+ {
+ { "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" },
+ { "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
+ { "RUNS " },
+ { "RUNID", INTEGER, -1, NOT_NULL },
+ { "VERSION", VARCHAR, 32, NULL },
+ { "START", TIMESTAMPTZ, -1, NOT_NULL },
+ { "END", TIMESTAMPTZ, -1, NOT_NULL }
+ }
+ };
+
+ public CfbSchema(DbDriver driver) {
+ super("CFB", driver);
+
+ addTables(TABLES);
+ }
+}