Improve XML parsing to handle attributes as well.
[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                         { "BUGS" },
19                         { "BUGID", INTEGER, -1, NOT_NULL },
20                         { "TYPE", VARCHAR, 80, NOT_NULL },
21                         { "SHORTDESCR", VARCHAR, 128, NOT_NULL },
22                         { "LONGDESCR", VARCHAR, 128, NOT_NULL },
23                         { "DETAILS", VARCHAR, 4096, NOT_NULL }
24                 },
25                 {
26                         { "CATEGORIES" },
27                         { "CATEGORYID", INTEGER, -1, NOT_NULL },
28                         { "DESCRIPTION", VARCHAR, 128, NOT_NULL },
29                         { "ABBREVIATION", CHAR, 1, NOT_NULL },
30                         { "DETAILS", VARCHAR, 4096, NOT_NULL }
31                 },
32                 { 
33                         { "FOUND" },
34                         { "FOUNDID", INTEGER, -1, NOT_NULL },
35                         { "BUGID", INTEGER, -1, NOT_NULL },
36                         { "CATEGORYID", INTEGER, -1, NOT_NULL },
37                         { "FIRSTLOCID", INTEGER, -1, NOT_NULL },
38                         { "SECONDLOCID", INTEGER, -1, NULL },
39                         { "THIRDLOCID", INTEGER, -1, NULL }
40                 },
41                 {
42                         { "LOCATION" },
43                         { "LOCID", INTEGER, -1, NOT_NULL },
44                         { "CLASSNAME", VARCHAR, 256, NOT_NULL },
45                         { "STARTLINE", INTEGER, -1, NULL },
46                         { "ENDLINE", INTEGER, -1, NULL }
47                 },
48                 {
49                         // Runs of FindBugs, normally one per build version
50                         { "RUNS" },
51                         { "RUNID", INTEGER, -1, NOT_NULL },
52                         { "VERSION", VARCHAR, 32, NULL },
53                         { "STARTTIME", TIMESTAMPTZ, -1, NOT_NULL },
54                         { "ENDTIME", TIMESTAMPTZ, -1, NOT_NULL }
55                 }
56         };
57         
58         public CfbSchema(DbDriver driver) {
59                 super("CFB", driver);
60                 
61                 addTables(TABLES);
62         }       
63 }