###############################################################################
# Copyright (c) 2006, 2010 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_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
GenerateEntitiesWizard_doNotShowWarning = Don't show me this warning again

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