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

cardinality=Car&dinality:
property=P&roperty:
cascade=&Cascade:
connection=&Connection:
schema=&Schema:
schemaInfo=(Note: You must have an active connection to select schema.)
addConnectionLink=Add connections...
connectLink=Connect
connectingToDatabase=Connecting to database
manyToOne=&Many to one
manyToMany=Man&y to many
oneToMany=&One to many
oneToOne=&One to one
manyToOneDesc=Each %s has many %s.
oneToOneDesc=There is one %s per %s.
manyToManyDesc=Each %s has many %s, and each %s has many %s.

add=&Add
remove=&Remove

GenerateEntitiesWizard_generateEntities=Generate Custom Entities

GenerateEntitiesWizard_selectJPAProject=JPA Project Selection
GenerateEntitiesWizard_selectJPAProject_msg=Select a JPA project.

GenerateEntitiesWizard_tableSelectPage_selectTable=Select Tables
GenerateEntitiesWizard_tableSelectPage_chooseEntityTable=Select tables to generate entities from.
GenerateEntitiesWizard_tableSelectPage_updatePersistenceXml=Update class list in persistence.xml
GenerateEntitiesWizard_tableSelectPage_tables=&Tables:
GenerateEntitiesWizard_tableSelectPage_tableColumn=Table
GenerateEntitiesWizard_tableSelectPage_Restore_Defaults=Restore Defaults

GenerateEntitiesWizard_tableSelectPage_getTables_jobName=Getting Tables
GenerateEntitiesWizard_tableSelectPage_getTables_taskName=Schema get tables
GenerateEntitiesWizard_tableSelectPage_getTables_subTaskName=Retrieving tables from schema {0}...
GenerateEntitiesWizard_tableSelectPage_statusUpdate_taskName=Updating

GenerateEntitiesWizard_assocPage_title=Table Associations
GenerateEntitiesWizard_assocPage_label=Table &associations
GenerateEntitiesWizard_assocPage_desc=Edit a table association by selecting it and modifying the controls in the editing panel.
GenerateEntitiesWizard_assocPage_newAssoc=New Association
GenerateEntitiesWizard_assocPage_delAssoc=Delete Selected Association


GenerateEntitiesWizard_defaultTablePage_title=Customize Default Entity Generation
GenerateEntitiesWizard_defaultTablePage_tableMapping=Table mapping
GenerateEntitiesWizard_defaultTablePage_domainJavaClass=Domain java class

GenerateEntitiesWizard_defaultTablePage_desc=Optionally customize aspects of entities that will be generated by default from database tables. A Java package should be specified.
GenerateEntitiesWizard_defaultTablePage_access=Entity &access:
GenerateEntitiesWizard_defaultTablePage_fetch=Associations &fetch:
GenerateEntitiesWizard_defaultTablePage_collType=Collection properties &type:
GenerateEntitiesWizard_defaultTablePage_genOptionalAnnotations = Always generate optional JPA annotations and DDL parameters
GenerateEntitiesWizard_defaultTablePage_genOptionalAnnotations_desc =  Generate optional JPA annotations and DDL parameters like 'unique', 'nullable', 'length', 'precision' and 'scale', which are optional and only used by automatic table creation to specify table creation data.
GenerateEntitiesWizard_defaultTablePage_keyGen=Key &generator:
GenerateEntitiesWizard_defaultTablePage_sequence=Sequence &name:
GenerateEntitiesWizard_defaultTablePage_sequenceNote=You can use the patterns %s and/or %s in the sequence name.\n\
			These patterns will be replaced by the table name and the primary key \n\
			column name when a table mapping is generated.


GenerateEntitiesWizard_tablesAndColumnsPage_title=Customize Individual Entities
GenerateEntitiesWizard_tablesAndColumnsPage_desc=Customize detail of individual entities by selecting the associated tables or columns and changing values in the editing panel.
GenerateEntitiesWizard_tablesAndColumnsPage_labelTableAndColumns=&Tables and columns

GenerateEntitiesWizard_tablePanel_className=&Class name:
GenerateEntitiesWizard_colPanel_genProp=Generate this property
GenerateEntitiesWizard_colPanel_colMapping=Column mapping
GenerateEntitiesWizard_colPanel_propName=Property &name:
GenerateEntitiesWizard_colPanel_propType=Mapping t&ype:
GenerateEntitiesWizard_colPanel_mapKind=Mapping &kind:
GenerateEntitiesWizard_colPanel_beanProp=Domain Java Class
GenerateEntitiesWizard_colPanel_getterScope=Getter scope:
GenerateEntitiesWizard_colPanel_setterScope=Setter scope:
GenerateEntitiesWizard_colPanel_colUpdateable=Column is &updatable
GenerateEntitiesWizard_colPanel_colInsertable=Column is &insertable

GenerateEntitiesWizard_newAssoc_title=Create New Association

GenerateEntitiesWizard_newAssoc_tablesPage_title=Association Tables
GenerateEntitiesWizard_newAssoc_tablesPage_desc=Specify the association tables.
GenerateEntitiesWizard_newAssoc_tablesPage_assocKind=Association kind
GenerateEntitiesWizard_newAssoc_tablesPage_assocTables=Association &tables:
GenerateEntitiesWizard_newAssoc_tablesPage_table1=Table &1:
GenerateEntitiesWizard_newAssoc_tablesPage_table2=Table &2:
GenerateEntitiesWizard_newAssoc_tablesPage_intermediateTable=Join table:
GenerateEntitiesWizard_newAssoc_tablesPage_simpleAssoc=&Simple association
GenerateEntitiesWizard_newAssoc_tablesPage_m2mAssoc=&Many to many association

GenerateEntitiesWizard_newAssoc_cardinalityPage_title=Association Cardinality
GenerateEntitiesWizard_newAssoc_cardinalityPage_desc=Specify the association cardinality.

GenerateEntitiesWizard_newAssoc_colsPage_title=Join Columns
GenerateEntitiesWizard_newAssoc_colsPage_desc=Specify the join columns.
GenerateEntitiesWizard_newAssoc_colsPage_label=Specify the join columns between the %s and %s tables:

GenerateEntitiesWizard_assocEditor_entityRef=Generate a reference to %s in %s
GenerateEntitiesWizard_assocEditor_setRef=Generate a reference to a collection of %s in %s
GenerateEntitiesWizard_assocEditor_tableJoin=Table &join:
GenerateEntitiesWizard_assocEditor_joinedWhen=The table rows are joined when:\n%s
GenerateEntitiesWizard_assocEditor_genAssoc=Generate &this association

selectCascadeDlgTitle=Select Cascade
selectTableDlgTitle=Table Selection
selectTableDlgDesc=&Select a table:
