/*******************************************************************************
 * Copyright (c) 2007, 2012 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.jpa.core.resource.java;

/**
 * Corresponds to the JPA annotation
 * <code>javax.persistence.AttributeOverride</code>
 * <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.
 * 
 * @version 2.2
 * @since 2.0
 */
public interface AttributeOverrideAnnotation
	extends OverrideAnnotation
{
	String ANNOTATION_NAME = JPA.ATTRIBUTE_OVERRIDE;


	/**
	 * Corresponds to the 'column' element of the AttributeOverride annotation.
	 * Return null if the element does not exist in Java.
	 */
	ColumnAnnotation getColumn();
		String COLUMN_PROPERTY = "column"; //$NON-NLS-1$

	ColumnAnnotation getNonNullColumn();

	/**
	 * Add the 'column' element to the AttributeOverride annotation.
	 */
	ColumnAnnotation addColumn();

	/**
	 * Remove the 'column' element from the AttributeOverride annotation.
	 */
	void removeColumn();
}
