| /* |
| * 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; |
| |
| /** |
| * Represents an attribute of a Java type. |
| * |
| * @param <X> The represented type that contains the attribute |
| * @param <Y> The type of the represented attribute |
| * |
| * @since Java Persistence 2.0 |
| */ |
| public interface Attribute<X, Y> { |
| |
| public static enum PersistentAttributeType { |
| |
| /** Many-to-one association */ |
| MANY_TO_ONE, |
| |
| /** One-to-one association */ |
| ONE_TO_ONE, |
| |
| /** Basic attribute */ |
| BASIC, |
| |
| /** Embeddable class attribute */ |
| EMBEDDED, |
| |
| /** Many-to-many association */ |
| MANY_TO_MANY, |
| |
| /** One-to-many association */ |
| ONE_TO_MANY, |
| |
| /** Element collection */ |
| ELEMENT_COLLECTION |
| } |
| |
| /** |
| * Return the name of the attribute. |
| * @return name |
| */ |
| String getName(); |
| |
| /** |
| * Return the persistent attribute type for the attribute. |
| * @return persistent attribute type |
| */ |
| PersistentAttributeType getPersistentAttributeType(); |
| |
| /** |
| * Return the managed type representing the type in which |
| * the attribute was declared. |
| * @return declaring type |
| */ |
| ManagedType<X> getDeclaringType(); |
| |
| /** |
| * Return the Java type of the represented attribute. |
| * @return Java type |
| */ |
| Class<Y> getJavaType(); |
| |
| /** |
| * Return the <code>java.lang.reflect.Member</code> for the represented |
| * attribute. |
| * @return corresponding <code>java.lang.reflect.Member</code> |
| */ |
| java.lang.reflect.Member getJavaMember(); |
| |
| /** |
| * Is the attribute an association. |
| * @return boolean indicating whether the attribute |
| * corresponds to an association |
| */ |
| boolean isAssociation(); |
| |
| /** |
| * Is the attribute collection-valued (represents a Collection, |
| * Set, List, or Map). |
| * @return boolean indicating whether the attribute is |
| * collection-valued |
| */ |
| boolean isCollection(); |
| } |