e214b1bc59172dda99363b7b4865266dce20ec74
[cfb.git] / prod / net / jaekl / cfb / db / CfbSchema.java
1 package net.jaekl.cfb.db;
2
3 // Copyright (C) 2015 Christian Jaekl
4
5 import static net.jaekl.cfb.db.Column.Null.*;
6 import static net.jaekl.cfb.db.Column.Type.*;
7 import net.jaekl.cfb.db.driver.DbDriver;
8
9
10 public class CfbSchema extends Schema {
11         // Define each table as follows:
12         // {
13         //   { table_name },
14         //   { column_name, type, width (-1 for default), null/not_null }
15         // }
16         private static final Object[][][] TABLES = {
17                 {
18                         // Description of each possible bug
19                         { "BUG" },
20                         { "BUGID", INTEGER, -1, NOT_NULL },
21                         { "TYPE", VARCHAR, 80, NOT_NULL }
22                 },
23                 {
24                         // Description of each possible bug category
25                         { "CATEGORY" },
26                         { "CATEGORYID", INTEGER, -1, NOT_NULL },
27                         { "CATEGORY", VARCHAR, 80, NOT_NULL }
28                 },
29                 { 
30                         // One BugInstance, found during an analysis
31                         { "FOUND" },
32                         { "FOUNDID", INTEGER, -1, NOT_NULL },
33                         { "BUGID", INTEGER, -1, NOT_NULL },
34                         { "CATEGORYID", INTEGER, -1, NOT_NULL },
35                         { "FIRSTLOCID", INTEGER, -1, NOT_NULL },
36                         { "SECONDLOCID", INTEGER, -1, NULL },
37                         { "THIRDLOCID", INTEGER, -1, NULL }
38                 },
39                 {
40                         // Location in the source code referenced by a BugInstance
41                         { "LOCATION" },
42                         { "LOCID", INTEGER, -1, NOT_NULL },
43                         { "CLASSNAME", VARCHAR, 256, NOT_NULL },
44                         { "STARTLINE", INTEGER, -1, NULL },
45                         { "ENDLINE", INTEGER, -1, NULL }
46                 },
47                 {
48                         // Runs of FindBugs, normally one per build version
49                         { "RUN" },
50                         { "RUNID", INTEGER, -1, NOT_NULL },
51                         { "VERSION", VARCHAR, 32, NULL },
52                         { "STARTTIME", TIMESTAMPTZ, -1, NOT_NULL },
53                         { "ENDTIME", TIMESTAMPTZ, -1, NOT_NULL }
54                 }
55         };
56         
57         public CfbSchema(DbDriver driver) {
58                 super("CFB", driver);
59                 
60                 addTables(TABLES);
61         }       
62 }