1 package org.apache.torque.engine.database.model;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import java.util.List;
20
21 import org.apache.torque.engine.EngineException;
22
23 /***
24 * The generic interface to a name generation algorithm.
25 *
26 * @author <a href="mailto:dlr@finemaltcoding.com>Daniel Rall</a>
27 * @author <a href="mailto:byron_foster@byron_foster@yahoo.com>Byron Foster</a>
28 * @version $Id: NameGenerator.java 239624 2005-08-24 12:18:03Z henning $
29 */
30 public interface NameGenerator
31 {
32 /***
33 * The character used by most implementations as the separator
34 * between name elements.
35 */
36 char STD_SEPARATOR_CHAR = '_';
37
38 /***
39 * The character which separates the schema name from the table name
40 */
41 char SCHEMA_SEPARATOR_CHAR = '.';
42
43 /***
44 * Traditional method for converting schema table and column names
45 * to java names. The <code>CONV_METHOD_XXX</code> constants
46 * define how names for columns and tables in the database schema
47 * will be converted to java source names.
48 *
49 * @see JavaNameGenerator#underscoreMethod(String)
50 */
51 String CONV_METHOD_UNDERSCORE = "underscore";
52
53 /***
54 * Similar to {@link #CONV_METHOD_UNDERSCORE} except a possible
55 * schema name (preceding a dot (.) )is omitted
56 *
57 * @see JavaNameGenerator#underscoreOmitSchemaMethod(String)
58 */
59 String CONV_METHOD_UNDERSCORE_OMIT_SCHEMA = "underscoreOmitSchema";
60
61 /***
62 * Similar to {@link #CONV_METHOD_UNDERSCORE} except nothing is
63 * converted to lowercase.
64 *
65 * @see JavaNameGenerator#javanameMethod(String)
66 */
67 String CONV_METHOD_JAVANAME = "javaname";
68
69 /***
70 * Specifies no modification when converting from a schema column
71 * or table name to a java name.
72 */
73 String CONV_METHOD_NOCHANGE = "nochange";
74
75 /***
76 * Given a list of <code>String</code> objects, implements an
77 * algorithm which produces a name.
78 *
79 * @param inputs Inputs used to generate a name.
80 * @return The generated name.
81 * @throws EngineException if the name could not be generated
82 */
83 String generateName(List inputs) throws EngineException;
84 }