/** * Represents versioning of a class. * @since 2.3 */ public interface VersionMetadata extends Metadata { /** * Method to set the version strategy. * * @param strategy The strategy */ VersionMetadata setStrategy(VersionStrategy strategy); /** * Accessor for the version strategy. * * @return The strategy */ VersionStrategy getStrategy(); /** * Method to set the version column name. * * @param column Name of the version clumn */ VersionMetadata setColumn(String column); /** * Accessor for the version column name * * @return The version column name */ String getColumn(); /** * Method to set whether indexed. * * @param indexed Whether indexed (true | false | unique) */ VersionMetadata setIndexed(Indexed indexed); /** * Accessor for whether indexed (true|false|unique) * * @return Indexed? */ Indexed getIndexed(); /** * Accessor for all column(s) defined on the version. * * @return The column(s) */ ColumnMetadata[] getColumns(); /** * Add a new column for this version. * * @return The ColumnMetadata */ ColumnMetadata newColumnMetadata(); /** * Accessor for the number of columns defined for this version. * * @return The number of columns */ int getNumberOfColumns(); /** * Method to set index metadata for the version * * @return The IndexMetadata */ IndexMetadata newIndexMetadata(); /** * Accessor for any index metadata on this version * * @return Index metadata */ IndexMetadata getIndexMetadata(); }