################################################################################
# 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

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