###############################################################################
# Copyright (c) 2005, 2020 IBM Corporation and others.
#
# 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/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
CleanUpModifyDialog_SelectOne_Error=Select at least one clean up.
CleanUpModifyDialog_XofYSelected_Label={0} of {1} clean ups selected

CleanUpProfileManager_ProfileName_EclipseBuildIn=Eclipse [built-in]
CleanUpConfigurationBlock_SelectedCleanUps_label=Details:
CleanUpConfigurationBlock_ShowCleanUpWizard_checkBoxLabel=&Show profile selection dialog for the 'Source > Clean Up' action

CodeFormatingTabPage_GroupName_Formatter=Formatter
CodeFormatingTabPage_Imports_GroupName=Imports
CodeFormatingTabPage_CheckboxName_FormatSourceCode=&Format source code
CodeFormatingTabPage_FormatterSettings_Description=The settings for the formatter can be changed on the 'Formatter' preference page.
CodeFormatingTabPage_OrganizeImports_CheckBoxLable=Or&ganize imports
CodeFormatingTabPage_RemoveTrailingWhitespace_all_radio=&All lines
CodeFormatingTabPage_OrganizeImportsSettings_Description=The settings for organizing imports can be changed on the 'Organize Imports' preference page.
CodeFormatingTabPage_SortMembers_GroupName=Members
CodeFormatingTabPage_SortMembers_CheckBoxLabel=&Sort members
CodeFormatingTabPage_SortMembersExclusive_radio0=Do &not sort fields, enum constants, and initializers
CodeFormatingTabPage_SortMembers_Description=The sort order may be configured on the 'Members Sort Order' preference page.
CodeFormatingTabPage_SortMembersFields_CheckBoxLabel=Sor&t all members
CodeFormatingTabPage_SortMembersSemanticChange_warning=Reordering of fields, enum constants, and initializers can result in semantic and runtime changes due to different initialization and persistence order.
CodeFormatingTabPage_correctIndentation_checkbox_text=Correct &indentation
CodeFormatingTabPage_RemoveTrailingWhitespace_checkbox_text=Remove trailing &whitespace
CodeFormatingTabPage_RemoveTrailingWhitespace_ignoreEmpty_radio=Ignore empty &lines

CodeStyleTabPage_CheckboxName_UseBlocks=Use bloc&ks in if/while/for/do statements
CodeStyleTabPage_RadioName_AlwaysUseBlocks=Al&ways
CodeStyleTabPage_RadioName_NeverUseBlocks=Only if &necessary
CodeStyleTabPage_CheckboxName_ElseIf=C&ombine nested 'if' statement in 'else' block to 'else if'
CodeStyleTabPage_CheckboxName_ReduceIndentation=Reduce indentation when possible
CodeStyleTabPage_GroupName_Expressions=Expressions
CodeStyleTabPage_CheckboxName_ExtractIncrement=Extract increment/decrement from statement
CodeStyleTabPage_CheckboxName_PullUpAssignment=Pull up assignment
CodeStyleTabPage_GroupName_NumberLiteral=Number literals
CodeStyleTabPage_CheckboxName_NumberSuffix=Use &uppercase for long literal suffix
CodeStyleTabPage_CheckboxName_UseFinal=U&se modifier 'final' where possible
CodeStyleTabPage_CheckboxName_UseFinalForParameters=P&arameter
CodeStyleTabPage_RadioName_AlwaysUseParantheses=Alwa&ys
CodeStyleTabPage_RadioName_NeverUseParantheses=Only &if necessary
CodeStyleTabPage_GroupName_VariableDeclarations=Variable declarations
CodeStyleTabPage_CheckboxName_UseFinalForFields=Private &fields
CodeStyleTabPage_CheckboxName_UseFinalForLocals=&Local variables
CodeStyleTabPage_CheckboxName_Switch=Convert if/else if/else chain to switch
CodeStyleTabPage_CheckboxName_UseAddAllRemoveAll=Add elements in collections without loop
CodeStyleTabPage_GroupName_ControlStatements=Control statements
CodeStyleTabPage_RadioName_UseBlocksSpecial=Always &except for single 'return' or 'throw' statements
CodeStyleTabPage_CheckboxName_UseParentheses=Use parent&heses in expressions
CodeStyleTabPage_CheckboxName_SimplifyLambdaExpressionAndMethodRefSyntax=Simplify &lambda expression and method reference syntax

OptimizationTabPage_GroupName_Optimization=Optimization
OptimizationTabPage_CheckboxName_SingleUsedField=Convert fields into local variables if the use is only local
OptimizationTabPage_CheckboxName_BreakLoop=Exit &loop earlier
OptimizationTabPage_CheckboxName_StaticInnerClass=Make inner classes static where possible
OptimizationTabPage_CheckboxName_StringBuilder=Replace &String concatenation by StringBuilder
OptimizationTabPage_CheckboxName_PlainReplacement=Use String.replace() instead of String.replaceAll() when possible
OptimizationTabPage_CheckboxName_UseLazyLogicalOperator=Use la&zy logical operator
OptimizationTabPage_CheckboxName_PrimitiveComparison=Primitive comparison
OptimizationTabPage_CheckboxName_PrimitiveParsing=Primitive parsing
OptimizationTabPage_CheckboxName_PrimitiveSerialization=&Primitive serialization
OptimizationTabPage_CheckboxName_PrecompileRegEx=Precompile reused regular e&xpressions
OptimizationTabPage_CheckboxName_NoStringCreation=Remo&ve redundant string creation
OptimizationTabPage_CheckboxName_BooleanLiteral=Prefer &boolean literals

