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

# JptJpaGenMessages

PACKAGE_GENERATOR_TASK_NAME=Generate Entities
GEN_SCOPE_TASK_NAME=Build Database Model
ENTITY_GENERATOR_TASK_NAME=Generate Entity: {0}
ERROR_GENERATING_ENTITIES=Error Generating Entities

DELETE_FOLDER_ERROR=The directory {0} could not be deleted.
DELETE_FILE_ERROR=The file {0} could not be deleted.
FILE_READ_ONLY_ERROR=The file {0} could not be modified because write access is denied.\nPlease make sure that the file is not marked as readonly in the file system.

TEMPLATES_NOT_FOUND=Unable to find JPA entities generation templates
