/** * Represents join information. * @since 2.3 */ public interface JoinMetadata extends Metadata { /** * Method to set the join column. * * @param column Name of the join column */ JoinMetadata setColumn(String column); /** * Accessor for the join column name * * @return The column name */ String getColumn(); /** * Method to set the table name. * * @param table Table name */ JoinMetadata setTable(String table); /** * Accessor for the name of the table. * * @return The name */ String getTable(); /** * Method to set whether to use an outer join * * @param outer Outer join? */ JoinMetadata setOuter(boolean outer); /** * Accessor for whether to use an outer join. * * @return Outer join? */ boolean getOuter(); /** * Method to set the delete action of the FK * * @param action Delete action of the FK */ JoinMetadata setDeleteAction(ForeignKeyAction action); /** * Accessor for the delete action of the FK * * @return The FK delete-action */ ForeignKeyAction getDeleteAction(); /** * Method to set whether indexed. * * @param indexed Whether indexed (true | false | unique) */ JoinMetadata setIndexed(Indexed indexed); /** * Accessor for whether indexed (true|false|unique) * * @return Indexed? */ Indexed getIndexed(); /** * Method to set whether it is unique. * * @param unique Unique? */ JoinMetadata setUnique(boolean unique); /** * Accessor for whether unique. * * @return Unique? */ Boolean getUnique(); /** * Method to set new index metadata for the join. * * @return The IndexMetadata */ IndexMetadata newIndexMetadata(); /** * Accessor for any index metadata on this join * * @return Index metadata */ IndexMetadata getIndexMetadata(); /** * Method to set new unique constraint metadata for the join * * @return The UniqueMetadata */ UniqueMetadata newUniqueMetadata(); /** * Accessor for any unique constraint metadata on this join. * * @return The UniqueMetadata */ UniqueMetadata getUniqueMetadata(); /** * Method to set new foreign key metadata for the join * * @return The ForeignKeyMetadata */ ForeignKeyMetadata newForeignKeyMetadata(); /** * Accessor for any foreign key metadata on this join. * * @return The ForeignKeyMetadata */ ForeignKeyMetadata getForeignKeyMetadata(); /** * Method to set new primary key metadata for the join * * @return The PrimaryKeyMetadata */ PrimaryKeyMetadata newPrimaryKeyMetadata(); /** * Accessor for any primary key metadata on this join. * * @return The PrimaryKeyMetadata */ PrimaryKeyMetadata getPrimaryKeyMetadata(); /** * Accessor for all column(s) defined on the join. * * @return The column(s) */ ColumnMetadata[] getColumns(); /** * Add a new column for this join. * * @return The ColumnMetadata */ ColumnMetadata newColumnMetadata(); /** * Accessor for the number of columns defined for this join. * * @return The number of columns */ int getNumberOfColumns(); }