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

PersistentTypePage_EntityLabel=Entity
PersistentTypePage_EmbeddableLabel=Embeddable
PersistentTypePage_MappedSuperclassLabel=Mapped Superclass

PersistentAttributePage_BasicLabel=Basic
PersistentAttributePage_IdLabel=Id
PersistentAttributePage_OneToManyLabel=One to Many
PersistentAttributePage_ManyToOneLabel=Many to One
PersistentAttributePage_ManyToManyLabel=Many to Many
PersistentAttributePage_TransientLabel=Transient
PersistentAttributePage_VersionLabel=Version
PersistentAttributePage_EmbeddedLabel=Embedded
PersistentAttributePage_EmbeddedIdLabel=Embedded Id
PersistentAttributePage_OneToOneLabel=One to One

EntityComposite_tableDefault=Default ({0})
EntityComposite_tableNoDefaultSpecified=Default ()
EntityComposite_inheritance=Inheritance

EntityGeneralSection_nameDefaultWithOneParam=Default ({0})
EntityGeneralSection_nameDefaultEmpty=Default ()
EntityGeneralSection_name=Name:

BasicGeneralSection_name=Name:
BasicGeneralSection_nameDefault=Default ({0})
BasicGeneralSection_fetchLabel=Fetch:
BasicGeneralSection_optionalLabel=Optional:
BasicGeneralSection_lobLabel=Lob
BasicGeneralSection_temporalLabel=Temporal:
BasicGeneralSection_enumeratedLabel=Enumerated:

TableChooser_label=Name:
CatalogChooser_label=Catalog:
SchemaChooser_label=Schema:
TableComposite_tableSection=Table:
TableComposite_defaultEmpty=Default ()
TableComposite_defaultWithOneParam=Default ({0})

ColumnChooser_label=Name:
ColumnTableChooser_label=Table:

TargetEntityChooser_label=Target Entity:
TargetEntityChooser_defaultEmpty=Default ()
TargetEntityChooser_defaultWithOneParam=Default ({0})
TargetEntityChooser_browse=Browse...

NonOwningMapping_mappedByLabel=Mapped By:

JoinTableComposite_add=Add...
JoinTableComposite_defaultEmpty=Default()
JoinTableComposite_defaultWithOneParam=Default ({0})
JoinTableComposite_edit=Edit...
JoinTableComposite_inverseJoinColumn=Inverse Join Columns

JoinTableComposite_mappingBetweenTwoParamsDefault=Default ({0} -> {1})
JoinTableComposite_mappingBetweenTwoParamsFirstDefault=Default ({0}) -> {1}
JoinTableComposite_mappingBetweenTwoParamsSecDefault={0} -> Default ({1})
JoinTableComposite_mappingBetweenTwoParamsBothDefault=Default ({0}) -> Default ({1})
JoinTableComposite_mappingBetweenTwoParams={0} -> {1}
JoinTableComposite_joinColumn=Join Columns
JoinTableComposite_name=Name:
JoinTableComposite_remove=Remove
JoinTableComposite_overrideDefaultJoinColumns=Override Default
JoinTableComposite_overrideDefaultInverseJoinColumns=Override Default

InverseJoinColumnDialog_editInverseJoinColumn=Edit Inverse Join Column
InverseJoinColumnDialog_defaultWithOneParam=Default ({0})

JoinColumnDialog_editJoinColumn=Edit Join Column
JoinColumnDialog_name=Name:
JoinColumnDialog_referencedColumnName=Referenced Column Name:
JoinColumnDialog_defaultWithOneParam=Default ({0})
JoinColumnDialog_insertable=Insertable:
JoinColumnDialog_updatable=Updatable:
JoinColumnDialog_table=Table:

MultiRelationshipMappingComposite_general=General
MultiRelationshipMappingComposite_joinTable=Join Table
MultiRelationshipMappingComposite_targetEntity=Target Entity:
MultiRelationshipMappingComposite_cascadeType=Cascade Type:
MultiRelationshipMappingComposite_fetchType=Fetch Type:
MultiRelationshipMappingComposite_mappedBy=Mapped By:

ColumnComposite_columnSection=Column:
ColumnComposite_defaultWithOneParam=Default ({0})
ColumnComposite_defaultEmpty=Default ()
ColumnComposite_insertable=Insertable:
ColumnComposite_updatable=Updatable:

