blob: dcd2cb6366dac9cb1141ae70ddadcd1a7fff188b [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.context.base;
import java.util.ListIterator;
public interface ISingleRelationshipMapping extends IRelationshipMapping, INullable
{
FetchType DEFAULT_FETCH_TYPE = FetchType.EAGER;
<T extends IJoinColumn> ListIterator<T> joinColumns();
<T extends IJoinColumn> ListIterator<T> specifiedJoinColumns();
<T extends IJoinColumn> ListIterator<T> defaultJoinColumns();
int specifiedJoinColumnsSize();
IJoinColumn addSpecifiedJoinColumn(int index);
void removeSpecifiedJoinColumn(int index);
void moveSpecifiedJoinColumn(int targetIndex, int sourceIndex);
String SPECIFIED_JOIN_COLUMNS_LIST = "specifiedJoinColumnsList";
String DEFAULT_JOIN_COLUMNS_LIST = "defaultJoinColumnsList";
boolean containsSpecifiedJoinColumns();
// public class JoinColumnOwner implements IJoinColumn.Owner
// {
// private ISingleRelationshipMapping singleRelationshipMapping;
//
// public JoinColumnOwner(ISingleRelationshipMapping singleRelationshipMapping) {
// super();
// this.singleRelationshipMapping = singleRelationshipMapping;
// }
//
// /**
// * by default, the join column is in the type mapping's primary table
// */
// public String defaultTableName() {
// return this.singleRelationshipMapping.getPersistentAttribute().typeMapping().getTableName();
// }
//
// public List<IJoinColumn> joinColumns() {
// return this.singleRelationshipMapping.getJoinColumns();
// }
//
// public int indexOf(IAbstractJoinColumn joinColumn) {
// return joinColumns().indexOf(joinColumn);
// }
//
// public IEntity targetEntity() {
// return this.singleRelationshipMapping.getResolvedTargetEntity();
// }
//
// public String attributeName() {
// return this.singleRelationshipMapping.getPersistentAttribute().getName();
// }
//
// public IRelationshipMapping getRelationshipMapping() {
// return this.singleRelationshipMapping;
// }
//
// public boolean tableNameIsInvalid(String tableName) {
// return this.singleRelationshipMapping.getPersistentAttribute().typeMapping().tableNameIsInvalid(tableName);
// }
//
// /**
// * the join column can be on a secondary table
// */
// public boolean tableIsAllowed() {
// return true;
// }
//
// public ITextRange validationTextRange() {
// return this.singleRelationshipMapping.validationTextRange();
// }
//
// public ITypeMapping getTypeMapping() {
// return this.singleRelationshipMapping.typeMapping();
// }
//
// public Table dbTable(String tableName) {
// return getTypeMapping().dbTable(tableName);
// }
//
// public Table dbReferencedColumnTable() {
// IEntity targetEntity = targetEntity();
// return (targetEntity == null) ? null : targetEntity().primaryDbTable();
// }
//
// public boolean isVirtual(IAbstractJoinColumn joinColumn) {
// return this.singleRelationshipMapping.getDefaultJoinColumns().contains(joinColumn);
// }
// }
}