javax.persistence.metamodel

## Interface Metamodel

    public interface Metamodel

Provides access to the metamodel of persistent entities in the persistence unit.

Since:
  Java Persistence 2.0

### Method Summary

All Methods Instance Methods Abstract Methods
`<X> EmbeddableType<X>` `embeddable(java.lang.Class<X> cls)` Return the metamodel embeddable type representing the embeddable class.
`<X> EntityType<X>` `entity(java.lang.Class<X> cls)` Return the metamodel entity type representing the entity.
`java.util.Set<EmbeddableType<?>>` `getEmbeddables()` Return the metamodel embeddable types.
`java.util.Set<EntityType<?>>` `getEntities()` Return the metamodel entity types.
`java.util.Set<ManagedType<?>>` `getManagedTypes()` Return the metamodel managed types.
`<X> ManagedType<X>` `managedType(java.lang.Class<X> cls)` Return the metamodel managed type representing the entity, mapped superclass, or embeddable class.

### Method Detail

#### entity

    <X> EntityType<X> entity(java.lang.Class<X> cls)

Return the metamodel entity type representing the entity.

Parameters:
  `cls` - the type of the represented entity
Returns:
  the metamodel entity type
Throws:
  `java.lang.IllegalArgumentException` - if not an entity

#### managedType

    <X> ManagedType<X> managedType(java.lang.Class<X> cls)

Return the metamodel managed type representing the entity, mapped superclass, or embeddable class.

Parameters:
  `cls` - the type of the represented managed class
Returns:
  the metamodel managed type
Throws:
  `java.lang.IllegalArgumentException` - if not a managed class

#### embeddable

    <X> EmbeddableType<X> embeddable(java.lang.Class<X> cls)

Return the metamodel embeddable type representing the embeddable class.

Parameters:
  `cls` - the type of the represented embeddable class
Returns:
  the metamodel embeddable type
Throws:
  `java.lang.IllegalArgumentException` - if not an embeddable class

#### getManagedTypes

    java.util.Set<ManagedType<?>> getManagedTypes()

Return the metamodel managed types.

Returns:
  the metamodel managed types

#### getEntities

    java.util.Set<EntityType<?>> getEntities()

Return the metamodel entity types.

Returns:
  the metamodel entity types

#### getEmbeddables

    java.util.Set<EmbeddableType<?>> getEmbeddables()

Return the metamodel embeddable types. Returns empty set if there are no embeddable types.

Returns:
  the metamodel embeddable types