################################################################################
# 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=Choose XML:
MAPPING_XML_TITLE=Mapping XML
XML_NAME_TITLE=XML name:
CHOOSE_MAPPING_XML_MESSAGE=Choose mapping XML or create new one
INCORRECT_XML_NAME=Incorrect XML name
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=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-based
PROPERTY_BASED=Property-based
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
