KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > triactive > jdo > store > ForeignKeyIdentifier


1 /*
2  * Copyright 2002 (C) TJDO.
3  * All rights reserved.
4  *
5  * This software is distributed under the terms of the TJDO License version 1.0.
6  * See the terms of the TJDO License in the documentation provided with this software.
7  *
8  * $Id: ForeignKeyIdentifier.java,v 1.4 2003/02/26 00:22:47 jackknifebarber Exp $
9  */

10
11 package com.triactive.jdo.store;
12
13
14 class ForeignKeyIdentifier extends SQLIdentifier
15 {
16     public static final int MAX_FOREIGN_KEYS = 36;
17
18     public ForeignKeyIdentifier(BaseTable table, int seq)
19     {
20         super(table.getStoreManager().getDatabaseAdapter());
21
22         this.javaName = null;
23
24         char suffix;
25
26         if (seq < 10)
27             suffix = (char)('0' + seq);
28         else if (seq < MAX_FOREIGN_KEYS)
29             suffix = (char)('A' + seq);
30         else
31             throw new TooManyForeignKeysException(table);
32
33         String JavaDoc baseID = truncate(table.getName().getSQLIdentifier(), getMaxLength() - 4);
34
35         setSQLIdentifier(baseID + "_FK" + suffix);
36     }
37
38
39     protected int getMaxLength()
40     {
41         return dba.getMaxConstraintNameLength();
42     }
43 }
44
Popular Tags