ContributedCleanUpTabPage_ErrorPage_message=An error occurred while creating this page. See the error log for details

MemberAccessesTabPage_GroupName_NonStaticAccesses=Non static accesses
MemberAccessesTabPage_CheckboxName_FieldQualifier=Use '&this' qualifier for field accesses
MemberAccessesTabPage_RadioName_AlwaysThisForFields=A&lways
MemberAccessesTabPage_RadioName_NeverThisForFields=Only &if necessary
MemberAccessesTabPage_CheckboxName_MethodQualifier=Use 'this' quali&fier for method accesses
MemberAccessesTabPage_RadioName_AlwaysThisForMethods=Al&ways
MemberAccessesTabPage_RadioName_NeverThisForMethods=O&nly if necessary
MemberAccessesTabPage_GroupName_StaticAccesses=Static accesses
MemberAccessesTabPage_CheckboxName_QualifyWithDeclaringClass=Use declaring class as &qualifier
MemberAccessesTabPage_CheckboxName_QualifyFieldWithDeclaringClass=Qualif&y field accesses
MemberAccessesTabPage_CheckboxName_QualifyMethodWithDeclaringClass=Qualify met&hod accesses
MemberAccessesTabPage_CheckboxName_ChangeAccessesThroughSubtypes=Change &all accesses through subtypes
MemberAccessesTabPage_CheckboxName_ChangeAccessesThroughInstances=Change all accesses throu&gh instances

MissingCodeTabPage_GroupName_Annotations=Annotations
MissingCodeTabPage_GroupName_UnimplementedCode=Unimplemented code
MissingCodeTabPage_GroupName_PotentialProgrammingProblems=Potential programming problems
MissingCodeTabPage_CheckboxName_AddMissingAnnotations=Add missing &Annotations
MissingCodeTabPage_CheckboxName_AddMissingOverrideAnnotations='@Overr&ide'
MissingCodeTabPage_CheckboxName_AddMissingOverrideInterfaceAnnotations=Implemen&tations of interface methods (1.6 or higher)
MissingCodeTabPage_CheckboxName_AddMissingDeprecatedAnnotations='@&Deprecated'
MissingCodeTabPage_CheckboxName_AddMethods=Add u&nimplemented methods
MissingCodeTabPage_CheckboxName_AddSUID=Add &serial version ID
MissingCodeTabPage_Label_CodeTemplatePreferencePage=The settings for the method stub to insert can be configured on the 'Code Templates' preference page.
MissingCodeTabPage_RadioName_AddGeneratedSUID=&Generated
MissingCodeTabPage_RadioName_AddDefaultSUID=Default (&1L)

UnnecessaryCodeTabPage_GroupName_UnusedCode=Unused code
UnnecessaryCodeTabPage_CheckboxName_UnusedImports=Remove unu&sed imports
UnnecessaryCodeTabPage_CheckboxName_UnusedMembers=Remove unuse&d private members
UnnecessaryCodeTabPage_CheckboxName_UnusedTypes=&Types
UnnecessaryCodeTabPage_CheckboxName_UnusedConstructors=Co&nstructors
UnnecessaryCodeTabPage_CheckboxName_UnusedFields=F&ields
UnnecessaryCodeTabPage_CheckboxName_UnusedMethods=Met&hods
UnnecessaryCodeTabPage_CheckboxName_UnusedLocalVariables=Remove unused &local variables
UnnecessaryCodeTabPage_GroupName_UnnecessaryCode=Unnecessary code
UnnecessaryCodeTabPage_CheckboxName_UnnecessaryCasts=Remove unnecessar&y casts
UnnecessaryCodeTabPage_CheckboxName_UnnecessaryNLSTags=Remove unnecessary '$NON-NLS$' ta&gs
UnnecessaryCodeTabPage_CheckboxName_Substring=Redundant String.substring() parameter
UnnecessaryCodeTabPage_CheckboxName_ArraysFill=Use Arrays.&fill() when possible
UnnecessaryCodeTabPage_CheckboxName_EvaluateNullable=Evaluate without null check
UnnecessaryCodeTabPage_CheckboxName_PushDownNegation=Push d&own negation
UnnecessaryCodeTabPage_CheckboxName_DoubleNegation=Double negation
UnnecessaryCodeTabPage_CheckboxName_ComparisonStatement=Remove redundant comparison statement
UnnecessaryCodeTabPage_CheckboxName_RedundantSuperCall=Remove redundant s&uper() call in constructor
UnnecessaryCodeTabPage_CheckboxName_UnreachableBlock=Unreachable block
UnnecessaryCodeTabPage_CheckboxName_UseDirectlyMapMethod=Operate on &Maps directly
UnnecessaryCodeTabPage_CheckboxName_CollectionCloning=Initialize collection at creation
UnnecessaryCodeTabPage_CheckboxName_MapCloning=Initiali&ze map at creation
UnnecessaryCodeTabPage_CheckboxName_RedundantModifiers=Remove redundant &modifiers
UnnecessaryCodeTabPage_CheckboxName_OverriddenAssignment=Remove overridden assignment
UnnecessaryCodeTabPage_CheckboxName_RedundantModifiers_description=Removes unnecessary modifiers on fields and methods
UnnecessaryCodeTabPage_CheckboxName_EmbeddedIf=Raise embedded &if into parent if
UnnecessaryCodeTabPage_CheckboxName_RedundantSemicolons=Remove redundant semicolons
UnnecessaryCodeTabPage_CheckboxName_RedundantSemicolons_description=Removes unnecessary semicolons on statements and declarations
UnnecessaryCodeTabPage_CheckboxName_RedundantArrayCreation_description=Removes unnecessary array creation used to supply varargs in a method invocation
UnnecessaryCodeTabPage_CheckboxName_UnnecessaryVarargsArrayCreation=Remove unnecessary &array creation (1.5 or higher)
UnnecessaryCodeTabPage_CheckboxName_UselessReturn=Remo&ve useless return
UnnecessaryCodeTabPage_CheckboxName_UselessContinue=&Remove useless continue
UnnecessaryCodeTabPage_CheckboxName_UnloopedWhile=Convert loop into if when possible

