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

ChooserPane_browseButton=Browse...

AccessTypeComposite_access=Access:
AccessTypeComposite_field=Field
AccessTypeComposite_property=Property

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

AddPersistentClassDialog_title=Add 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

DatabaseSchemaWizardPage_title=Database Schema
DatabaseSchemaWizardPage_desc=Select a database schema
DatabaseSchemaWizardPage_schemaSettings=Schema settings
DatabaseSchemaWizardPage_addConnectionToProject=<a>Add a connection to JPA project...</a>
DatabaseSchemaWizardPage_connectLink=<a>Connect</a>
DatabaseSchemaWizardPage_schema=Schema:
DatabaseSchemaWizardPage_connectionInfo=(Note: JPA project must have a connection and it must be active to select a schema)
DatabaseSchemaWizardPage_schemaInfo=(Note: Must have active connection to select schema)

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

Error_openingEditor=Error Opening Editor

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

GenerateDDLWizard_title=DDL Generation

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

EntitiesGenerator_jobName=Generating Entities

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

JpaContent_label=JPA Content

JpaStructureView_structureNotAvailable=JPA structure is not available.
JpaStructureView_linkWithEditorText=Link with Editor
JpaStructureView_linkWithEditorDesc=Link with Active Editor
JpaStructureView_linkWithEditorTooltip=Link with Editor
JpaStructureView_numItemsSelected={0} items selected

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_addDriverLibraryLabel=Add driver library to build path
JpaFacetWizardPage_driverLibraryLabel=Driver:
JpaFacetWizardPage_overrideDefaultCatalogLabel=Override default catalog from connection
JpaFacetWizardPage_defaultCatalogLabel=Catalog:
JpaFacetWizardPage_overrideDefaultSchemaLabel=Override default schema from connection
JpaFacetWizardPage_defaultSchemaLabel=Schema:
JpaFacetWizardPage_jpaImplementationLabel=JPA implementation
JpaFacetWizardPage_userServerLibLabel=Implementation provided by server runtime
JpaFacetWizardPage_specifyLibLabel=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>

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}''?
