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

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_synchronizeClasses=Synchronize classes listed 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
