/** * Represents the datastore identity of a class. * @since 2.3 */ public interface DatastoreIdentityMetadata extends Metadata { /** * Method to set the datastore identity column name. * * @param column Name of the datastore identity column */ DatastoreIdentityMetadata setColumn(String column); /** * Accessor for the datastore identity column name * * @return The column name */ String getColumn(); /** * Method to set the identity generation strategy. * * @param strategy The strategy */ DatastoreIdentityMetadata setStrategy(IdGeneratorStrategy strategy); /** * Accessor for the identity generation strategy. * * @return The strategy */ IdGeneratorStrategy getStrategy(); /** * Method to set the custom identity generation strategy. * * @param strategy The strategy */ DatastoreIdentityMetadata setCustomStrategy(String strategy); /** * Accessor for the custom strategy (overriding "strategy"). * * @return The strategy */ String getCustomStrategy(); /** * Method to set the sequence key (when using "sequence" strategy) * * @param seq Sequence key */ DatastoreIdentityMetadata setSequence(String seq); /** * Accessor for the sequence key (when using "sequence" strategy) * * @return The sequence */ String getSequence(); /** * Accessor for all column(s) defined on the datastore identity. * * @return The column(s) */ ColumnMetadata[] getColumns(); /** * Add a new column for this datastore identity. * * @return The ColumnMetadata */ ColumnMetadata newColumnMetadata(); /** * Accessor for the number of columns defined for this datastore identity. * * @return The number of columns */ int getNumberOfColumns(); }