javax.persistence.metamodel.Metamodel Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javax.persistence Show documentation
Show all versions of javax.persistence Show documentation
javax.persistence build based upon git transaction cfcdce1
The newest version!
/*
* Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Linda DeMichiel - Java Persistence 2.1
// Linda DeMichiel - Java Persistence 2.0
package javax.persistence.metamodel;
import java.util.Set;
/**
* Provides access to the metamodel of persistent
* entities in the persistence unit.
*
* @since Java Persistence 2.0
*/
public interface Metamodel {
/**
* Return the metamodel entity type representing the entity.
* @param cls the type of the represented entity
* @return the metamodel entity type
* @throws IllegalArgumentException if not an entity
*/
EntityType entity(Class cls);
/**
* Return the metamodel managed type representing the
* entity, mapped superclass, or embeddable class.
* @param cls the type of the represented managed class
* @return the metamodel managed type
* @throws IllegalArgumentException if not a managed class
*/
ManagedType managedType(Class cls);
/**
* Return the metamodel embeddable type representing the
* embeddable class.
* @param cls the type of the represented embeddable class
* @return the metamodel embeddable type
* @throws IllegalArgumentException if not an embeddable class
*/
EmbeddableType embeddable(Class cls);
/**
* Return the metamodel managed types.
* @return the metamodel managed types
*/
Set> getManagedTypes();
/**
* Return the metamodel entity types.
* @return the metamodel entity types
*/
Set> getEntities();
/**
* Return the metamodel embeddable types. Returns empty set
* if there are no embeddable types.
* @return the metamodel embeddable types
*/
Set> getEmbeddables();
}