###############################################################################
# Copyright (c) 2009 by SAP AG, Walldorf. 
# 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:
#     SAP AG - initial API and implementation
###############################################################################
CannotPerformEditMsg												= Edit cannot be performed
CompUnitMissingMsg													= Compilation unit file missing
InvalidTreeStateMsg													= Invalid project tree state
AnnotationCannotBeStoredMsg											= Annotation could not be stored, the file is not writable
AnnotationUtils_ParamShouldNotBeNullMsg								= {0} should not be null

EditResourcesManager_FILE_CONTENTS_CHANGE_FAILED_MSG				= File contents could not be set
ProjectManagementUtils_ProjectHasNoMetaInfFolderMsg					= project {0} does not have a META-INF folder
