###############################################################################
# Copyright (c) 2006, 2008 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
############################################################################### 

AbstractChooserPane_browseButton=Browse...

AddPersistentAttributeDialog_title=Add Persistent Attribute
AddPersistentAttributeDialog_attributeLabel=Attribute:
AddPersistentAttributeDialog_mappingLabel=Map as:
AddPersistentAttributeDialog_noMappingKeyError=You must specify a mapping type

AddPersistentClassDialog_title=Add Persistent Class
AddPersistentClassDialog_classLabel=Class:
AddPersistentClassDialog_classDialog_title=Persistent Class Selection
AddPersistentClassDialog_classDialog_message=Choose a class:
AddPersistentClassDialog_mappingLabel=Map as:
AddPersistentClassDialog_noClassError=You must specify a class
AddPersistentClassDialog_duplicateClassWarning=File already contains that persistent class
AddPersistentClassDialog_classNotFoundWarning=Cannot resolve class
AddPersistentClassDialog_noMappingKeyError=You must specify a mapping type

AddRemovePane_AddButtonText=Add...
AddRemovePane_RemoveButtonText=Remove

ClassChooserPane_dialogMessage=&Enter type name prefix or pattern (*, ?, or camel case):
ClassChooserPane_dialogTitle=Class Selection

DatabaseReconnectWizardPage_database=Database Settings
DatabaseReconnectWizardPage_databaseConnection=Database Connection
DatabaseReconnectWizardPage_reconnectToDatabase=Reconnect to the database.
DatabaseReconnectWizardPage_connection=Connection:
DatabaseReconnectWizardPage_schema=Schema:
DatabaseReconnectWizardPage_schemaInfo=(Note:  Must have active connection to select schema)
DatabaseReconnectWizardPage_addConnectionLink=<a>Add connections...</a>
DatabaseReconnectWizardPage_reconnectLink=<a>Reconnect...</a>

EnumComboViewer_default=Default ()
EnumComboViewer_defaultWithDefault=Default ({0})

Error_openingEditor=Error Opening Editor

General_browse=Browse...
General_deselectAll=Deselect All
General_selectAll=Select All

GenerateEntitiesWizard_generateEntities=Generate Entities
GenerateEntitiesWizardPage_chooseEntityTable=Choose tables to generate entities from.
GenerateEntitiesWizardPage_generateEntities=Generate Entities from Tables
GenerateEntitiesWizardPage_synchronizeClasses=Synchronize Classes in persistence.xml
GenerateEntitiesWizardPage_tables=Tables:
GenerateEntitiesWizardPage_tableColumn=Table
GenerateEntitiesWizardPage_entityNameColumn=Entity Name

GenericPlatformUiDialog_notSupportedMessageTitle=DDL Generation
GenericPlatformUiDialog_notSupportedMessageText=DDL Generation is not supported by the Generic Platform.

JpaContent_label=JPA Content

JpaPreferencePage_defaultJpaLib=Default JPA implementation library:
JpaPreferencePage_userLibsLink=<a>Configure user libraries ...</a>
JpaPreferencePage_invalidJpaLib=Invalid Library:  Must contain javax.persistence classes.

JpaStructureView_structureNotAvailable=JPA structure is not available.
JpaStructureView_linkWithEditorText=Link with Editor
JpaStructureView_linkWithEditorDesc=Link with Active Editor
JpaStructureView_linkWithEditorTooltip=Link with Editor

JpaDetailsView_viewNotAvailable=Details are not available for the current selection.

