################################################################################
# Copyright (c) 2009, 2013 Oracle. All rights reserved.
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0, which accompanies this distribution
# and is available at https://www.eclipse.org/legal/epl-2.0/.
# 
# Contributors:
#     Oracle - initial API and implementation
################################################################################

# JptJpaUiPreferencesValidationMessages

PROJECT_LEVEL_CATEGORY=Project
PERSISTENCE_UNIT_LEVEL_CATEGORY=Persistence unit
TYPE_LEVEL_CATEGORY=Type
ATTRIBUTE_LEVEL_CATEGORY=Attribute
DATABASE_CATEGORY=Database
IMPLIED_ATTRIBUTE_LEVEL_CATEGORY=Implied attributes
TABLE_CATEGORY=Table
COLUMN_CATEGORY=Column
OVERRIDES_CATEGORY=Attribute/association overrides
INHERITANCE_CATEGORY=Inheritance
QUERIES_GENERATORS_CATEGORY=Queries and generators
