###############################################################################
# Copyright (c) 2001, 2004 IBM Corporation and others.
# 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:
#     IBM Corporation - initial API and implementation
###############################################################################

#
# Messages for ResouceUtils
#
MSG_ERROR_PATH_NOT_ABSOLUTE=IWAB0003E Path {0} is not absolute for creating a file.
MSG_ERROR_PATH_EMPTY=IWAB0004E Path {0} is empty while creating a file.
MSG_ERROR_PATH_NOT_FOLDER=IWAB0005E Path {0} is not a folder for creating a file.
MSG_ERROR_FOLDER_CREATION_DISABLED=IWAB0007E Folder creation has been disabled for parent folder {0} and child {1}.
MSG_ERROR_RESOURCE_NOT_FOLDER=IWAB0008E Resource {0} is not a folder.
MSG_WARN_FILE_OVERWRITE_DISABLED=IWAB0009W Cannot overwrite file {1} in folder {0}.
MSG_ERROR_FILE_CHECKOUT_DISABLED=IWAB0010E Cannot checkout file {1} in folder {0}.
MSG_ERROR_RESOURCE_NOT_FILE=IWAB0011E The following path is not a resource: {0}.
MSG_ERROR_FOLDER_HAS_CHILDREN=IWAB0012E Cannot create folder: {0} that already has children.
MSG_ERROR_IO=IWAB0006E An input/output error occurred while processing the resource "{0}".
MSG_ERROR_FILE_OVERWRITE_DISABLED=IWAB0164E Cannot create the file "{1}" relative to the path "{0}" because automatic file overwriting has not been enabled. Do you want to enable it for this file?
MSG_ERROR_UNEXPECTED_ERROR=IWAB0014E Unexpected exception occured.
MSG_ERR_ANT_DATA_TRANSFORM=Exception transforming Ant property key {0} using transformation {1}.
MSG_ERR_ANT_CALL_SETTER=Exception invoking setter method {0} for Ant property.
MSG_ERR_ANT_CMD_FRAGMENT=Exception retrieving Ant command fragment from registry.
MSG_ERR_ANT_SCENARIO_TYPE=Cannot determine scenario type.  Please ensure scenarioType Ant property is set.

LABEL_YES=Yes
LABEL_YES_TO_ALL=Yes All
LABEL_CANCEL=Cancel



