/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
 */
package org.hibernate.persister.walking.spi;

import org.hibernate.type.Type;

Represents a collection element.
Author:Steve Ebersole
/** * Represents a collection element. * * @author Steve Ebersole */
public interface CollectionElementDefinition {
Returns the collection definition.
Returns: the collection definition.
/** * Returns the collection definition. * @return the collection definition. */
public CollectionDefinition getCollectionDefinition();
Returns the collection element type.
Returns:the collection element type
/** * Returns the collection element type. * @return the collection element type */
public Type getType();
If the element type returned by getType() is an AnyType, then the any mapping definition for the collection element is returned; otherwise, IllegalStateException is thrown.
Throws:
Returns:the any mapping definition for the collection element.
/** * If the element type returned by {@link #getType()} is an * {@link org.hibernate.type.AnyType}, then the any mapping * definition for the collection element is returned; * otherwise, IllegalStateException is thrown. * * @return the any mapping definition for the collection element. * * @throws IllegalStateException if the collection element type * returned by {@link #getType()} is not of type * {@link org.hibernate.type.AnyType}. */
public AnyMappingDefinition toAnyMappingDefinition();
If the element type returned by getType() is an EntityType, then the entity definition for the collection element is returned; otherwise, IllegalStateException is thrown.
Throws:
Returns:the entity definition for the collection element.
/** * If the element type returned by {@link #getType()} is an * {@link org.hibernate.type.EntityType}, then the entity * definition for the collection element is returned; * otherwise, IllegalStateException is thrown. * * @return the entity definition for the collection element. * * @throws IllegalStateException if the collection element type * returned by {@link #getType()} is not of type * {@link org.hibernate.type.EntityType}. */
public EntityDefinition toEntityDefinition();
If the element type returned by getType() is a CompositeType, then the composite element definition for the collection element is returned; otherwise, IllegalStateException is thrown.
Throws:
Returns:the composite element definition for the collection element.
/** * If the element type returned by {@link #getType()} is a * {@link org.hibernate.type.CompositeType}, then the composite * element definition for the collection element is returned; * otherwise, IllegalStateException is thrown. * * @return the composite element definition for the collection element. * * @throws IllegalStateException if the collection element type * returned by {@link #getType()} is not of type * {@link org.hibernate.type.CompositeType}. */
public CompositeCollectionElementDefinition toCompositeElementDefinition(); }