KickJava   Java API By Example, From Geeks To Geeks.

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


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: IndexIdentifier.java,v 1.4 2003/02/26 00:22:50 jackknifebarber Exp $
9  */

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