/** * 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(); }