JoinColumnComposite_joinColumn=Join Columns
JoinColumnComposite_defaultEmpty=Default()
JoinColumnComposite_name=Name:
JoinColumnComposite_defaultWithOneParam=Default ({0})
JoinColumnComposite_add=Add...
JoinColumnComposite_edit=Edit...
JoinColumnComposite_mappingBetweenTwoParams={0} -> {1}
JoinColumnComposite_mappingBetweenTwoParamsDefault=Default ({0} -> {1})
JoinColumnComposite_mappingBetweenTwoParamsBothDefault=Default ({0}) -> Default ({1})
JoinColumnComposite_mappingBetweenTwoParamsFirstDefault=Default ({0}) -> {1}
JoinColumnComposite_mappingBetweenTwoParamsSecDefault={0} -> Default ({1})
JoinColumnComposite_remove=Remove
JoinColumnComposite_overrideDefaultJoinColumns=Override Default

PrimaryKeyJoinColumnsComposite_overrideDefaultPrimaryKeyJoinColumns=Override Default
PrimaryKeyJoinColumnsComposite_add=Add...
PrimaryKeyJoinColumnsComposite_edit=Edit...
PrimaryKeyJoinColumnsComposite_remove=Remove
PrimaryKeyJoinColumnsComposite_defaultEmpty=Default()
PrimaryKeyJoinColumnsComposite_defaultWithOneParam=Default ({0})
PrimaryKeyJoinColumnsComposite_primaryKeyJoinColumn=Primary Key Join Columns
PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParams={0} -> {1}
PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsDefault=Default ({0} -> {1})
PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsBothDefault=Default ({0}) -> Default ({1})
PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsFirstDefault=Default ({0}) -> {1}
PrimaryKeyJoinColumnsComposite_mappingBetweenTwoParamsSecDefault={0} -> Default ({1})

AttributeOverridesComposite_attributeOverrides=Attribute Overrides
AttributeOverridesComposite_overridDefault=Override Default
OverridesComposite_joinColumn=Join Columns
InheritanceComposite_strategy=Strategy:
InheritanceComposite_discriminatorValue=Discriminator Value:
InheritanceComposite_discriminatorValueDefaultWithOneParam=Default ({0})

DiscriminatorColumnComposite_column=Discriminator Column:
DiscriminatorColumnComposite_discriminatorType=Discriminator Type:
DiscriminatorColumnComposite_defaultEmpty=Default(<provider-specific>)

IdMappingComposite_pk_generation=PK Generation
IdMappingComposite_primaryKeyGeneration=Primary Key Generation
IdMappingComposite_tableGenerator=Table Generator
IdMappingComposite_sequenceGenerator=Sequence Generator

GeneratedValueComposite_generatedValue=Generated Value
GeneratedValueComposite_generatorName=Generator Name:
GeneratedValueComposite_strategy=Strategy:

SequenceGeneratorComposite_sequenceGenerator=Sequence Generator
SequenceGeneratorComposite_name=Name:
SequenceGeneratorComposite_sequence=Sequence:
SequenceGeneratorComposite_default=Default

TableGeneratorComposite_name=Name:
TableGeneratorComposite_table=Table:
TableGeneratorComposite_tableGenerator=Table Generator
TableGeneratorComposite_pkColumn=Primary Key Column:
TableGeneratorComposite_valueColumn=Value Column:
TableGeneratorComposite_pkColumnValue=Primary Key Column Value:
TableGeneratorComposite_default=Default

OrderByComposite_orderByGroup=Order By
OrderByComposite_orderByLabel=Order By:
OrderByComposite_noOrdering=No Ordering
OrderByComposite_primaryKeyOrdering=Primary Key Ordering
OrderByComposite_customOrdering=Custom Ordering

SecondaryTablesComposite_secondaryTables=Secondary Tables
SecondaryTablesComposite_add=Add...
SecondaryTablesComposite_edit=Edit...
SecondaryTablesComposite_remove=Remove

SecondaryTableDialog_editSecondaryTable=Edit Secondary Table
SecondaryTableDialog_name=Name:
SecondaryTableDialog_catalog=Catalog:
SecondaryTableDialog_schema=Schema:
SecondaryTableDialog_defaultSchema=Default({0})
SecondaryTableDialog_defaultCatalog=Default({0})
