01: package simpleorm.examples;
02:
03: import simpleorm.core.*;
04: import java.sql.*;
05: import java.io.*;
06:
07: /**
08: This provides a basic test of foreign key references and in
09: particular identifying foreign keys. The internal data structures
10: created by these record definitions is illustrated in the following
11: diagram which may be useful.
12:
13: <img src="../../extraDocs/SOrmEgUML.png"> */
14: public class ReferenceTest {
15: public static void main(String[] argv) throws Exception {
16: TestUte.initializeTest(ReferenceTest.class);
17: System.err.println(XX.meta.allFieldsString());
18: System.err.println(YY.meta.allFieldsString());
19: System.err.println(ZZ.meta.allFieldsString());
20: createTables();
21: SConnection.detachAndClose();
22: }
23:
24: /** Helper that just creates the createdb.sql script file for the
25: database. This can be referenced as part of the build process.*/
26: static void createTables() throws Exception {
27:
28: //File file = new File("createdb.sql");
29: //FileOutputStream fis = new FileOutputStream(file);
30: PrintStream out = System.out; //new PrintStream(fis);
31: out.println(XX.meta.createTableSQL() + ";\n");
32: out.println(YY.meta.createTableSQL() + ";\n");
33: out.println(ZZ.meta.createTableSQL() + ";\n");
34:
35: //out.close();
36: }
37:
38: public static class YY extends SRecordInstance implements
39: SConstants {
40:
41: public static final SRecordMeta meta = new SRecordMeta(
42: YY.class, "XX_YY");
43:
44: static final SFieldReference XXR = new SFieldReference(meta,
45: XX.meta, null, SFD_PRIMARY_KEY);
46:
47: public static final SFieldString YY_ID = new SFieldString(meta,
48: "YY_ID", 10, SFD_PRIMARY_KEY);
49:
50: public static final SFieldString YNAME = new SFieldString(meta,
51: "YNAME", 10, SFD_DESCRIPTIVE);
52:
53: public SRecordMeta getMeta() {
54: return meta;
55: };
56: }
57:
58: public static class ZZ extends SRecordInstance implements
59: SConstants {
60:
61: public static final SRecordMeta meta = new SRecordMeta(
62: ZZ.class, "XX_ZZ");
63:
64: static final SFieldReference YYR = new SFieldReference(meta,
65: YY.meta, "", SFD_PRIMARY_KEY);
66:
67: public static final SFieldInteger ZZ_ID = new SFieldInteger(
68: meta, "ZZ_ID", SFD_PRIMARY_KEY);
69:
70: public static final SFieldString YNAME = new SFieldString(meta,
71: "ZNAME", 10, SFD_DESCRIPTIVE);
72:
73: public SRecordMeta getMeta() {
74: return meta;
75: };
76: }
77:
78: public static class XX extends SRecordInstance implements
79: SConstants {
80:
81: public static final SRecordMeta meta = new SRecordMeta(
82: XX.class, "XX_XX");
83:
84: public static final SFieldInteger XX_ID = new SFieldInteger(
85: meta, "XX_ID", SFD_PRIMARY_KEY);
86:
87: public static final SFieldString XNAME = new SFieldString(meta,
88: "XNAME", 10, SFD_DESCRIPTIVE);
89:
90: public SRecordMeta getMeta() {
91: return meta;
92: };
93: }
94:
95: }
|