com.avaje.ebean.config
Class AbstractNamingConvention

java.lang.Object
  extended by com.avaje.ebean.config.AbstractNamingConvention
All Implemented Interfaces:
NamingConvention
Direct Known Subclasses:
MatchingNamingConvention, UnderscoreNamingConvention

public abstract class AbstractNamingConvention
extends Object
implements NamingConvention

Provides some base implementation for NamingConventions.

Author:
emcgreal

Field Summary
static String DEFAULT_SEQ_FORMAT
          The Constant DEFAULT_SEQ_FORMAT.
 
Constructor Summary
AbstractNamingConvention()
          Construct with the default sequence format ("{table}_seq") and useForeignKeyPrefix as true.
AbstractNamingConvention(String sequenceFormat)
          Construct with a sequence format.
AbstractNamingConvention(String sequenceFormat, boolean useForeignKeyPrefix)
          Construct with a sequence format and useForeignKeyPrefix setting.
 
Method Summary
 String getCatalog()
          Return the catalog.
 TableName getM2MJoinTableName(TableName lhsTable, TableName rhsTable)
          Returns the ManyToMany join table name (aka the intersection table).
 String getSchema()
          Return the schema.
 String getSequenceFormat()
          Returns the sequence format.
 String getSequenceName(String tableName)
          Return the sequence name given the table name (for DB's that use sequences).
 TableName getTableName(Class<?> beanClass)
          Returns the table name for a given entity bean.
 boolean isUseForeignKeyPrefix()
          Return true if a prefix should be used building a foreign key name.
 void setCatalog(String catalog)
          Sets the catalog.
 void setDatabasePlatform(DatabasePlatform databasePlatform)
          Set the associated DatabasePlaform.
 void setSchema(String schema)
          Sets the schema.
 void setSequenceFormat(String sequenceFormat)
          Set the sequence format used to generate the sequence name.
 void setUseForeignKeyPrefix(boolean useForeignKeyPrefix)
          Set this to false when the primary key columns matching your foreign key columns.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.avaje.ebean.config.NamingConvention
getColumnFromProperty, getPropertyFromColumn
 

Field Detail

DEFAULT_SEQ_FORMAT

public static final String DEFAULT_SEQ_FORMAT
The Constant DEFAULT_SEQ_FORMAT.

See Also:
Constant Field Values
Constructor Detail

AbstractNamingConvention

public AbstractNamingConvention(String sequenceFormat,
                                boolean useForeignKeyPrefix)
Construct with a sequence format and useForeignKeyPrefix setting.


AbstractNamingConvention

public AbstractNamingConvention(String sequenceFormat)
Construct with a sequence format.

Parameters:
sequenceFormat - the sequence format

AbstractNamingConvention

public AbstractNamingConvention()
Construct with the default sequence format ("{table}_seq") and useForeignKeyPrefix as true.

Method Detail

setDatabasePlatform

public void setDatabasePlatform(DatabasePlatform databasePlatform)
Description copied from interface: NamingConvention
Set the associated DatabasePlaform.

This is set after the DatabasePlatform has been associated.

The purpose of this is to enable NamingConvention to be able to support database platform specific configuration.

Specified by:
setDatabasePlatform in interface NamingConvention
Parameters:
databasePlatform - the database platform

getSequenceName

public String getSequenceName(String tableName)
Description copied from interface: NamingConvention
Return the sequence name given the table name (for DB's that use sequences).

Typically you might append "_seq" to the table name as an example.

Specified by:
getSequenceName in interface NamingConvention
Parameters:
tableName - the table name
Returns:
the sequence name

getCatalog

public String getCatalog()
Return the catalog.


setCatalog

public void setCatalog(String catalog)
Sets the catalog.


getSchema

public String getSchema()
Return the schema.


setSchema

public void setSchema(String schema)
Sets the schema.


getSequenceFormat

public String getSequenceFormat()
Returns the sequence format.


setSequenceFormat

public void setSequenceFormat(String sequenceFormat)
Set the sequence format used to generate the sequence name.

The format should include "{table}". When generating the sequence name {table} is replaced with the actual table name.

Parameters:
sequenceFormat - string containing "{table}" which is replaced with the actual table name to generate the sequence name.

isUseForeignKeyPrefix

public boolean isUseForeignKeyPrefix()
Return true if a prefix should be used building a foreign key name.

This by default is true and this works well when the primary key column names are simply "ID". In this case a prefix (such as "ORDER" and "CUSTOMER" etc) is added to the foreign key column producing "ORDER_ID" and "CUSTOMER_ID".

This should return false when your primary key columns are the same as the foreign key columns. For example, when the primary key columns are "ORDER_ID", "CUST_ID" etc ... and they are the same as the foreign key column names.

Specified by:
isUseForeignKeyPrefix in interface NamingConvention

setUseForeignKeyPrefix

public void setUseForeignKeyPrefix(boolean useForeignKeyPrefix)
Set this to false when the primary key columns matching your foreign key columns.


getTableName

public TableName getTableName(Class<?> beanClass)
Returns the table name for a given entity bean.

This first checks for the @Table annotation and if not present uses the naming convention to define the table name.

Specified by:
getTableName in interface NamingConvention
Parameters:
beanClass - the bean class
Returns:
the table name for the entity class
See Also:
getTableNameFromAnnotation(Class), getTableNameByConvention(Class)

getM2MJoinTableName

public TableName getM2MJoinTableName(TableName lhsTable,
                                     TableName rhsTable)
Description copied from interface: NamingConvention
Returns the ManyToMany join table name (aka the intersection table).

Specified by:
getM2MJoinTableName in interface NamingConvention
Parameters:
lhsTable - the left hand side bean table
rhsTable - the right hand side bean table
Returns:
the many to many join table name


Copyright © 2010. All Rights Reserved.