get rid of "NOTE :" which looks terrible in compiled javadoc

- use @implNot / @apiNot instead
This commit is contained in:
Gavin 2022-12-28 12:39:25 +01:00 committed by Gavin King
parent b3625a34e4
commit 60884a4c3a
62 changed files with 212 additions and 216 deletions

View File

@ -111,8 +111,8 @@ public class QueryException extends HibernateException {
/**
* Called from {@link #wrapWithQueryString(String)} when we really need to
* generate a new {@code QueryException} (or subclass).
* <p>
* NOTE : implementors should take care to use {@link #getOriginalMessage()}
*
* @implNote implementors should take care to use {@link #getOriginalMessage()}
* for the message, not {@link #getMessage()}
*
* @param queryString The query string

View File

@ -32,10 +32,10 @@ public interface SessionFactoryObserver extends Serializable {
/**
* Callback to indicate that the given factory is about to close. The passed factory
* reference should be usable since it is only about to close.
* <p>
* NOTE : defined as default to allow for existing SessionFactoryObserver impls to work
* in 5.2. Starting in 6.0 the default will be removed and SessionFactoryObserver impls
* will be required to implement this new method.
*
* @apiNote defined as default to allow for existing {@code SessionFactoryObserver}
* implementations to work in 5.2. Starting in 6.0 the default will be
* removed and implementations will be required to implement this new method.
*
* @param factory The factory about to be closed.
*

View File

@ -67,9 +67,10 @@ public abstract class AbstractEntityInsertAction extends EntityAction {
/**
* Returns the entity state.
* <P>
* Note that the call to {@link #nullifyTransientReferencesIfNotAlready}
* can modify the entity state.
*
* NOTE: calling {@link #nullifyTransientReferencesIfNotAlready} can modify the
* entity state.
* @return the entity state.
*
* @see #nullifyTransientReferencesIfNotAlready

View File

@ -35,8 +35,8 @@ import org.hibernate.sql.ast.tree.insert.InsertSelectStatement;
/**
* An {@link org.hibernate.engine.spi.ActionQueue} {@link Executable} for
* ensuring shared cache cleanup in relation to performed bulk HQL queries.
* <p>
* NOTE: currently this executes for {@code INSERT} queries as well as
*
* @implNote Currently this executes for {@code INSERT} queries as well as
* {@code UPDATE} and {@code DELETE} queries. For {@code INSERT} it is
* really not needed as we'd have no invalid entity/collection data to
* clean up (we'd still need to invalidate the appropriate update-timestamps

View File

@ -38,11 +38,11 @@ public @interface UuidGenerator {
*/
RANDOM,
/**
* Applies a time-based generation strategy consistent with IETF RFC 4122. Uses
* IP address rather than mac address.
* Applies a time-based generation strategy consistent with IETF RFC 4122.
* Uses IP address rather than mac address.
*
* NOTE : Can be a bottleneck due to the need to synchronize in order to increment an
* internal count as part of the algorithm.
* @implNote Can be a bottleneck due to the need to synchronize in order
* to increment an internal count as part of the algorithm.
*/
TIME
}

View File