SourceFixingTabPage_warning=These cleanups may change runtime behavior. Use them carefully.

SourceFixingTabPage_GroupName_standardCode=Code standardization

SourceFixingTabPage_CheckboxName_InvertEquals=Avoid Object.equals() or String.equalsIgnoreCase() on null objects
SourceFixingTabPage_CheckboxName_StandardComparison=Compare to zero
SourceFixingTabPage_CheckboxName_CheckSignOfBitwiseOperation=&Compare with != 0 for bitwise expressions

DuplicateCodeTabPage_GroupName_DuplicateCode=Duplicate code
DuplicateCodeTabPage_CheckboxName_TernaryOperator=Replace (X &&&& Y) || (!X &&&& Z) by X ? Y : Z
DuplicateCodeTabPage_CheckboxName_StrictlyEqualOrDifferent=Use '==' or '^' on booleans
DuplicateCodeTabPage_CheckboxName_MergeConditionalBlocks=Merge &conditions of if/else if/else that have the same blocks
DuplicateCodeTabPage_CheckboxName_ControlFlowMerge=Pull down common code from if/else statement
DuplicateCodeTabPage_CheckboxName_RedundantFallingThroughBlockEnd=Remove redundant end of block with &jump statement
DuplicateCodeTabPage_CheckboxName_RedundantIfCondition=R&edundant if condition

JavaFeatureTabPage_GroupName_Java15=Java 15

JavaFeatureTabPage_CheckboxName_PatternMatchingForInstanceof=&Pattern matching for instanceof (Java 15 or higher with feature preview)

JavaFeatureTabPage_GroupName_Java14=Java 14

JavaFeatureTabPage_CheckboxName_ConvertToSwitchExpressions=Convert to switch expression

JavaFeatureTabPage_GroupName_Java10=Java 10

JavaFeatureTabPage_CheckboxName_UseVar=&Use local variable type inference

JavaFeatureTabPage_GroupName_Java1d8=Java 8

JavaFeatureTabPage_GroupName_FunctionalInterfaces=Functional interface instances
JavaFeatureTabPage_CheckboxName_ConvertFunctionalInterfaces=Con&vert functional interface instances
JavaFeatureTabPage_RadioName_UseLambdaWherePossible=Use lambda where possible
JavaFeatureTabPage_RadioName_UseAnonymous=Use anonymous class
JavaFeatureTabPage_CheckboxName_ComparingOnCriteria=Use Comparator.comparing()
JavaFeatureTabPage_CheckboxName_Join=Use String.join() &when possible

JavaFeatureTabPage_GroupName_Java1d7=Java 7

JavaFeatureTabPage_CheckboxName_TryWithResource=Use try-with-resource
JavaFeatureTabPage_CheckboxName_MultiCatch=Use Multi-catch
JavaFeatureTabPage_CheckboxName_RedundantTypeArguments=Use di&amond operator
JavaFeatureTabPage_CheckboxName_Hash=Use Objects.hash()
JavaFeatureTabPage_CheckboxName_ObjectsEquals=Use Objects.e&quals() in the equals method implementation

JavaFeatureTabPage_GroupName_Java1d5=Java 5

JavaFeatureTabPage_CheckboxName_ConvertForLoopToEnhanced=Conver&t 'for' loops to enhanced
JavaFeatureTabPage_CheckboxName_ConvertLoopOnlyIfLoopVarUsed=Only if loop variable used
JavaFeatureTabPage_CheckboxName_Autoboxing=Use Autobo&xing
JavaFeatureTabPage_CheckboxName_Unboxing=Use Un&boxing
