/*******************************************************************************
 * Copyright (c) 2008 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.common.ui.internal.swt;

import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel;

/**
 * This adapter is used by the table model adapter to convert a model object
 * into the models used for each of the cells for the object's corresponding row
 * in the table.
 *
 * @version 2.0
 * @since 2.0
 */
public interface ColumnAdapter<V> {

	/**
	 * Return the cell models for the specified subject
	 * that corresponds to a single row in the table.
	 */
	WritablePropertyValueModel<?>[] cellModels(V subject);

	/**
	 * Returns the number of columns in the table. Typically this is static.
	 *
	 * @return The number of columns
	 */
	int columnCount();

	/**
	 * Returns the name of the column at the specified index.
	 *
	 * @param columnIndex The index of the column to retrieve its display text
	 * @return The display text of the column
	 */
	String columnName(int columnIndex);

	/**
	 * Returns whether the specified column is editable. Typically this is the
	 * same for every row.
	 *
	 * @param columnIndex The index of the column for which we determine if
	 * the content can be modified
	 * @return <code>true</code> to allow editing of the cell at the given
	 * column index; <code>false</code> to keep it not editable
	 */
//	boolean columnIsEditable(int columnIndex);
}
