blob: 85db84e7184746fffb46745a1de7734d323ba624 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006, 2007 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the terms of
* the Eclipse Public License v1.0, which accompanies this distribution and is available at
* http://www.eclipse.org/legal/epl-v10.html.
*
* Contributors:
* Oracle - initial API and implementation
******************************************************************************/
package org.eclipse.jpt.core.internal.mappings;
import java.util.Iterator;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>IMulti Relationship Mapping</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.jpt.core.internal.mappings.IMultiRelationshipMapping#getOrderBy <em>Order By</em>}</li>
* <li>{@link org.eclipse.jpt.core.internal.mappings.IMultiRelationshipMapping#getFetch <em>Fetch</em>}</li>
* <li>{@link org.eclipse.jpt.core.internal.mappings.IMultiRelationshipMapping#getJoinTable <em>Join Table</em>}</li>
* <li>{@link org.eclipse.jpt.core.internal.mappings.IMultiRelationshipMapping#getMapKey <em>Map Key</em>}</li>
* </ul>
* </p>
*
* @see org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage#getIMultiRelationshipMapping()
* @model kind="class" interface="true" abstract="true"
* @generated
*/
public interface IMultiRelationshipMapping extends INonOwningMapping
{
/**
* Returns the value of the '<em><b>Order By</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Order By</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Order By</em>' attribute.
* @see #setOrderBy(String)
* @see org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage#getIMultiRelationshipMapping_OrderBy()
* @model unique="false" ordered="false"
* @generated
*/
String getOrderBy();
/**
* Sets the value of the '{@link org.eclipse.jpt.core.internal.mappings.IMultiRelationshipMapping#getOrderBy <em>Order By</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Order By</em>' attribute.
* @see #getOrderBy()
* @generated
*/
void setOrderBy(String value);
/**
* Returns the value of the '<em><b>Fetch</b></em>' attribute.
* The literals are from the enumeration {@link org.eclipse.jpt.core.internal.mappings.DefaultLazyFetchType}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Fetch</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Fetch</em>' attribute.
* @see org.eclipse.jpt.core.internal.mappings.DefaultLazyFetchType
* @see #setFetch(DefaultLazyFetchType)
* @see org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage#getIMultiRelationshipMapping_Fetch()
* @model
* @generated
*/
DefaultLazyFetchType getFetch();
/**
* Sets the value of the '{@link org.eclipse.jpt.core.internal.mappings.IMultiRelationshipMapping#getFetch <em>Fetch</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Fetch</em>' attribute.
* @see org.eclipse.jpt.core.internal.mappings.DefaultLazyFetchType
* @see #getFetch()
* @generated
*/
void setFetch(DefaultLazyFetchType value);
/**
* Returns the value of the '<em><b>Join Table</b></em>' containment reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Join Table</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Join Table</em>' containment reference.
* @see org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage#getIMultiRelationshipMapping_JoinTable()
* @model containment="true" required="true" changeable="false"
* @generated
*/
IJoinTable getJoinTable();
/**
* All multi-relationship mappings have a join table, even if it has to be
* calculated from default settings. However, it is important to note
* whether the table *is* default or whether it is specified.
*/
boolean isJoinTableSpecified();
/**
* Returns the value of the '<em><b>Map Key</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Map Key</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Map Key</em>' attribute.
* @see #setMapKey(String)
* @see org.eclipse.jpt.core.internal.mappings.JpaCoreMappingsPackage#getIMultiRelationshipMapping_MapKey()
* @model
* @generated
*/
String getMapKey();
/**
* Sets the value of the '{@link org.eclipse.jpt.core.internal.mappings.IMultiRelationshipMapping#getMapKey <em>Map Key</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Map Key</em>' attribute.
* @see #getMapKey()
* @generated
*/
void setMapKey(String value);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @model kind="operation" unique="false" required="true" ordered="false"
* @generated
*/
boolean isNoOrdering();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @model
* @generated
*/
void setNoOrdering();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @model kind="operation" unique="false" required="true" ordered="false"
* @generated
*/
boolean isOrderByPk();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @model
* @generated
*/
void setOrderByPk();
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @model kind="operation" unique="false" required="true" ordered="false"
* @generated
*/
boolean isCustomOrdering();
Iterator<String> candidateMapKeyNames();
}