/** * Represents the inheritance of a class. * @since 2.3 */ public interface InheritanceMetadata extends Metadata { /** * Method to set the inheritance strategy. * * @param strategy The strategy */ InheritanceMetadata setStrategy(InheritanceStrategy strategy); /** * Accessor for the inheritance strategy. * * @return The strategy */ InheritanceStrategy getStrategy(); /** * Method to set the custom inheritance strategy. * * @param strategy The strategy */ InheritanceMetadata setCustomStrategy(String strategy); /** * Accessor for the custom inheritance (overriding "strategy"). * * @return The strategy */ String getCustomStrategy(); /** * Method to define the new discriminator metadata. * * @return The DiscriminatorMetadata */ DiscriminatorMetadata newDiscriminatorMetadata(); /** * Accessor for the discriminator (if any). * * @return Discriminator */ DiscriminatorMetadata getDiscriminatorMetaData(); /** * Method to define the new join information * * @return The JoinMetadata */ JoinMetadata newJoinMetadata(); /** * Accessor for the join (if any). * * @return Join information */ JoinMetadata getJoinMetaData(); }