/** * Represents a field/property in a class/persistent-interface. * @since 2.3 */ public interface MemberMetadata extends Metadata { /** * Method to set the name. * * @param name name */ MemberMetadata setName(String name); /** * Accessor for the name of the field/property. * * @return The name */ String getName(); /** * Method to set the table name. * * @param table Table name */ MemberMetadata setTable(String table); /** * Accessor for the name of the table. * * @return The name */ String getTable(); /** * Method to set the column name. * * @param col Column name */ MemberMetadata setColumn(String col); /** * Accessor for the name of the column. * * @return The column name */ String getColumn(); /** * Method to set the field type(s). For defining where we want to restrict * what type is stored in a field * * @param type Type of field */ MemberMetadata setFieldType(String type); /** * Accessor for the type storable in the field * * @return The field type */ String getFieldType(); /** * Method to set the delete action of the FK * * @param action Delete action of the FK */ MemberMetadata setDeleteAction(ForeignKeyAction action); /** * Accessor for the delete action of the FK * * @return The FK delete-action */ ForeignKeyAction getDeleteAction(); /** * Method to set the persistence-modifier of the field/property. * * @param mod persistence modifier */ MemberMetadata setPersistenceModifier(PersistenceModifier mod); /** * Accessor for the persistence modifier of the field/property. * * @return The persistence modifier */ PersistenceModifier getPersistenceModifier(); /** * Method to set the behaviour of a null value * * @param val Null value behaviour */ MemberMetadata setNullValue(NullValue val); /** * Accessor for the behaviour of a null value * * @return The null value behaviour */ NullValue getNullValue(); /** * Method to set whether it is in the DFG. * * @param dfg DFG? */ MemberMetadata setDefaultFetchGroup(boolean dfg); /** * Accessor for whether part of the DFG. * * @return dfg? */ Boolean getDefaultFetchGroup(); /** * Method to set whether it is unique. * * @param unique Unique? */ MemberMetadata setDependent(boolean unique); /** * Accessor for whether unique. * * @return Unique? */ Boolean getDependent(); /** * Method to set whether it is embedded. * * @param emb Embedded? */ MemberMetadata setEmbedded(boolean emb); /** * Accessor for whether it is embedded. * * @return embedded? */ Boolean getEmbedded(); /** * Method to set whether it is serialized. * * @param ser serialized? */ MemberMetadata setSerialized(boolean ser); /** * Accessor for whether it is serialized. * * @return serialized? */ Boolean getSerialized(); /** * Method to set whether it is part of the pk * * @param pk PK? */ MemberMetadata setPrimaryKey(boolean pk); /** * Accessor for whether it is part of the pk. * * @return pk? */ boolean getPrimaryKey(); /** * Method to set whether it is indexed. * * @param index Indexed? */ MemberMetadata setIndexed(boolean index); /** * Accessor for whether it is indexed. * * @return Indexed? */ Boolean getIndexed(); /** * Method to set whether it is unique. * * @param unique Unique? */ MemberMetadata setUnique(boolean unique); /** * Accessor for whether unique. * * @return Unique? */ Boolean getUnique(); /** * Method to set whether this is cacheable * * @param cacheable Cacheable? */ MemberMetadata setCacheable(boolean cacheable); /** * Accessor for whether this is cacheable. * * @return Detachable? */ boolean getCacheable(); /** * Method to set the recursion depth (when used in a fetch group). * * @param depth Recursion depth */ MemberMetadata setRecursionDepth(int depth); /** * Accessor for the recursion depth (when part of a fetch group). * * @return Recursion depth? */ int getRecursionDepth(); /** * Method to set the load fetch group. * * @param grp Load fetch group */ MemberMetadata setLoadFetchGroup(String grp); /** * Accessor for the name of the load fetch group * * @return The load fetch group */ String getLoadFetchGroup(); /** * Method to set the value strategy * * @param str Value strategy */ MemberMetadata setValueStrategy(IdGeneratorStrategy str); /** * Accessor for the value strategy * * @return Value strategy */ IdGeneratorStrategy getValueStrategy(); /** * Method to set the custom identity generation strategy. * * @param strategy The strategy */ MemberMetadata setCustomStrategy(String strategy); /** * Accessor for the custom strategy (overriding "strategy"). * * @return The strategy */ String getCustomStrategy(); /** * Method to set the sequence (when using value-strategy of "sequence") * * @param seq Sequence key */ MemberMetadata setSequence(String seq); /** * Accessor for the sequence (when using value-strategy of "sequence") * * @return Sequence key */ String getSequence(); /** * Method to set the field on the other side of a bidirectional relation * (this side is owner) * * @param map mapped-by field/property */ MemberMetadata setMappedBy(String map); /** * Accessor for the mapped-by field/property * * @return mapped-by field/property */ String getMappedBy(); /** * Method to define the array details (if the field/property is an array) * * @return The ArrayMetadata */ ArrayMetadata newArrayMetadata(); /** * Accessor for the array details. * * @return array details */ ArrayMetadata getArrayMetadata(); /** * Method to define the array details (if the field/property is an array) * * @return The ArrayMetadata */ CollectionMetadata newCollectionMetadata(); /** * Accessor for the array details. * * @return array details */ CollectionMetadata getCollectionMetadata(); /** * Method to define the map details (if the field/property is an map) * * @return The MapMetadata */ MapMetadata newMapMetadata(); /** * Accessor for the map details. * * @return map details */ MapMetadata getMapMetadata(); /** * Method to define the join details * * @return The JoinMetadata */ JoinMetadata newJoinMetadata(); /** * Accessor for the join details. * * @return join details */ JoinMetadata getJoinMetadata(); /** * Method to define the embedded details * * @return The EmbeddedMetadata */ EmbeddedMetadata newEmbeddedMetadata(); /** * Accessor for the embedded metadata. * * @return embedded metadata */ EmbeddedMetadata getEmbeddedMetadata(); /** * Method to define the new element details * * @return The ElementMetadata */ ElementMetadata newElementMetadata(); /** * Accessor for the element details * * @return element details */ ElementMetadata getElementMetadata(); /** * Method to define the key details * * @return The KeyMetadata */ KeyMetadata newKeyMetadata(); /** * Accessor for the key details * * @return key details */ KeyMetadata getKeyMetadata(); /** * Method to define the value details * * @return The ValueMetadata */ ValueMetadata newValueMetadata(); /** * Accessor for the value details * * @return value details */ ValueMetadata getValueMetadata(); /** * Method to set index metadata for the field/property * * @return The metadata for any index */ IndexMetadata newIndexMetadata(); /** * Accessor for any index metadata for the field/property * * @return Index metadata */ IndexMetadata getIndexMetadata(); /** * Method to set new unique constraint metadata for the field/property * * @return The UniqueMetadata */ UniqueMetadata newUniqueMetadata(); /** * Accessor for any unique constraint metadata on this field/property. * * @return The UniqueMetadata */ UniqueMetadata getUniqueMetadata(); /** * Method to set new foreign key metadata for the field/property * * @return The ForeignKeyMetadata */ ForeignKeyMetadata newForeignKeyMetadata(); /** * Accessor for any foreign key metadata on this field/property. * * @return The ForeignKeyMetadata */ ForeignKeyMetadata getForeignKeyMetadata(); /** * Method to define the order details. * * @return The OrdeMetadata */ OrderMetadata newOrderMetadata(); /** * Accessor for the order metadata. * * @return order metadata */ OrderMetadata getOrderMetadata(); /** * 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(); }