Copyright (c) 2008 - 2013 Oracle Corporation. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 which accompanies this distribution. The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html and the Eclipse Distribution License is available at http://www.eclipse.org/org/documents/edl-v10.php. Contributors: Linda DeMichiel - Java Persistence 2.1 Linda DeMichiel - Java Persistence 2.0
/******************************************************************************* * Copyright (c) 2008 - 2013 Oracle Corporation. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * Linda DeMichiel - Java Persistence 2.1 * Linda DeMichiel - Java Persistence 2.0 * ******************************************************************************/
package javax.persistence.metamodel; import java.util.Set;
Instances of the type IdentifiableType represent entity or mapped superclass types. @param The represented entity or mapped superclass type. @since Java Persistence 2.0
/** * Instances of the type <code>IdentifiableType</code> represent entity or * mapped superclass types. * * @param <X> The represented entity or mapped superclass type. * * @since Java Persistence 2.0 * */
public interface IdentifiableType<X> extends ManagedType<X> {
Return the attribute that corresponds to the id attribute of the entity or mapped superclass. @param type the type of the represented id attribute @return id attribute @throws IllegalArgumentException if id attribute of the given type is not present in the identifiable type or if the identifiable type has an id class
/** * Return the attribute that corresponds to the id attribute of * the entity or mapped superclass. * @param type the type of the represented id attribute * @return id attribute * @throws IllegalArgumentException if id attribute of the given * type is not present in the identifiable type or if * the identifiable type has an id class */
<Y> SingularAttribute<? super X, Y> getId(Class<Y> type);
Return the attribute that corresponds to the id attribute declared by the entity or mapped superclass. @param type the type of the represented declared id attribute @return declared id attribute @throws IllegalArgumentException if id attribute of the given type is not declared in the identifiable type or if the identifiable type has an id class
/** * Return the attribute that corresponds to the id attribute * declared by the entity or mapped superclass. * @param type the type of the represented declared * id attribute * @return declared id attribute * @throws IllegalArgumentException if id attribute of the given * type is not declared in the identifiable type or if * the identifiable type has an id class */
<Y> SingularAttribute<X, Y> getDeclaredId(Class<Y> type);
Return the attribute that corresponds to the version attribute of the entity or mapped superclass. @param type the type of the represented version attribute @return version attribute @throws IllegalArgumentException if version attribute of the given type is not present in the identifiable type
/** * Return the attribute that corresponds to the version * attribute of the entity or mapped superclass. * @param type the type of the represented version attribute * @return version attribute * @throws IllegalArgumentException if version attribute of the * given type is not present in the identifiable type */
<Y> SingularAttribute<? super X, Y> getVersion(Class<Y> type);
Return the attribute that corresponds to the version attribute declared by the entity or mapped superclass. @param type the type of the represented declared version attribute @return declared version attribute @throws IllegalArgumentException if version attribute of the type is not declared in the identifiable type
/** * Return the attribute that corresponds to the version * attribute declared by the entity or mapped superclass. * @param type the type of the represented declared version * attribute * @return declared version attribute * @throws IllegalArgumentException if version attribute of the * type is not declared in the identifiable type */
<Y> SingularAttribute<X, Y> getDeclaredVersion(Class<Y> type);
Return the identifiable type that corresponds to the most specific mapped superclass or entity extended by the entity or mapped superclass. @return supertype of identifiable type or null if no such supertype
/** * Return the identifiable type that corresponds to the most * specific mapped superclass or entity extended by the entity * or mapped superclass. * @return supertype of identifiable type or null if no * such supertype */
IdentifiableType<? super X> getSupertype();
Whether the identifiable type has a single id attribute. Returns true for a simple id or embedded id; returns false for an idclass. @return boolean indicating whether the identifiable type has a single id attribute
/** * Whether the identifiable type has a single id attribute. * Returns true for a simple id or embedded id; returns false * for an idclass. * @return boolean indicating whether the identifiable * type has a single id attribute */
boolean hasSingleIdAttribute();
Whether the identifiable type has a version attribute. @return boolean indicating whether the identifiable type has a version attribute
/** * Whether the identifiable type has a version attribute. * @return boolean indicating whether the identifiable * type has a version attribute */
boolean hasVersionAttribute();
Return the attributes corresponding to the id class of the identifiable type. @return id attributes @throws IllegalArgumentException if the identifiable type does not have an id class
/** * Return the attributes corresponding to the id class of the * identifiable type. * @return id attributes * @throws IllegalArgumentException if the identifiable type * does not have an id class */
Set<SingularAttribute<? super X, ?>> getIdClassAttributes();
Return the type that represents the type of the id. @return type of id
/** * Return the type that represents the type of the id. * @return type of id */
Type<?> getIdType(); }