@ -144,8 +144,8 @@ public interface MetadataBuilder {
* It is <i>important</i> to understand that if a Jandex index is passed in, it is expected that
* this Jandex index already contains all entries for all classes. No additional indexing will be
* done in this case.
* <p>
* NOTE : Here for future expansion. At the moment the passed Jandex index is not used.
*
* @apiNote Here for future expansion. At the moment the passed Jandex index is not used.
*
* @param jandexView The Jandex index to use.
*

View File

@ -24,7 +24,7 @@ import org.hibernate.boot.archive.spi.InputStreamAccess;
import static org.hibernate.internal.log.UrlMessageBundle.URL_MESSAGE_LOGGER;
/**
* Descriptor for exploded (directory) archives
* An {@code ArchiveDescriptor} for exploded (directory) archives.
*
* @author Steve Ebersole
*/

View File

@ -27,7 +27,7 @@ import org.hibernate.boot.archive.spi.InputStreamAccess;
import static org.hibernate.internal.log.UrlMessageBundle.URL_MESSAGE_LOGGER;
/**
* An ArchiveDescriptor implementation leveraging the {@link JarFile} API for processing.
* An {@code ArchiveDescriptor} implementation leveraging the {@link JarFile} API for processing.
*
* @author Steve Ebersole
*/

View File

@ -22,8 +22,9 @@ import org.hibernate.boot.archive.spi.InputStreamAccess;
import static org.hibernate.internal.log.UrlMessageBundle.URL_MESSAGE_LOGGER;
/**
* An ArchiveDescriptor implementation that works on archives accessible through a {@link JarInputStream}.
* NOTE : This is less efficient implementation than {@link JarFileBasedArchiveDescriptor}
* An {@code ArchiveDescriptor} that works on archives accessible through a {@link JarInputStream}.
*
* @implNote This is less efficient implementation than {@link JarFileBasedArchiveDescriptor}.
*
* @author Emmanuel Bernard
* @author Steve Ebersole

View File

@ -20,11 +20,10 @@ import org.hibernate.service.spi.SessionFactoryServiceRegistry;
public interface ActivationContext {
/**
* Access the requested validation mode(s).
* <p>
* IMPL NOTE : the legacy code allowed multiple mode values to be specified, so that is why it is multi-valued here.
*
* @implNote The legacy code allowed multiple mode values to be specified, so that is why it is multivalued here.
* However, I cannot find any good reasoning why it was defined that way and even JPA states it should be a single
* value. For 4.1 (in maintenance) I think it makes the most sense to not mess with it. Discuss for
* 4.2 and beyond.
* value. For 4.1 (in maintenance) I think it makes the most sense to not mess with it. Discuss for 4.2 and beyond.
*
* @return The requested validation modes
*/

View File

@ -12,11 +12,11 @@ import org.hibernate.FlushMode;
import org.hibernate.HibernateException;
/**
* JAXB marshalling for the FlushMode enum
* <p>
* NOTE : The XML schemas define the use of {@code "never"}, which corresponds
* to the removed FlushMode#NEVER. Here we will also handle mapping
* FlushMode#NEVER to FlushMode#MANUAL
* JAXB marshalling for the {@link FlushMode} enum.
*
* @implNote The XML schemas define the use of {@code "never"}, which corresponds
* to the removed {@code FlushMode#NEVER}. Here we will also remap
* {@code FlushMode#NEVER} to {@link FlushMode#MANUAL}.
*
* @author Steve Ebersole
*/

View File

@ -13,10 +13,10 @@ import org.hibernate.HibernateException;
/**
* JAXB marshalling for {@link FlushMode}
* <p>
* NOTE : The XML schemas define the use of {@code "never"}, which corresponds
* to the removed FlushMode#NEVER. Here we will also handle mapping
* FlushMode#NEVER to FlushMode#MANUAL
*
* @implNote The XML schemas define the use of {@code "never"}, which corresponds
* to the removed {@code FlushMode#NEVER}. Here we will also remap
* {@code FlushMode#NEVER} to {@link FlushMode#MANUAL}.
*
* @author Steve Ebersole
*/

View File

@ -12,9 +12,6 @@ import org.hibernate.service.ServiceRegistry;
* Contract for contributing types.
*
* @author Steve Ebersole
*
* NOTE: Cherry-pick of HHH-7998 from metamodel. For merging simplicity, just
* keep it in the o.h.metamodel.spi package.
*/
public interface TypeContributor {
/**

View File

@ -38,14 +38,15 @@ import org.hibernate.Incubating;
* An {@code ImplicitNamingStrategy} may be selected using the configuration property
* {@value org.hibernate.cfg.AvailableSettings#IMPLICIT_NAMING_STRATEGY}.
*
* @apiNote The method names here mostly favor the JPA terminology,
* for example, "secondary table" rather than "join".
*
* @see PhysicalNamingStrategy
*
* @author Steve Ebersole
*/
@Incubating
public interface ImplicitNamingStrategy {
// NOTE: the method names here mostly favor the JPA terminology
// (for example, "secondary table" rather than "join")
/**
* Determine the implicit name of an entity's primary table.

View File

@ -25,7 +25,7 @@ public interface EntityHierarchySource {
/**
* The inheritance type/strategy for the hierarchy.
* <p>
* NOTE : The entire hierarchy must comply with the same inheritance strategy.
* The entire hierarchy must have with the same inheritance strategy.
*
* @return The inheritance type.
*/

View File

@ -15,8 +15,8 @@ import org.hibernate.mapping.MetaAttribute;
/**
* Represents a collection of "tooling hints" ({@code <meta/>} mapping info) keyed by a name.
* <p>
* NOTE : historically these were called "meta attributes", but as these are values used solely
*
* @apiNote Historically, these were called "meta attributes", but as these are values used solely
* by external tooling it was decided to begin calling them tooling hints. For temporary
* backwards compatibility (temporary until we move away from o.h.mapping model) you will
* see mixed usage.

View File

@ -88,9 +88,9 @@ public interface ClassLoaderService extends ResourceLocator, ResourceStreamLocat
/**
* Discovers and instantiates implementations of the named service contract.
* <p>
* NOTE : the terms service here is used differently than {@link Service}. Instead here we are talking about
* services as defined by {@link java.util.ServiceLoader}.
*
* @apiNote The term "service" here does not refer to a {@link Service}.
* Here it refers to a Java {@link java.util.ServiceLoader}.
*
* @param serviceContract The java type defining the service contract
* @param <S> The type of the service contract

View File

@ -2904,8 +2904,9 @@ public interface AvailableSettings {
* @see jakarta.persistence.CacheRetrieveMode
*
* @deprecated Use {@link #JAKARTA_SHARED_CACHE_RETRIEVE_MODE} instead
*
* @apiNote This is not a legal property for an {@code EntityManagerFactory}.
*/
//NOTE : Not a valid EMF property
@Deprecated
@SuppressWarnings("DeprecatedIsStillUsed")
String JPA_SHARED_CACHE_RETRIEVE_MODE = "javax.persistence.cache.retrieveMode";
@ -2917,8 +2918,9 @@ public interface AvailableSettings {
* @see jakarta.persistence.CacheStoreMode
*
* @deprecated Use {@link #JAKARTA_SHARED_CACHE_STORE_MODE} instead
*
* @apiNote This is not a legal property for an {@code EntityManagerFactory}.
*/
//NOTE: Not a valid EMF property
@Deprecated
@SuppressWarnings("DeprecatedIsStillUsed")
String JPA_SHARED_CACHE_STORE_MODE = "javax.persistence.cache.storeMode";

View File

@ -2097,8 +2097,8 @@ public abstract class Dialect implements ConversionContext {
/**
* For dropping a type, can the phrase "{@code if exists} be
* applied before the type name?
* <p/>
* NOTE : Only one or the other (or neither) of this and
*
* @apiNote Only one or the other (or neither) of this and
* {@link #supportsIfExistsAfterTypeName} should return true.
*
* @return {@code true} if {@code if exists} can be applied before the type name
@ -2110,8 +2110,8 @@ public abstract class Dialect implements ConversionContext {
/**
* For dropping a type, can the phrase {@code if exists} be
* applied after the type name?
* <p/>
* NOTE : Only one or the other (or neither) of this and
*
* @apiNote Only one or the other (or neither) of this and
* {@link #supportsIfExistsBeforeTypeName} should return true.
*
* @return {@code true} if {@code if exists} can be applied after the type name
@ -2936,8 +2936,8 @@ public abstract class Dialect implements ConversionContext {
/**
* For dropping a table, can the phrase "{@code if exists} be
* applied before the table name?
* <p>
* NOTE : Only one or the other (or neither) of this and
*
* @apiNote Only one or the other (or neither) of this and
* {@link #supportsIfExistsAfterTableName} should return true.
*
* @return {@code true} if {@code if exists} can be applied before the table name
@ -2949,8 +2949,8 @@ public abstract class Dialect implements ConversionContext {
/**
* For dropping a table, can the phrase {@code if exists} be
* applied after the table name?
* <p>
* NOTE : Only one or the other (or neither) of this and
*
* @apiNote Only one or the other (or neither) of this and
* {@link #supportsIfExistsBeforeTableName} should return true.
*
* @return {@code true} if {@code if exists} can be applied after the table name
@ -2963,8 +2963,8 @@ public abstract class Dialect implements ConversionContext {
* For dropping a constraint with an {@code alter table} statement,
* can the phrase {@code if exists} be applied before the constraint
* name?
* <p>
* NOTE : Only one or the other (or neither) of this and
*
* @apiNote Only one or the other (or neither) of this and
* {@link #supportsIfExistsAfterConstraintName} should return true
*
* @return {@code true} if {@code if exists} can be applied before the constraint name
@ -2976,8 +2976,8 @@ public abstract class Dialect implements ConversionContext {
/**
* For dropping a constraint with an {@code alter table}, can the phrase
* {@code if exists} be applied after the constraint name?
* <p>
* NOTE : Only one or the other (or neither) of this and
*
* @apiNote Only one or the other (or neither) of this and
* {@link #supportsIfExistsBeforeConstraintName} should return true.
*
* @return {@code true} if {@code if exists} can be applied after the constraint name
@ -3141,8 +3141,8 @@ public abstract class Dialect implements ConversionContext {
* {@link ResultSet#isAfterLast} and
* {@link ResultSet#isBeforeFirst}. Certain drivers do not
* allow access to these methods for forward only cursors.
* <p>
* NOTE : this is highly driver dependent!
*
* @apiNote This is highly driver dependent!
*
* @return True if methods like {@link ResultSet#isAfterLast} and
* {@link ResultSet#isBeforeFirst} are supported for forward
@ -3215,8 +3215,8 @@ public abstract class Dialect implements ConversionContext {
* {@link Clob#setString(long, String)},
* {@link Clob#setString(long, String, int, int)},
* or {@link Clob#truncate(long)}.
* <p>
* NOTE : I do not know the correct answer currently for
*
* @implNote I do not know the correct answer currently for
* databases which (1) are not part of the cruise control process
* or (2) do not {@link #supportsExpectedLobUsagePattern}.
*
@ -3235,9 +3235,9 @@ public abstract class Dialect implements ConversionContext {
* <p>
* Again, part of the trickiness here is the fact that this is largely
* driver dependent.
* <p>
* NOTE: all database I have tested which {@link #supportsExpectedLobUsagePattern()}
* also support the ability to materialize a LOB outside the owning transaction...
*
* @implNote All database I have tested which {@link #supportsExpectedLobUsagePattern()}
* also support the ability to materialize a LOB outside the owning transaction.
*
* @return True if unbounded materialization is supported; false otherwise.
* @since 3.2

View File

@ -116,15 +116,13 @@ public abstract class AbstractLimitHandler implements LimitHandler {
}
/**
* Hibernate {@link Query#setFirstResult(int)} accepts
* a zero-based offset. Does this dialect require a one-based offset to be
* specified in the offset clause?
* <p>
* NOTE: what gets passed into
* {@link AbstractLimitHandler#processSql(String, Limit)}
* is the zero-based offset. Handlers which do not {@link #supportsVariableLimit}
* should take care to perform any needed first-row-conversion calls prior
* to injecting the limit values into the SQL string.
* The API method {@link Query#setFirstResult(int)} accepts a zero-based offset.
* Does this dialect require a one-based offset to be specified in the offset clause?
*
* @implNote The value passed into {@link AbstractLimitHandler#processSql(String, Limit)}
* has a zero-based offset. Handlers which do not {@link #supportsVariableLimit}
* should take care to perform any needed first-row-conversion calls prior to
* injecting the limit values into the SQL string.
*
* @param zeroBasedFirstResult The user-supplied, zero-based first row offset.
*

View File

@ -76,7 +76,7 @@ public interface UniqueDelegate {
* @param table The table for which to generate the unique constraints fragment
* @param context A context for SQL string generation
* @return The fragment, typically in the form {@code ", unique(col1, col2), unique(col20)"}.
* NOTE: The leading comma is important!
* The leading comma is important!
*/
String getTableCreationUniqueConstraintsFragment(Table table, SqlStringGenerationContext context);

View File

@ -72,12 +72,12 @@ import static org.hibernate.engine.internal.ManagedTypeHelper.asPersistentAttrib
import static org.hibernate.engine.internal.ManagedTypeHelper.isPersistentAttributeInterceptable;
/**
* A <strong>stateful</strong> implementation of the {@link PersistenceContext} contract meaning that we maintain this
* A <em>stateful</em> implementation of the {@link PersistenceContext} contract, meaning that we maintain this
* state throughout the life of the persistence context.
* <p>
* IMPL NOTE: There is meant to be a one-to-one correspondence between a {@link org.hibernate.internal.SessionImpl}
* and a PersistentContext. Event listeners and other Session collaborators then use the PersistentContext to drive
* their processing.
*
* @implNote There is meant to be a one-to-one correspondence between a {@link org.hibernate.internal.SessionImpl}
* and a {@link PersistenceContext}. Event listeners and other session collaborators then use the
* {@code PersistenceContext} to drive their processing.
*
* @author Steve Ebersole
* @author Sanne Grinovero

View File

@ -12,10 +12,10 @@ import java.io.Serializable;
/**
* Models size restrictions/requirements on a column's datatype.
* <p>
* IMPL NOTE: since we do not necessarily know the datatype up front, and therefore do not necessarily know
* whether length or precision/scale sizing is needed, we simply account for both here. Additionally LOB
* definitions, by standard, are allowed a "multiplier" consisting of 'K' (Kb), 'M' (Mb) or 'G' (Gb).
*
* @implNote Since we do not necessarily know the datatype up front, and therefore do not necessarily know
* whether length or precision/scale sizing is needed, we simply account for both here. Additionally, LOB
* sizes, by standard, are allowed a "multiplier", {@code K} (Kb), {@code M} (Mb) or {@code G} (Gb).
*
* @author Steve Ebersole
*/

View File

@ -44,8 +44,8 @@ import static org.hibernate.internal.log.ConnectionPoolingLogger.CONNECTIONS_MES
/**
* A connection provider that uses the {@link DriverManager} directly to open connections and provides
* a very rudimentary connection pool.
* <p>
* IMPL NOTE : not intended for production use!
*
* @implNote Not intended for use in production systems!
*
* @author Gavin King
* @author Steve Ebersole

View File

@ -45,9 +45,7 @@ import org.hibernate.resource.jdbc.spi.LogicalConnectionImplementor;
import org.hibernate.resource.transaction.backend.jdbc.spi.JdbcResourceTransaction;
/**
* Standard Hibernate implementation of {@link JdbcCoordinator}
* <p>
* IMPL NOTE : Custom serialization handling!
* Standard implementation of {@link JdbcCoordinator}.
*
* @author Steve Ebersole
* @author Brett Meyer

View File

@ -73,10 +73,8 @@ public class SqlExceptionHelper {
/**
* Inject the exception converter to use.
* <p>
* NOTE : {@code null} is allowed and signifies to use the default.
*
* @param sqlExceptionConverter The converter to use.
* @param sqlExceptionConverter the converter to use, or {@code null} if the default converter should be used
*/
public void setSqlExceptionConverter(SQLExceptionConverter sqlExceptionConverter) {
this.sqlExceptionConverter = sqlExceptionConverter == null ? DEFAULT_CONVERTER : sqlExceptionConverter;

View File

@ -13,7 +13,7 @@ import org.hibernate.metamodel.model.domain.internal.EntityTypeImpl;
import org.hibernate.query.QueryParameter;
/**
* NOTE: Consider this contract (and its sub-contracts) as incubating as we transition to 6.0 and SQM
* @apiNote Consider this contract (and its subcontracts) as incubating as we transition to 6.0 and SQM.
*
* @author Steve Ebersole
*/

View File

@ -1041,8 +1041,8 @@ public class ActionQueue {
* certain that we do not circumvent this FK ordering to the extent of causing constraint violations.
* <p>
* Sorts the insert actions using more hashes.
* </p>
* NOTE: this class is not thread-safe.
*
* @implNote This class is not thread-safe.
*
* @author Jay Erb
*/

View File

@ -36,9 +36,9 @@ public final class EntityKey implements Serializable {
/**
* Construct a unique identifier for an entity class instance.
* <p>
* NOTE : This signature has changed to accommodate both entity mode and multi-tenancy, both of which relate to
* the Session to which this key belongs. To help minimize the impact of these changes in the future, the
*
* @apiNote This signature has changed to accommodate both entity mode and multi-tenancy, both of which relate to
* the session to which this key belongs. To help minimize the impact of these changes in the future, the
* {@link SessionImplementor#generateEntityKey} method was added to hide the session-specific changes.
*
* @param id The entity id

View File

@ -18,9 +18,8 @@ import org.hibernate.generator.Generator;
public interface BulkInsertionCapableIdentifierGenerator extends Generator {
/**
* Given the configuration of this generator, is identifier generation as part of bulk insertion supported?
* <p>
* IMPL NOTE : Mainly here to allow stuff like SequenceStyleGenerator which *can* support this based on
* configuration
*
* @apiNote Mainly here to allow stuff like SequenceStyleGenerator which can support this based on configuration
*
* @return {@code true} if bulk insertions are supported; {@code false} otherwise.
*/

View File

@ -22,19 +22,21 @@ public enum EntityIdentifierNature {
/**
* What Hibernate used to term an "embedded composite identifier", which is not to be confused with the JPA
* term embedded. Resolved as a tuple of basic type values and mapped over multiple singular attributes.
* Specifically a composite identifier where there is no single attribute representing the composite value.
* Equivalent of:<ul>
* term "embedded". Resolved as a tuple of basic type values and mapped over multiple singular attributes.
* More precisely, a composite identifier where there is no single attribute representing the composite value.
* <p>
* Equivalent to:
* <ul>
* <li>
* a {@code <composite-id/>} mapping without a specified {@code name} XML-attribute (which would name
* the single identifier attribute
* a {@code <composite-id/>} mapping <em>without</em> a specified {@code name} XML-attribute
* (which would name the single identifier attribute, if it were specified), or
* </li>
* <li>
* multiple {@code @Id} annotations
* multiple {@code @Id} annotations.
* </li>
* </ul>
*
* NOTE : May or may not have a related "lookup identifier class" as indicated by a {@code @IdClass} annotation.
* <p>
* May or may not have a related "lookup identifier class" as indicated by an {@code @IdClass} annotation.
*
* @see jakarta.persistence.IdClass
*/

View File

@ -63,17 +63,16 @@ import static org.hibernate.internal.util.config.ConfigurationHelper.getString;
/**
* An enhanced version of table-based id generation.
* <p>
* Unlike the simplistic legacy one (which, btw, was only ever intended for subclassing
* support) we "segment" the table into multiple values. Thus a single table can
* Unlike the simplistic legacy one (which was only ever intended for subclassing
* support) we "segment" the table into multiple values. Thus, a single table can
* actually serve as the persistent storage for multiple independent generators. One
* approach would be to segment the values by the name of the entity for which we are
* performing generation, which would mean that we would have a row in the generator
* table for each entity name. Or any configuration really; the setup is very flexible.
* <p>
* <b>NOTE</b> that by default we use a single row for all generators (based
* on {@link #DEF_SEGMENT_VALUE}). The configuration parameter
* {@link #CONFIG_PREFER_SEGMENT_PER_ENTITY} can be used to change that to
* instead default to using a row for each entity name.
* Byy default we use a single row for all generators (based on {@link #DEF_SEGMENT_VALUE}).
* The configuration parameter {@link #CONFIG_PREFER_SEGMENT_PER_ENTITY} can be used to
* change that to instead default to using a row for each entity name.
* <p>
* <table>
* <caption>Configuration parameters</caption>
@ -100,12 +99,14 @@ import static org.hibernate.internal.util.config.ConfigurationHelper.getString;
* <tr>
* <td>{@link #SEGMENT_VALUE_PARAM}</td>
* <td>{@link #DEF_SEGMENT_VALUE}</td>
* <td>The value indicating which segment is used by this generator; refers to values in the {@link #SEGMENT_COLUMN_PARAM} column</td>
* <td>The value indicating which segment is used by this generator;
* refers to values in the {@link #SEGMENT_COLUMN_PARAM} column</td>
* </tr>
* <tr>
* <td>{@link #SEGMENT_LENGTH_PARAM}</td>
* <td>{@link #DEF_SEGMENT_LENGTH}</td>
* <td>The data length of the {@link #SEGMENT_COLUMN_PARAM} column; used for schema creation</td>
* <td>The data length of the {@link #SEGMENT_COLUMN_PARAM} column;
* used for schema creation</td>
* </tr>
* <tr>
* <td>{@link #INITIAL_PARAM}</td>
@ -115,7 +116,8 @@ import static org.hibernate.internal.util.config.ConfigurationHelper.getString;
* <tr>
* <td>{@link #INCREMENT_PARAM}</td>
* <td>{@link #DEFAULT_INCREMENT_SIZE}</td>
* <td>The increment size for the underlying segment; see the discussion on {@link Optimizer} for more details.</td>
* <td>The increment size for the underlying segment;
* see the discussion on {@link Optimizer} for more details.</td>
* </tr>
* <tr>
* <td>{@link #OPT_PARAM}</td>
@ -259,9 +261,9 @@ public class TableGenerator implements PersistentIdentifierGenerator {
/**
* The size of the {@link #getSegmentColumnName segment column} in the
* underlying table.
* <p>
* <b>NOTE</b> : should really have been called 'segmentColumnLength' or
* even better 'segmentColumnSize'
*
* @apiNote This should really have been called {@code segmentColumnLength}
* or even better {@code segmentColumnSize}.
*
* @return the column size.
*/

View File

@ -17,9 +17,9 @@ import org.hibernate.internal.util.BytesHelper;
* Applies a version 1 (time-based) generation strategy (using ip address rather than mac address) but applies them in a
* different layout. The strategy is very similar to the legacy {@link org.hibernate.id.UUIDHexGenerator} id generator
* but uses a RFC 4122 compliant layout (variant 2).
* <p>
* NOTE : Can be a bottle neck due to the need to synchronize in order to increment an
* internal count as part of the algorithm.
*
* @implNote Can be a bottleneck due to the need to synchronize in order to increment an internal count as part of the
* algorithm.
*
* @author Steve Ebersole
*/

View File

@ -14,9 +14,13 @@ import org.hibernate.service.spi.SessionFactoryServiceRegistry;
/**
* Contract for stuff that integrates with Hibernate.
* <p>
* IMPL NOTE: called during session factory initialization (constructor), so not all parts of the passed session factory
* will be available.
*
* @implNote {@link #integrate(Metadata, BootstrapContext, SessionFactoryImplementor)}
* is called during the process of {@linkplain SessionFactoryImplementor
* session factory} initialization. In fact, it's called directly from the
* constructor of {@link org.hibernate.internal.SessionFactoryImpl}. So the
* passed session factory is not yet fully-initialized and is in a very
* fragile state.
*
* @author Steve Ebersole
* @since 4.0

View File

@ -13,9 +13,9 @@ public final class BytesHelper {
}
/**
* Custom algorithm used to generate an int from a series of bytes.
* <p>
* NOTE : this is different than interpreting the incoming bytes as an int value!
* Custom algorithm used to generate an {@code int} from a series of bytes.
*
* @implNote This is different to interpreting the incoming bytes as an {@code int}!
*
* @param bytes The bytes to use in generating the int.
*

View File

@ -12,12 +12,9 @@ import org.hibernate.type.descriptor.java.JavaType;
import org.hibernate.type.descriptor.java.JavaTypedExpressible;
/**
* Describes a mapping related to any part of the app's domain model - e.g.
* an attribute, an entity identifier, collection elements, etc
*
* NOTE : this does not include EntityPersister, which however is a ValueMappingContainer
*
* Used in generation of SQL AST
* Describes a mapping related to any part of the app's domain model,
* for example, an attribute, an entity identifier, collection elements, etc.
* Used during generation of a SQL AST.
*
* @author Steve Ebersole
*/

View File

@ -76,8 +76,8 @@ import org.hibernate.type.spi.TypeConfiguration;
/**
* Describes a "normal" embeddable.
*
* NOTE: At the moment, this class is used to describe some non-normal cases: mainly
* composite fks
* @apiNote At the moment, this class is also used to describe some non-"normal" things:
* mainly composite foreign keys.
*/
public class EmbeddableMappingTypeImpl extends AbstractEmbeddableMapping implements SelectableMappings {
public static EmbeddableMappingTypeImpl from(

View File

@ -32,8 +32,8 @@ import org.jboss.logging.Logger;
* Defines commonality for the JPA {@link IdentifiableType} types. JPA defines
* identifiable types as entities or mapped-superclasses. Basically things to which an
* identifier can be attached.
* <p>
* NOTE : Currently we only really have support for direct entities in the Hibernate metamodel
*
* @apiNote Currently we only really have support for direct entities in the Hibernate metamodel
* as the information for them is consumed into the closest actual entity subclass(es) in the
* internal Hibernate mapping-metamodel.
*

View File

@ -10,11 +10,11 @@ import org.hibernate.Incubating;
import org.hibernate.engine.spi.SessionFactoryImplementor;
/**
* Contract for instantiating embeddable values
* Contract for instantiating embeddable values.
*
* NOTE : incubating until the proposed
* `instantiate(IntFunction valueAccess, SessionFactoryImplementor sessionFactory)`
* form can be implemented
* @apiNote Incubating until the proposed
* {@code instantiate(IntFunction valueAccess, SessionFactoryImplementor sessionFactory)}
* form can be implemented.
*
* @see org.hibernate.annotations.EmbeddableInstantiator
*/

View File

@ -104,9 +104,9 @@ public interface Loadable extends EntityPersister {
/**
* Given a column name and the root table alias in use for the entity hierarchy, determine the proper table alias
* for the table in that hierarchy that contains said column.
* <p>
* NOTE : Generally speaking the column is not validated to exist. Most implementations simply return the
* root alias; the exception is {@link JoinedSubclassEntityPersister}
*
* @implNote Generally speaking the column is not validated to exist. Most implementations simply return the
* root alias; the exception is {@link JoinedSubclassEntityPersister}.
*
* @param columnName The column name
* @param rootAlias The hierarchy root alias

View File

@ -73,12 +73,12 @@ public interface ProcedureCall
String getProcedureName();
/**
* Does this ProcedureCall represent a call to a database FUNCTION (as opposed
* to a PROCEDURE call)?
* Does this {@code ProcedureCall} represent a call to a database {@code FUNCTION},
* as opposed to a {@code PROCEDURE}?
*
* NOTE : this will only report whether this ProcedureCall was marked
* as a function via call to {@link #markAsFunctionCall}. Specifically
* will not return {@code true} when using JPA query hint.
* @apiNote this will only report whether this {@code ProcedureCall} was marked
* as a function via call to {@link #markAsFunctionCall}. In particular,
* it will not return {@code true} when using JPA query hint.
*
* @return {@code true} indicates that this ProcedureCall represents a
* function call; {@code false} indicates a procedure call.

View File

@ -19,7 +19,7 @@ import org.hibernate.property.access.spi.SetterMethodImpl;
import org.jboss.logging.Logger;
/**
* PropertyAccessor for accessing the wrapped property via get/set pair, which may be nonpublic.
* {@link PropertyAccess} for accessing the wrapped property via get/set pair, which may be nonpublic.
*
* @author Steve Ebersole
*

View File

@ -19,7 +19,7 @@ import org.hibernate.property.access.spi.PropertyAccessStrategy;
import org.hibernate.property.access.spi.Setter;
/**
* PropertyAccessor for accessing the wrapped property via get/set pair, which may be nonpublic.
* {@link PropertyAccess} for accessing the wrapped property via get/set pair, which may be nonpublic.
*
* @author Steve Ebersole
*

View File

@ -18,11 +18,11 @@ import org.hibernate.property.access.spi.PropertyAccessStrategy;
import org.hibernate.property.access.spi.Setter;
/**
* PropertyAccess for handling non-aggregated composites.
* <p>
* IMPL NOTE : We actually use a singleton for the Setter; we cannot for the getter mainly
* because we need to differentiate {@link Getter#getReturnTypeClass()}. Ultimately I'd prefer to
* model that "common information" on PropertyAccess itself.
* {@link PropertyAccess} for handling non-aggregated composites.
*
* @implNote We actually use a singleton for the {@link Setter}; we cannot for the getter mainly
* because we need to differentiate {@link Getter#getReturnTypeClass()}. Ultimately I'd
* prefer to model that "common information" on {@link PropertyAccess} itself.
*
* @author Gavin King
* @author Steve Ebersole

View File

@ -7,13 +7,14 @@
package org.hibernate.property.access.internal;
import org.hibernate.property.access.spi.EnhancedSetterImpl;
import org.hibernate.property.access.spi.PropertyAccess;
import org.hibernate.property.access.spi.PropertyAccessStrategy;
import org.hibernate.property.access.spi.Setter;
import java.lang.reflect.Field;
/**
* A PropertyAccess for byte code enhanced entities. Enhanced setter methods ( if available ) are used for
* A {@link PropertyAccess} for byte code enhanced entities. Enhanced setter methods ( if available ) are used for
* property writes. Regular getter methods/fields are used for property access. Based upon PropertyAccessMixedImpl.
*
* @author Steve Ebersole

View File

@ -18,8 +18,8 @@ import org.hibernate.property.access.spi.PropertyAccessStrategy;
import org.hibernate.property.access.spi.Setter;
/**
* PropertyAccess implementation that deal with an underlying Map as the container using
* {@link Map#get} and {@link Map#put}
* {@link PropertyAccess} implementation that deals with an underlying {@code Map}
* as the container, using {@link Map#get} and {@link Map#put}.
*
* @author Steve Ebersole
* @author Gavin King

View File

@ -28,7 +28,7 @@ import static org.hibernate.internal.util.ReflectHelper.getterMethodOrNull;
import static org.hibernate.internal.util.ReflectHelper.findSetterMethod;
/**
* A PropertyAccess based on mix of getter/setter method and/or field.
* A {@link PropertyAccess} based on mix of getter/setter method and/or field.
*
* @author Steve Ebersole
*/

View File

@ -18,8 +18,6 @@ import org.hibernate.property.access.spi.PropertyAccessStrategy;
import org.hibernate.property.access.spi.Setter;
/**
* Yeah, right, so.... No idea...
*
* @author Michael Bartmann
* @author Gavin King
* @author Steve Ebersole

View File

@ -197,11 +197,11 @@ public interface SelectionQuery<R> extends CommonQueryContract {
/**
* Obtain the JDBC fetch size hint in effect for this query. This value is eventually passed along to the JDBC
* query via {@link java.sql.Statement#setFetchSize(int)}. As defined b y JDBC, this value is a hint to the
* query via {@link java.sql.Statement#setFetchSize(int)}. As defined by JDBC, this value is a hint to the
* driver to indicate how many rows to fetch from the database when more rows are needed.
* <p>
* NOTE : JDBC expressly defines this value as a hint. It may or may not have any effect on the actual
* query execution and ResultSet processing depending on the driver.
*
* @implNote JDBC expressly defines this value as a hint. Depending on the driver, it may or may not have any
* effect on the actual query execution and {@link java.sql.ResultSet} processing .
*
* @return The timeout <b>in seconds</b>
*
@ -299,8 +299,8 @@ public interface SelectionQuery<R> extends CommonQueryContract {
* the query inherits the {@link CacheMode} of the session from which
* it originates.
* <p>
* NOTE: The {@link CacheMode} here describes reading-from/writing-to
* the entity/collection caches as we process query results. For caching
* The {@link CacheMode} here describes reading-from/writing-to the
* entity/collection caches as we process query results. For caching
* of the actual query results, see {@link #isCacheable()} and
* {@link #getCacheRegion()}
* <p>
@ -357,8 +357,8 @@ public interface SelectionQuery<R> extends CommonQueryContract {
* This is different to second level caching of any returned entities and
* collections, which is controlled by {@link #getCacheMode()}.
* <p>
* NOTE: the query being "eligible" for caching does not necessarily mean
* its results will be cached. Second-level query caching still has to be
* The query being "eligible" for caching does not necessarily mean its
* results will be cached. Second-level query caching still has to be
* enabled on the {@link SessionFactory} for this to happen. Usually that
* is controlled by the configuration setting
* {@value org.hibernate.cfg.AvailableSettings#USE_QUERY_CACHE}.

View File

@ -766,10 +766,9 @@ public interface HibernateCriteriaBuilder extends CriteriaBuilder {
/**
* Create a predicate that tests whether a Map is empty.
* <p>
* NOTE : Due to type-erasure we cannot name this the same as
* {@link CriteriaBuilder#isEmpty}
*
* @apiNote Due to type-erasure we cannot name this the same as
* {@link CriteriaBuilder#isEmpty}.
*
* @param mapExpression The expression resolving to a Map which we
* want to check for emptiness
@ -779,10 +778,9 @@ public interface HibernateCriteriaBuilder extends CriteriaBuilder {
<M extends Map<?,?>> JpaPredicate isMapEmpty(JpaExpression<M> mapExpression);
/**
* Create a predicate that tests whether a Map is
* not empty.
* <p>
* NOTE : Due to type-erasure we cannot name this the same as
* Create a predicate that tests whether a Map is not empty.
*
* @apiNote Due to type-erasure we cannot name this the same as
* {@link CriteriaBuilder#isNotEmpty}
*
* @param mapExpression The expression resolving to a Map which we
@ -794,8 +792,8 @@ public interface HibernateCriteriaBuilder extends CriteriaBuilder {
/**
* Create an expression that tests the size of a map.
* <p>
* NOTE : Due to type-erasure we cannot name this the same as
*
* @apiNote Due to type-erasure we cannot name this the same as
* {@link CriteriaBuilder#size}
*
* @param mapExpression The expression resolving to a Map for which we

View File

@ -12,7 +12,7 @@ import org.hibernate.query.QueryParameter;
import jakarta.persistence.ParameterMode;
/**
* NOTE: Consider this contract (and its sub-contracts) as incubating as we transition to 6.0 and SQM
* @apiNote Consider this contract (and its subcontracts) as incubating as we transition to 6.0 and SQM.
*
* @author Steve Ebersole
*/

View File

@ -11,13 +11,13 @@
* These result-set mappings are used to map the values in the JDBC {@link java.sql.ResultSet}
* into the query result graph.
* <p>
* NOTE : Handling the different sources of results and fetches is split into multiple packages
* and multiple impls for performance reasons. The classes in {@link org.hibernate.query.results.complete}
* Handling the different sources of results and fetches is split into multiple packages and
* multiple impls for performance reasons. The classes in {@link org.hibernate.query.results.complete}
* represent result/fetch definitions that are completely known up-front and are faster to
* resolve. The definitions in {@link org.hibernate.query.results.dynamic} are built incrementally
* via Hibernate's {@link org.hibernate.query.NativeQuery} contract need to resolve themselves
* against other dynamic result/fetch definitions and therefore take more resources to resolve. The
* classes in {@link org.hibernate.query.results.implicit} represent results that are implied
* against other dynamic result/fetch definitions and therefore take more resources to resolve.
* The classes in {@link org.hibernate.query.results.implicit} represent results that are implied.
*
* @see org.hibernate.query.results.ResultSetMapping
*

View File

@ -10,9 +10,9 @@ import org.hibernate.query.SemanticException;
/**
* Indicates we were not able to resolve a given "path structure" as an entity name.
* <p>
* NOTE : JPA generally requires this to be reported as the far less useful
* IllegalArgumentException.
*
* @apiNote JPA generally requires this to be reported as the much less useful
* {@link IllegalArgumentException}.
*
* todo (6.0) : account for this in the "exception conversion" handling
*

View File

@ -19,7 +19,7 @@ public interface FunctionArgumentTypeResolver {
/**
* Resolve the argument type for a function given its context-implied return type.
* <p>
* NOTE : the _context-implied_ type is the type implied by where the function's
* The <em>context-implied</em> type is the type implied by where the function
* occurs in the query. E.g., for an equality predicate (`something = some_function`)
* the implied type would be defined by the type of `something`.
*

View File

@ -25,7 +25,7 @@ public interface FunctionReturnTypeResolver {
* Resolve the return type for a function given its context-implied type and
* the arguments to this call.
* <p>
* NOTE : the _context-implied_ type is the type implied by where the function's
* The <em>context-implied</em> type is the type implied by where the function
* occurs in the query. E.g., for an equality predicate (`something = some_function`)
* the implied type of the return from `some_function` would be defined by the type
* of `some_function`.
@ -41,7 +41,7 @@ public interface FunctionReturnTypeResolver {
* Resolve the return type for a function given its context-implied type and
* the arguments to this call.
* <p>
* NOTE : the _context-implied_ type is the type implied by where the function's
* The <em>context-implied</em> type is the type implied by where the function
* occurs in the query. E.g., for an equality predicate (`something = some_function`)
* the implied type of the return from `some_function` would be defined by the type
* of `some_function`.

View File

@ -11,7 +11,7 @@ import java.io.Serializable;
/**
* Marker interface for services.
* <p>
* NOTE : All services must be {@link Serializable}!
* All services must be {@link Serializable}!
*
* @author Steve Ebersole
*/

View File

@ -32,8 +32,8 @@ public interface ServiceRegistry extends AutoCloseable {
/**
* Retrieve a service by role. If service is not found, but a {@link org.hibernate.service.spi.ServiceInitiator} is
* registered for this service role, the service will be initialized and returned.
* <p>
* NOTE: We cannot return {@code <R extends Service<T>>} here because the service might come from the parent...
*
* @apiNote We cannot return {@code <R extends Service<T>>} here because the service might come from the parent.
*
* @param serviceRole The service role
* @param <R> The service role type
@ -47,8 +47,8 @@ public interface ServiceRegistry extends AutoCloseable {
/**
* Retrieve a service by role. If service is not found, but a {@link org.hibernate.service.spi.ServiceInitiator} is
* registered for this service role, the service will be initialized and returned.
* <p>
* NOTE: We cannot return {@code <R extends Service<T>>} here because the service might come from the parent...
*
* @apiNote We cannot return {@code <R extends Service<T>>} here because the service might come from the parent.
*
* @param serviceRole The service role
* @param <R> The service role type

View File

@ -30,7 +30,7 @@ import org.hibernate.sql.ast.tree.update.UpdateStatement;
/**
* Logs a debug representation of the SQL AST.
*
* NOTE : at the moment, we only render the from-elements
* @implNote At the moment, we only render the from-elements.
*
* @author Steve Ebersole
*/

View File

@ -11,8 +11,8 @@ import java.sql.PreparedStatement;
import org.hibernate.engine.spi.SharedSessionContractImplementor;
/**
* Helper for creating various types of
* NOTE :
* Helper for creating JDBC statements.
*
* @author Steve Ebersole
*/
public class StatementCreatorHelper {

View File

@ -1053,8 +1053,8 @@ public abstract class AbstractInformationExtractorImpl implements InformationExt
* (not statisics) is being returned.
* </li>
* </ul>
* NOTE: Hibernate ignores statistics and does not
* care about the actual type of index.
* Note that Hibernate ignores statistics and does not care
* about the actual type of index.
* </li>
* <li>
* column label {@link #getResultSetColumnNameLabel} -

View File

@ -16,7 +16,7 @@ import org.hibernate.tool.schema.extract.internal.TableInformationImpl;
* from {@link java.sql.DatabaseMetaData} since on many databases there are better ways to get information from
* the meta schema.
*
* NOTE : Concepts here taken largely from the {@code MetaDataDialect} class in Hibernate Tools.
* @apiNote Concepts here taken largely from the {@code MetaDataDialect} class in Hibernate Tools.
*
* @author Steve Ebersole
*/

View File

@ -66,7 +66,7 @@ public final class JdbcTypeNameMapper {
* Determine whether the given JDBC type code represents a standard JDBC type
* ("standard" being those defined on {@link java.sql.Types}).
*
* NOTE : {@link java.sql.Types#OTHER} is also "filtered out" as being non-standard.
* @implNote {@link java.sql.Types#OTHER} is also "filtered out" as being non-standard.
*
* @param typeCode The JDBC type code to check
*