###############################################################################
# Copyright (c) 2003, 2005 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
###############################################################################
ERR_SECURITY_ROLE_EMPTY=The role name cannot be empty.
ERR_SECURITY_ROLE_EXIST=The security role named "{0}" already exists.
ERR_JAVA_CLASS_NAME_EMPTY=The class name cannot be empty.
ERR_JAVA_CLASS_NAME_EXIST=The class already exists in the package.
ERR_JAVA_CLASS_FILE_NAME_EXIST=File with same name but different case exists.
ERR_JAVA_CLASS_FOLDER_NAME_EMPTY=The source folder cannot be empty.
ERR_JAVA_CLASS_FOLDER_PROJECT_NOT_OPEN=The project is not open.
ERR_JAVA_CLASS_NOT_JAVA_PROJECT=Not a Java project.
ERR_JAVA_CLASS_FOLDER_STATIC_PROJECT=Cannot be a static web project.
ERR_JAVA_CLASS_FOLDER_NOT_SOURCE=Not a Java source folder.
ERR_JAVA_CLASS_NAME_QUALIFIED=Do not use qualified class name.
ERR_JAVA_CLASS_NAME_INVALID=Invalid Java class name:
ERR_JAVA_CLASS_NAME_WARNING=Warning:
ERR_JAVA_CLASS_SUPERCLASS_NOT_EXIST=The super class does not exist.
ERR_JAVA_CLASS_SUPERCLASS_FINAL=The super class cannot be a final class.
ERR_JAVA_PACAKGE_NAME_INVALID=Invalid Java package name:
ERR_JAVA_PACKAGE_NAME_WARNING=Warning:
ERR_BOTH_FINAL_AND_ABSTRACT=Class cannot be both final and abstract.
WebServiceClientGenerator_UI_0=Generic J2EE Container
ERR_SECURITY_ROLE_LIST_EMPTY=The list of security roles to be removed cannot be empty.

ERR_JAVA_CLASS_FOLDER_NOT_EXIST=The source folder does not exist.

ERR_EMPTY_MODULE_NAME=Module name cannot be empty.
ERR_EMPTY_PROJECT_NAME=Project cannot be empty.
ERR_PROJECT_NAME_EXISTS=Project name already exists.
ERR_VERSION_NOT_SUPPORTED=This version is not supported by the server.
ERR_NOT_SUPPORTED=Not supported by the server.
ERR_JAVA_CLASS_FOLDER_NOT_ABSOLUTE=Source folder path must be a workspace relative absolute path.

J2EE_MODULE_CLASSPATH_CONTAINER_NAME=EAR Libraries
