################################################################################
# Copyright (c) 2008 by SAP AG, Walldorf. 
# 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:
#     SAP AG - initial API and implementation
#     Dimiter Dimitrov, d.dimitrov@sap.com - initial API and implementation     
################################################################################

ENTITY_WIZARD_TITLE=New JPA Entity
ADD_ENTITY_WIZARD_PAGE_TITLE=Entity class
ADD_ENTITY_WIZARD_PAGE_DESCRIPTION=Specify package, class name, and inheritance properties.
DEFAULT_PACKAGE_WARNING=The usage of the default package is not recommended.
ENTITY_PROPERTIES_TITLE=Entity Properties
ENTITY_PROPERTIES_DESCRIPTION=Set entity name, table name, fields, and access type.
ENTITY=Entity
MAPPED_AS_SUPERCLASS=Mapped superclass
INHERITANCE_GROUP=Inheritance
INHERITANCE_CHECK_BOX=Inheritance:
XML_STORAGE_GROUP=XML entity mappings
XML_SUPPORT=Add to entity mappings in XML
CHOOSE_XML=Mapping file:
MAPPING_XML_TITLE=Mapping File
XML_NAME_TITLE=XML name:
CHOOSE_MAPPING_XML_MESSAGE=Choose mapping XML
INVALID_XML_NAME=The mapping file does not exist
TYPE_DIALOG_TITLE=Choose Type
TYPE_DIALOG_DESCRIPTION=Choose the type of the entity field.
ENTITY_NAME=Entity name:
TABLE_NAME_GROUP=Table name
TABLE_NAME=Table name:
USE_DEFAULT=Use default
ENTITY_FIELDS_GROUP=Entity fields
ENTITY_FIELDS_DIALOG_TITLE=Entity Fields
KEY=Key
NAME_COLUMN=Name
TYPE_COLUMN=Type
NAME_TEXT_FIELD=Name:
TYPE_TEXT_FIELD=Type:
BROWSE_BUTTON_LABEL=Browse...
ADD_BUTTON_LABEL=Add...
EDIT_BUTTON_LABEL=Edit...
REMOVE_BUTTON_LABEL=Remove
DUPLICATED_ENTITY_NAMES_MESSAGE=There are duplicate names on created entity fields. Please resolve the duplication.
ACCESS_TYPE=Access type
FIELD_BASED=Field
PROPERTY_BASED=Property
NO_JPA_PROJECTS=No JPA projects in the workspace
APPLY_CHANGES_TO_PERSISTENCE_XML=Apply changes to persistence XML
ADD_MAPPED_SUPERCLASS_TO_XML=Add mapped superclass to XML
ADD_ENTITY_TO_XML=Add entity to XML
EntityDataModelProvider_entityNotInProjectClasspath=''{0}'' does not exist on the project classpath
EntityDataModelProvider_invalidArgument=Invalid argument ''{0}''
