blob: 746951968fd00585d08b150a387adeac2d74aabe [file] [log] [blame]
/**
* Represents a key in a map.
*/
public interface KeyMetadata extends Metadata {
/**
* Method to set the column name.
*
* @param column Column name
*/
KeyMetadata setColumn(String column);
/**
* Accessor for the name of the column.
*
* @return The name
*/
String getColumn();
/**
* Method to set the table name.
*
* @param table Table name
*/
KeyMetadata setTable(String table);
/**
* Accessor for the name of the table.
*
* @return The name
*/
String getTable();
/**
* Method to set the delete action of the FK
*
* @param action Delete action of the FK
*/
KeyMetadata setDeleteAction(ForeignKeyAction action);
/**
* Accessor for the delete action of the FK
*
* @return The FK delete-action
*/
ForeignKeyAction getDeleteAction();
/**
* Method to set the update action of the FK
*
* @param action Update action of the FK
*/
KeyMetadata setUpdateAction(ForeignKeyAction action);
/**
* Accessor for the update action of the FK
*
* @return The FK update-action
*/
ForeignKeyAction getUpdateAction();
/**
* Accessor for all column(s) defined on the key.
*
* @return The column(s)
*/
ColumnMetadata[] getColumns();
/**
* Add a new column for this key.
*
* @return The ColumnMetadata
*/
ColumnMetadata newColumnMetadata();
/**
* Accessor for the number of columns defined for this key.
*
* @return The number of columns
*/
int getNumberOfColumns();
/**
* Method to set new embedded metadata for the key.
*
* @return The EmbeddedMetadata
*/
EmbeddedMetadata newEmbeddedMetadata();
/**
* Accessor for any embedded metadata on this key
*
* @return The EmbeddedMetadata
*/
EmbeddedMetadata getEmbeddedMetadata();
/**
* Method to set new index metadata for the key.
*
* @return The IndexMetadata
*/
IndexMetadata newIndexMetadata();
/**
* Accessor for any index metadata on this key
*
* @return Index metadata
*/
IndexMetadata getIndexMetadata();
/**
* Method to set new unique constraint metadata for the key
*
* @return The UniqueMetadata
*/
UniqueMetadata newUniqueMetadata();
/**
* Accessor for any unique constraint metadata on this key.
*
* @return The UniqueMetadata
*/
UniqueMetadata getUniqueMetadata();
/**
* Method to set new foreign key metadata for the key
*
* @return The ForeignKeyMetadata
*/
ForeignKeyMetadata newForeignKeyMetadata();
/**
* Accessor for any foreign key metadata on this key.
*
* @return The ForeignKeyMetadata
*/
ForeignKeyMetadata getForeignKeyMetadata();
}