JpaFacetWizardPage_title=JPA Facet
JpaFacetWizardPage_description=Configure JPA settings.
JpaFacetWizardPage_platformLabel=Platform
JpaFacetWizardPage_connectionLabel=Connection
JpaFacetWizardPage_connectionLink=<a>Add connection ...</a>
JpaFacetWizardPage_connectLink=<a>Connect</a>
JpaFacetWizardPage_overrideDefaultSchemaLabel=Override default schema from connection
JpaFacetWizardPage_defaultSchemaLabel=Schema:
JpaFacetWizardPage_jpaImplementationLabel=JPA implementation
JpaFacetWizardPage_userServerLibLabel=Use implementation provided by server runtime
JpaFacetWizardPage_specifyLibLabel=Use implementation library:
JpaFacetWizardPage_jpaPrefsLink=<a>Configure default JPA implementation library ...</a>
JpaFacetWizardPage_userLibsLink=<a>Configure user libraries ...</a>
JpaFacetWizardPage_persistentClassManagementLabel=Persistent class management
JpaFacetWizardPage_discoverClassesButton=Discover annotated classes automatically
JpaFacetWizardPage_listClassesButton=Annotated classes must be listed in persistence.xml
JpaFacetWizardPage_createOrmXmlButton=Create orm.xml
JpaFacetWizardPage_none=<None>

MapAsComposite_basic=basic
MapAsComposite_basic_default=basic (default)
MapAsComposite_basic_default2=Basic (Default)
MapAsComposite_changeMappingType=here
MapAsComposite_default=Default
MapAsComposite_dialogTitle=Mapping Type Selection
MapAsComposite_embedded=embedded
MapAsComposite_embedded_default=embedded (default)
MapAsComposite_embedded_default2=Embedded (Default)
MapAsComposite_embeddedid=embedded id
MapAsComposite_embeddable=embeddable
MapAsComposite_entity=entity
MapAsComposite_id=id
MapAsComposite_labelText=&Enter mapping type or pattern (*, ?, or camel case):
MapAsComposite_manytomany=many to many
MapAsComposite_manytoone=many to one
MapAsComposite_mappedsuperclass=mapped superclass
MapAsComposite_mappedAttributeText=Attribute ''{0}'' is mapped as {1}.
MapAsComposite_mappedTypeText=Type ''{0}'' is mapped as {1}.
MapAsComposite_onetomany=one to many
MapAsComposite_onetoone=one to one
MapAsComposite_transient=transient
MapAsComposite_unmappedAttributeText=Attribute ''{0}'' is not mapped, click here to change the mapping type.
MapAsComposite_unmappedTypeText=Type ''{0}'' is not mapped, click here to change the mapping type.
MapAsComposite_version=version
MapAsComposite_virtualAttributeText=Attribute ''{0}'' is not mapped.

MappingFileWizard_title=New Mapping File
MappingFileWizardPage_title=Mapping file
MappingFileWizardPage_desc=Specify mapping file location and properties
MappingFileWizardPage_projectLabel=Project:
MappingFileWizardPage_sourceFolderLabel=Source folder:
MappingFileWizardPage_filePathLabel=File path:
MappingFileWizardPage_accessLabel=Default access:
MappingFileWizardPage_addToPersistenceUnitButton=Add to persistence unit
MappingFileWizardPage_persistenceUnitLabel=Persistence unit:
MappingFileWizardPage_incorrectSourceFolderError=Selection must be a valid source folder
MappingFileWizardPage_accessLabel_sourceFolderDialogTitle=Source Folder Selection
MappingFileWizardPage_accessLabel_sourceFolderDialogDesc=Choose a source folder:

NewJpaProjectWizard_title=New JPA Project
NewJpaProjectWizard_firstPage_title=JPA Project
NewJpaProjectWizard_firstPage_description=Configure JPA project settings.

OrmItemLabelProviderFactory_entityMappingsLabel=Entity Mappings

PackageChooserPane_dialogTitle=Package Selection
PackageChooserPane_dialogMessage=Choose a folder: 

PersistenceItemLabelProviderFactory_persistenceLabel=Persistence
PersistentAttributePage_mapAs=Map As:

PersistentTypePage_mapAs=Map As:

OverwriteConfirmerDialog_title=Overwrite Existing Class
OverwriteConfirmerDialog_text=Overwrite source code for the class ''{0}''?
