###############################################################################
# Copyright (c) 2000, 2006 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
###############################################################################
AddGetterSetterOperation_description=Generate Getters and Setters...

AddImportsOperation_description=Adding import...
AddImportsOperation_error_notresolved_message=No type ''{0}'' found.
AddImportsOperation_error_importclash=Import would conflict with an other import declaration.
AddUnimplementedMethodsOperation_description=Adding unimplemented methods...

AddCustomConstructorOperation_description=Adding new constructor...

OrganizeImportsOperation_description=Organizing imports of {0}...

AddJavaDocStubOperation_description=Create Javadoc stub...

AddDelegateMethodsOperation_monitor_message=Adding delegate methods...

ImportsStructure_operation_description=Updating imports...

GenerateHashCodeEqualsOperation_description=Adding hashCode() and equals() methods...
GenerateHashCodeEqualsOperation_hash_code_comment=Returns a hash code value for the array
GenerateHashCodeEqualsOperation_tag_param=@param
GenerateHashCodeEqualsOperation_hash_code_argument=the array to create a hash code value for
GenerateHashCodeEqualsOperation_tag_return=@return
GenerateHashCodeEqualsOperation_return_comment=a hash code value for the array
