Skip to main content
summaryrefslogblamecommitdiffstats
blob: 7eb6f75bd1f2c3c4eced6e5c69204ad9aef9cd2d (plain) (tree)
1
2
3
4
5
6
7
8
9








                                                                                
                                     
 
                                             
 
 
                                                                             
 
                         
                                                      

           


                                                                                   
           
                            

           
                                                                
           
                                   

           


                                                                       
                                      



                                                                    
                                               

           


                                                                           
           
                                                


                                                                               
                                  
 
                                        
        




                                                                         














                                                                                  





                                                                              
 
/*******************************************************************************
 * 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.context;

import org.eclipse.jpt.core.JpaStructureNode;


public interface PersistentAttribute extends JpaContextNode, JpaStructureNode
{
	String getName();
		String NAME_PROPERTY = "nameProperty";

	/**
	 * Return the key for the attribute's mapping.
	 * The key may be for either the "specified" mapping or, if the "specified"
	 * mapping is missing, the "default" mapping.
	 */
	String mappingKey();

	/**
	 * Return the key for the attribute's "default" mapping.
	 */
	String defaultMappingKey();

	/**
	 * Return the attribute's "specified" mapping, or if it is null
	 * return the "default" mapping.  WIll not return null.
	 */
	AttributeMapping getMapping();

	/**
	 * Return the attribute's "specified" mapping, could be null
	 */
	AttributeMapping getSpecifiedMapping();
	
	/**
	 * Clients should call this method to set the attribute's mapping.
	 * Passing in a null key will cause the "specified" mapping to be
	 * cleared and the attribute's mapping to be its "default" mapping.
	 */
	void setSpecifiedMappingKey(String key);
		String SPECIFIED_MAPPING_PROPERTY = "specifiedMappingProperty";
		String DEFAULT_MAPPING_PROPERTY = "defaultMappingProperty";
	
	TypeMapping typeMapping();

	PersistentType persistentType();
	
	/**
	 * If the attribute is mapped to a primary key column, return the
	 * column's name, otherwise return null.
	 */
	String primaryKeyColumnName();

	/**
	 * Return whether the attribute's "attribute" mapping can be overridden.
	 */
	boolean isOverridableAttribute();

	/**
	 * Return whether the attribute's "association" mapping can be overridden.
	 */
	boolean isOverridableAssociation();

	/**
	 * Return whether the attribute's "attribute" mapping is for an ID.
	 */
	boolean isIdAttribute();
	
	/**
	 * Return whether this attribute actually has a textual representation
	 * in its underlying resource (false = no)
	 */
	boolean isVirtual();
}

Back to the top