/*******************************************************************************
 * Copyright (c) 2010, 2011 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.jpa1.context;

import org.eclipse.jpt.core.context.RelationshipStrategy;
import org.eclipse.jpt.core.internal.jpa1.context.BaseColumnTableValidator.TableDescriptionProvider;

public class RelationshipStrategyTableDescriptionProvider
	implements TableDescriptionProvider
{
	private final RelationshipStrategy relationshipStrategy;
	
	public RelationshipStrategyTableDescriptionProvider(RelationshipStrategy relationshipStrategy) {
		super();
		this.relationshipStrategy = relationshipStrategy;
	}

	public String getColumnTableDescriptionMessage() {
		return this.relationshipStrategy.getColumnTableNotValidDescription();
	}

}
