/*******************************************************************************
 * Copyright (c) 2010, 2013 Oracle. All rights reserved.
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0, which accompanies this distribution
 * and is available at https://www.eclipse.org/legal/epl-2.0/.
 *
 * Contributors:
 *     Oracle - initial API and implementation
 ******************************************************************************/
package org.eclipse.jpt.jpa.core.context;

import org.eclipse.jpt.common.utility.iterable.ListIterable;

/**
 * <em>Virtual</em> join column relationship strategy
 * (used by only <em>virtual</em> association overrides)
 * <p>
 * Provisional API: This interface is part of an interim API that is still
 * under development and expected to change significantly before reaching
 * stability. It is available at this early stage to solicit feedback from
 * pioneering adopters on the understanding that any code that uses this API
 * will almost certainly be broken (repeatedly) as the API evolves.
 */
public interface VirtualJoinColumnRelationshipStrategy
	extends JoinColumnRelationshipStrategy, VirtualRelationshipStrategy
{
	ListIterable<? extends VirtualJoinColumn> getJoinColumns();
	ListIterable<? extends VirtualJoinColumn> getSpecifiedJoinColumns();
	VirtualJoinColumn getSpecifiedJoinColumn(int index);
	VirtualJoinColumn getDefaultJoinColumn();
}
