/*******************************************************************************
 * Copyright (c) 2009 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.jpa2.resource.orm;

/**
 * JPA persistence2_0.xml-related stuff (elements, attributes etc.)
 * 
 * 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.
 */
@SuppressWarnings("nls")
public interface JPA {

	String NAMESPACE_URL = "http://java.sun.com/xml/ns/persistence/orm";
	String SCHEMA_LOCATION_2_0 = "http://java.sun.com/xml/ns/persistence/orm_2_0.xsd";
	String VERSION_2_0		= "2.0";
	
	String ACCESS = "access";
	String ALLOCATION_SIZE = "allocation-size";
	String ASSOCIATION_OVERRIDE = "association-override";
	String ATTRIBUTE_OVERRIDE = "attribute-override";
	String ATTRIBUTES = "attributes";
	String BASIC = "basic";
	String CASCADE = "cascade";
	String CASCADE_ALL = "cascade-all";
	String CASCADE_MERGE = "cascade-merge";
	String CASCADE_PERSIST = "cascade-persist";
	String CASCADE_REFRESH = "cascade-refresh";	
	String CASCADE_REMOVE = "cascade-remove";	
	String CATALOG = "catalog";
	String CLASS = "class";
	String COLLECTION_TABLE = "collection-table";
	String COLUMN = "column";
	String COLUMN_DEFINITION= "column-definition";
	String COLUMN_NAME = "column-name";
	String COLUMN_RESULT = "column-result";
	String DESCRIPTION = "description";
	String DISCRIMINATOR_COLUMN = "discriminator-column";
	String DISCRIMINATOR_TYPE = "discriminator-type";
	String DISCRIMINATOR_VALUE = "discriminator-value";
	String ELEMENT_COLLECTION = "element-collection";
	String EMBEDDABLE = "embeddable";
	String EMBEDDED = "embedded";
	String EMBEDDED_ID = "embedded-id";
	String ENTITY = "entity";
	String ENTITY_CLASS = "entity-class";
	String ENTITY_LISTENER = "entity-listener";
	String ENTITY_LISTENERS = "entity-listeners";
	String ENTITY_MAPPINGS = "entity-mappings";	
		String ENTITY_MAPPINGS__VERSION = "version";
		
	String ENTITY_RESULT = "entity-result";
	String ENUMERATED = "enumerated";
	String EXCLUDE_DEFAULT_LISTENERS = "exclude-default-listeners";
	String EXCLUDE_SUPERCLASS_LISTENERS = "exclude-superclass-listeners";
	String FETCH = "fetch";
	String FIELD_RESULT = "field-result";
	String GENERATED_VALUE = "generated-value";
	String GENERATOR = "generator";
	String HINT = "hint";
	String ID = "id";
	String ID_CLASS = "id-class";
	String INHERITANCE = "inheritance";
	String INITIAL_VALUE = "initial-value";
	String INSERTABLE = "insertable";
	String INVERSE_JOIN_COLUMN = "inverse-join-column";
	String JOIN_COLUMN = "join-column";
	String JOIN_TABLE = "join-table";
	String LENGTH = "length";
	String LOB = "lob";
	String MANY_TO_MANY = "many-to-many";
	String MANY_TO_ONE = "many-to-one";
	String MAP_KEY = "map-key";
	String MAP_KEY_ATTRIBUTE_OVERRIDE = "map-key-attribute-override";
	String MAP_KEY_CLASS = "map-key-class";
	String MAP_KEY_COLUMN = "map-key-column";
	String MAP_KEY_JOIN_COLUMN = "map-key-join-column";
	String MAPPED_BY = "mapped-by";
	String MAPPED_BY_ID = "mapped-by-id";
	String MAPPED_SUPERCLASS = "mapped-superclass";
	String METADATA_COMPLETE = "metadata-complete";
	String METHOD_NAME = "method-name";
	String NAME = "name";
	String NAMED_NATIVE_QUERY = "named-native-query";
	String NAMED_QUERY = "named-query";
		String NAMED_QUERY__LOCK_MODE = "lock-mode";
	String NULLABLE = "nullable";
	String ONE_TO_MANY = "one-to-many";
	String ONE_TO_ONE = "one-to-one";
	String OPTIONAL = "optional";
	String ORDER_BY = "order-by";
	String ORDER_COLUMN = "order-column";
	String ORPHAN_REMOVAL = "orphan-removal";
	String PACKAGE = "package";
	String PERSISTENCE_UNIT_DEFAULTS = "persistence-unit-defaults";
	String PERSISTENCE_UNIT_METADATA = "persistence-unit-metadata";
	String PK_COLUMN_NAME = "pk-column-name";
	String PK_COLUMN_VALUE = "pk-column-value";
	String POST_LOAD = "post-load";
	String POST_PERSIST = "post-persist";
	String POST_REMOVE = "post-remove";
	String POST_UPDATE = "post-update";
	String PRE_PERSIST = "pre-persist";
	String PRE_REMOVE = "pre-remove";
	String PRE_UPDATE = "pre-update";
	String PRECISION = "precision";
	String PRIMARY_KEY_JOIN_COLUMN = "primary-key-join-column";
	String QUERY = "query";
	String REFERENCED_COLUMN_NAME = "referenced-column-name";
	String RESULT_CLASS = "result-class";
	String RESULT_SET_MAPPING = "result-set-mapping";
	String SCALE = "scale";
	String SCHEMA = "schema";
	String SECONDARY_TABLE = "secondary-table";
	String SEQUENCE_GENERATOR = "sequence-generator";
	String SEQUENCE_NAME = "sequence-name";
	String SQL_RESULT_SET_MAPPING = "sql-result-set-mapping";
	String STRATEGY = "strategy";
	String TABLE = "table";
	String TABLE_GENERATOR = "table-generator";
	String TARGET_CLASS = "target-class";
	String TARGET_ENTITY = "target-entity";
	String TEMPORAL = "temporal";
	String TRANSIENT = "transient";
	String UNIQUE = "unique";
	String UNIQUE_CONSTRAINT = "unique-constraint";
	String UPDATABLE = "updatable";
	String VALUE = "value";
	String VALUE_COLUMN_NAME = "value-column-name";
	String VERSION = "version";	
	String XML_MAPPING_METADATA_COMPLETE = "xml-mapping-metadata-complete";
	

	// JPA 2.0 specific elements
	
	String CACHEABLE = "cacheable";
	String DELIMITIED_IDENTIFIERS = "delimited-identifiers";


}
