1 /*******************************************************************************
2  * Copyright (c) 2012, 2020 IBM Corporation and others.
3  *
4  * This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License 2.0
6  * which accompanies this distribution, and is available at
7  * https://www.eclipse.org/legal/epl-2.0/
8  *
9  * SPDX-License-Identifier: EPL-2.0
10  *
11  * Contributors:
12  *     IBM Corporation - initial API and implementation
13  *     Billy Huang <billyhuang31@gmail.com> - [quick assist] concatenate/merge string literals - https://bugs.eclipse.org/77632
14  *     Lukas Hanke <hanke@yatta.de> - Bug 241696 [quick fix] quickfix to iterate over a collection - https://bugs.eclipse.org/bugs/show_bug.cgi?id=241696
15  *     Sandra Lions <sandra.lions-piron@oracle.com> - [quick fix] for qualified enum constants in switch-case labels - https://bugs.eclipse.org/bugs/90140
16  *******************************************************************************/
17 package org.eclipse.jdt.internal.ui.text.correction;
18 
19 /**
20  * Interface defining relevance values for quick fixes/assists.
21  *
22  * @see org.eclipse.jdt.ui.text.java.IJavaCompletionProposal#getRelevance()
23  * @since 3.9
24  */
25 public interface IProposalRelevance {
26 	public static final int OVERRIDES_DEPRECATED= 15;
27 	public static final int ADD_OVERRIDE_ANNOTATION= 15;
28 	public static final int ADD_DEPRECATED_ANNOTATION= 15;
29 
30 	public static final int CREATE_NON_STATIC_ACCESS_USING_DECLARING_TYPE= 12;
31 	public static final int CREATE_INDIRECT_ACCESS_TO_STATIC= 12;
32 	public static final int CREATE_NON_STATIC_ACCESS_USING_INSTANCE_TYPE= 11;
33 
34 	public static final int REMOVE_UNUSED_CAST= 10;
35 	public static final int ADD_UNIMPLEMENTED_METHODS= 10;
36 	public static final int UNUSED_MEMBER= 10;
37 	public static final int REMOVE_ELSE= 10;
38 	public static final int ADD_MISSING_DEFAULT_CASE= 10;
39 	public static final int ADD_MISSING_CASE_STATEMENTS= 10;
40 	public static final int UNNECESSARY_INSTANCEOF= 10;
41 	public static final int REPLACE_FIELD_ACCESS_WITH_METHOD= 10;
42 	public static final int REMOVE_UNREACHABLE_CODE_INCLUDING_CONDITION= 10;
43 	public static final int CHANGE_VISIBILITY= 10;
44 	public static final int MARKER_RESOLUTION= 10;
45 	public static final int CREATE_LOCAL_PREFIX_OR_SUFFIX_MATCH= 10;
46 	public static final int CHANGE_NULLNESS_ANNOTATION= 10;
47 	public static final int REMOVE_UNNECESSARY_ARRAY_CREATION= 10;
48 
49 	public static final int CHANGE_NULLNESS_ANNOTATION_IN_OVERRIDDEN_METHOD= 9;
50 	public static final int REMOVE_FINAL_MODIFIER= 9;
51 	public static final int GETTER_SETTER_NOT_VISIBLE_FIELD= 9;
52 	public static final int ADD_MISSING_BODY= 9;
53 	public static final int MISSING_SERIAL_VERSION= 9;
54 	public static final int MISSING_SERIAL_VERSION_DEFAULT= 9;
55 	public static final int CREATE_CONSTANT_PREFIX_OR_SUFFIX_MATCH= 9;
56 	public static final int CREATE_FIELD_PREFIX_OR_SUFFIX_MATCH= 9;
57 	public static final int CREATE_OPTIONAL= 9;
58 	public static final int CREATE_OPTIONAL_OF_NULLABLE= 9;
59 
60 	public static final int ADD_ABSTRACT_MODIFIER= 8;
61 	public static final int ADD_STATIC_MODIFIER= 8;
62 	public static final int ADD_DEFAULT_MODIFIER= 8;
63 	public static final int ADD_PARENTHESES_AROUND_CAST= 8;
64 	public static final int REMOVE_ARGUMENTS= 8;
65 	public static final int QUALIFY_WITH_ENCLOSING_TYPE= 8;
66 	public static final int THROW_ALLOCATED_OBJECT= 8;
67 	public static final int CHANGE_TO_METHOD= 8;
68 	public static final int ADD_FIELD_QUALIFIER= 8;
69 	public static final int ADD_THROWS_DECLARATION= 8;
70 	public static final int CHANGE_OVERRIDDEN_MODIFIER_1= 8;
71 	public static final int REMOVE_EXCEPTIONS= 8;
72 	public static final int SWAP_ARGUMENTS= 8;
73 	public static final int GETTER_SETTER_UNUSED_PRIVATE_FIELD= 8;
74 	public static final int RENAME_REFACTORING= 8;
75 	public static final int LINKED_NAMES_ASSIST= 8;
76 	public static final int ADD_ARGUMENTS= 8;
77 	public static final int ADD_PROJECT_TO_BUILDPATH= 8;
78 	public static final int CHANGE_VARIABLE= 8;
79 	public static final int CHANGE_RETURN_TYPE= 8;
80 	public static final int CREATE_PARAMETER_PREFIX_OR_SUFFIX_MATCH= 8;
81 	public static final int CREATE_EMPTY_OPTIONAL= 8;
82 
83 	public static final int CHANGE_OVERRIDDEN_MODIFIER_2= 7;
84 	public static final int ADD_EXCEPTIONS= 7;
85 	public static final int CHANGE_METHOD_SIGNATURE= 7;
86 	public static final int SURROUND_WITH_TRY_MULTICATCH= 7;
87 	public static final int CAST_AND_ASSIGN= 7;
88 	public static final int ADD_ADDITIONAL_MULTI_CATCH= 7;
89 	public static final int ADD_EXCEPTIONS_TO_EXISTING_CATCH= 7;
90 	public static final int ADD_ADDITIONAL_CATCH= 7;
91 	public static final int ADD_NEW_KEYWORD_UPPERCASE= 7;
92 	public static final int GETTER_SETTER_QUICK_ASSIST= 7;
93 	public static final int RENAME_REFACTORING_QUICK_FIX= 7;
94 	public static final int ADD_TO_BUILDPATH= 7;
95 	public static final int CHANGE_RETURN_TYPE_OF_OVERRIDDEN= 7;
96 	public static final int CREATE_CAST= 7;
97 	public static final int ARRAY_CHANGE_TO_LENGTH= 7;
98 	public static final int MISSING_PACKAGE_DECLARATION= 7;
99 	public static final int INSERT_INFERRED_TYPE_ARGUMENTS= 7;
100 	public static final int RETURN_ALLOCATED_OBJECT_MATCH= 7;
101 	public static final int CREATE_LOCAL= 7;
102 	public static final int CHANGE_WORKSPACE_COMPLIANCE= 7;
103 
104 	public static final int REMOVE_SEMICOLON= 6;
105 	public static final int CREATE_METHOD_IN_SUPER= 6;
106 	public static final int QUALIFY_LHS= 6;
107 	public static final int CHANGE_PROJECT_COMPLIANCE= 6;
108 	public static final int ARRAY_CHANGE_TO_METHOD= 6;
109 	public static final int CAST_ARGUMENT_1= 6;
110 	public static final int CHANGE_METHOD= 6;
111 	public static final int VOID_METHOD_RETURNS= 6;
112 	public static final int RENAME_CU= 6;
113 	public static final int MOVE_CU_TO_PACKAGE= 6;
114 	public static final int INITIALIZE_VARIABLE= 6;
115 	public static final int MISSING_RETURN_TYPE= 6;
116 	public static final int CHANGE_METHOD_RETURN_TYPE= 6;
117 	public static final int UNNECESSARY_NLS_TAG= 6;
118 	public static final int RAW_TYPE_REFERENCE= 6;
119 	public static final int SURROUND_WITH_TRY_CATCH= 6;
120 	public static final int REMOVE_REDUNDANT_TYPE_ARGUMENTS= 6;
121 	public static final int REMOVE_REDUNDANT_SUPER_INTERFACE= 6;
122 	public static final int CHANGE_EXTENDS_TO_IMPLEMENTS= 6;
123 	public static final int REMOVE_OVERRIDE= 6;
124 	public static final int MOVE_EXCEPTION_TO_SEPERATE_CATCH_BLOCK= 6;
125 	public static final int REMOVE_ABSTRACT_MODIFIER= 6;
126 	public static final int REMOVE_EXCEPTION= 6;
127 	public static final int REPLACE_EXCEPTION_WITH_THROWS= 6;
128 	public static final int REMOVE_TYPE_ARGUMENTS= 6;
129 	public static final int CHANGE_IF_ELSE_TO_BLOCK= 6;
130 	public static final int REMOVE_NATIVE= 6;
131 	public static final int REMOVE_UNUSED_IMPORT= 6;
132 	public static final int CHANGE_TYPE_OF_RECEIVER_NODE= 6;
133 	public static final int EXTRACT_LOCAL_ALL= 6;
134 	public static final int CHANGE_TO_ATTRIBUTE_SIMILAR_NAME= 6;
135 	public static final int CREATE_FIELD= 6;
136 	public static final int CONVERT_TO_LAMBDA_EXPRESSION= 6;
137 	public static final int CONVERT_METHOD_REFERENCE_TO_LAMBDA= 6;
138 	public static final int CONVERT_TO_METHOD_REFERENCE= 6;
139 
140 	public static final int ADD_ALL_MISSING_TAGS= 5;
141 	public static final int QUALIFY_INNER_TYPE_NAME= 5;
142 	public static final int REMOVE_TAG= 5;
143 	public static final int INVALID_OPERATOR= 5;
144 	public static final int REMOVE_METHOD_BODY= 5;
145 	public static final int INSERT_BREAK_STATEMENT= 5;
146 	public static final int REMOVE_CATCH_CLAUSE= 5;
147 	public static final int CHANGE_TO_RETURN= 5;
148 	public static final int INCOMPATIBLE_FOREACH_TYPE= 5;
149 	public static final int CHANGE_RETURN_TYPE_TO_VOID= 5;
150 	public static final int CHANGE_TYPE_TO_VAR= 5;
151 	public static final int CHANGE_TYPE_FROM_VAR= 5;
152 	public static final int CHANGE_TO_CONSTRUCTOR= 5;
153 	public static final int FIX_SUPPRESS_TOKEN= 5;
154 	public static final int REMOVE_ANNOTATION= 5;
155 	public static final int OVERRIDE_HASHCODE= 5;
156 	public static final int ADD_BLOCK= 5;
157 	public static final int MAKE_TYPE_ABSTRACT= 5;
158 	public static final int ADD_MISSING_NLS_TAGS= 5;
159 	public static final int MAKE_TYPE_ABSTRACT_FIX= 5;
160 	public static final int CONVERT_LOCAL_TO_FIELD= 5;
161 	public static final int CONVERT_ANONYMOUS_TO_NESTED= 5;
162 	public static final int IMPORT_EXPLICIT= 5;
163 	public static final int ADD_STATIC_IMPORT= 5;
164 	public static final int REMOVE_SAFEVARARGS= 5;
165 	public static final int INFER_GENERIC_TYPE_ARGUMENTS= 5;
166 	public static final int ORGANIZE_IMPORTS= 5;
167 	public static final int INLINE_LOCAL= 5;
168 	public static final int CREATE_PARAMETER= 5;
169 	public static final int UNNECESSARY_THROW= 5;
170 	public static final int ADD_METHOD_MODIFIER= 5;
171 	public static final int CHANGE_MODIFIER_TO_FINAL= 5;
172 	public static final int CHANGE_MODIFIER_OF_VARIABLE_TO_FINAL= 5;
173 	public static final int CONFIGURE_ACCESS_RULES= 5;
174 	public static final int CONFIGURE_BUILD_PATH= 5;
175 	public static final int CHANGE_METHOD_ADD_PARAMETER= 5;
176 	public static final int CHANGE_METHOD_REMOVE_PARAMETER= 5;
177 	public static final int CREATE_METHOD= 5;
178 	public static final int CHANGE_METHOD_SWAP_PARAMETERS= 5;
179 	public static final int CREATE_ATTRIBUTE= 5;
180 	public static final int CREATE_CONSTRUCTOR= 5;
181 	public static final int CAST_ARGUMENT_2= 5;
182 	public static final int CHANGE_TYPE_OF_NODE_TO_CAST= 5;
183 	public static final int IMPORT_NOT_FOUND_NEW_TYPE= 5;
184 	public static final int IMPORT_NOT_FOUND_ADD_REQUIRES_MODULE= 5;
185 	public static final int REMOVE_INVALID_MODIFIERS= 5;
186 	public static final int CHANGE_VISIBILITY_TO_NON_PRIVATE= 5;
187 	public static final int CHANGE_MODIFIER_TO_STATIC= 5;
188 	public static final int VARIABLE_TYPE_PROPOSAL_1= 5;
189 	public static final int EXTRACT_LOCAL= 5;
190 	public static final int QUALIFY_RHS= 5;
191 	public static final int ADD_CONSTRUCTOR_FROM_SUPER_CLASS= 5;
192 	public static final int GETTER_SETTER_UNQUALIFIED_FIELD_ACCESS= 5;
193 	public static final int RENAME_TYPE= 5;
194 	public static final int CORRECT_PACKAGE_DECLARATION= 5;
195 	public static final int TYPE_ARGUMENTS_FROM_CONTEXT= 5;
196 	public static final int REMOVE_REDUNDANT_NULLNESS_ANNOTATION= 5;
197 	public static final int ADD_MISSING_NULLNESS_ANNOTATION= 5;
198 	public static final int REPLACE_WITH_UNQUALIFIED_ENUM_CONSTANT= 5;
199 	public static final int OVERRIDE_DEFAULT_METHOD= 5;
200 	public static final int CREATE_JUNIT_TEST_CASE= 5;
201 
202 	public static final int ADD_MISSING_TAG= 4;
203 	public static final int INSERT_FALL_THROUGH= 4;
204 	public static final int REPLACE_CATCH_CLAUSE_WITH_THROWS= 4;
205 	public static final int INSERT_CASES_OMITTED= 4;
206 	public static final int REMOVE_ASSIGNMENT= 4;
207 	public static final int EXTERNALIZE_STRINGS= 4;
208 	public static final int ADD_NEW_KEYWORD= 4;
209 	public static final int REMOVE_STATIC_MODIFIER= 4;
210 	public static final int EXTRACT_METHOD= 4;
211 	public static final int METHOD_RETURNS_VOID= 4;
212 	public static final int EXTRACT_CONSTANT= 4;
213 	public static final int CREATE_CONSTANT= 4;
214 
215 	public static final int CHANGE_CLASS_TO_INTERFACE= 3;
216 	public static final int GENERATE_HASHCODE_AND_EQUALS= 3;
217 	public static final int SIMILAR_TYPE= 3;
218 	public static final int EXTRACT_LOCAL_ALL_ERROR= 3;
219 	public static final int ASSIGN_PARAM_TO_NEW_FIELD= 3;
220 	public static final int ASSIGN_TO_LOCAL= 3;
221 	public static final int CHANGE_CAST= 3;
222 	public static final int CHANGE_TO_ATTRIBUTE= 3;
223 	public static final int CHANGE_LAMBDA_BODY_TO_BLOCK= 3;
224 	public static final int CHANGE_LAMBDA_BODY_TO_EXPRESSION= 3;
225 	public static final int ADD_INFERRED_LAMBDA_PARAMETER_TYPES= 3;
226 
227 	public static final int ASSIGN_ALL_PARAMS_TO_NEW_FIELDS= 2;
228 	public static final int CONVERT_TO_INDEXED_FOR_LOOP= 2;
229 	public static final int GENERATE_ENHANCED_FOR_LOOP= 2;
230 	public static final int USE_SEPARATE_CATCH_BLOCKS= 2;
231 	public static final int INSERT_NULL_CHECK= 2;
232 	public static final int COMBINE_CATCH_BLOCKS= 2;
233 	public static final int EXTRACT_LOCAL_ERROR= 2;
234 	public static final int ASSIGN_TO_FIELD= 2;
235 	public static final int RETURN_ALLOCATED_OBJECT= 2;
236 	public static final int REMOVE_BLOCK_FIX= 2;
237 	public static final int CONVERT_TO_ANONYMOUS_CLASS_CREATION= 2;
238 
239 	public static final int JOIN_VARIABLE_DECLARATION= 1;
240 	public static final int INVERT_EQUALS= 1;
241 	public static final int CONVERT_TO_ITERATOR_FOR_LOOP= 1;
242 	public static final int GENERATE_FOR_LOOP= 1;
243 	public static final int ADD_TYPE_TO_ARRAY_INITIALIZER= 1;
244 	public static final int REMOVE_EXTRA_PARENTHESES= 1;
245 	public static final int CONVERT_ITERABLE_LOOP_TO_ENHANCED= 1;
246 	public static final int CONVERT_FOR_LOOP_TO_ENHANCED= 1;
247 	public static final int SPLIT_OR_CONDITION= 1;
248 	public static final int SPLIT_AND_CONDITION= 1;
249 	public static final int REPLACE_IF_ELSE_WITH_CONDITIONAL= 1;
250 	public static final int REPLACE_CONDITIONAL_WITH_IF_ELSE= 1;
251 	public static final int PULL_NEGATION_DOWN= 1;
252 	public static final int PULL_NEGATION_UP= 1;
253 	public static final int JOIN_IF_STATEMENTS_WITH_OR= 1;
254 	public static final int JOIN_IF_SEQUENCE= 1;
255 	public static final int JOIN_IF_WITH_OUTER_IF= 1;
256 	public static final int INVERSE_IF_STATEMENT= 1;
257 	public static final int INVERT_IF_TO_CONTINUE= 1;
258 	public static final int INVERSE_IF_CONTINUE= 1;
259 	public static final int INVERSE_CONDITIONS= 1;
260 	public static final int INVERSE_CONDITIONAL_EXPRESSION= 1;
261 	public static final int CONVERT_TO_IF_ELSE= 1;
262 	public static final int EXCHANGE_OPERANDS= 1;
263 	public static final int EXCHANGE_INNER_AND_OUTER_IF_CONDITIONS= 1;
264 	public static final int CONVERT_SWITCH_TO_IF_ELSE= 1;
265 	public static final int CONVERT_IF_ELSE_TO_SWITCH= 1;
266 	public static final int DOCUMENT_UNUSED_ITEM= 1;
267 	public static final int PICK_SELECTED_STRING= 1;
268 	public static final int COMBINE_STRINGS= 1;
269 	public static final int INVERSE_BOOLEAN_VARIABLE= 1;
270 	public static final int REMOVE_UNUSED_ALLOCATED_OBJECT= 1;
271 	public static final int UNWRAP_STATEMENTS= 1;
272 	public static final int SPLIT_VARIABLE_DECLARATION= 1;
273 	public static final int ADD_FINALLY_BLOCK= 1;
274 	public static final int ADD_ELSE_BLOCK= 1;
275 	public static final int CONVERT_TO_STRING_BUFFER= 1;
276 	public static final int JOIN_IF_WITH_INNER_IF= 1;
277 	public static final int ADD_JAVADOC_ENUM= 1;
278 	public static final int ADD_JAVADOC_FIELD= 1;
279 	public static final int ADD_JAVADOC_TYPE= 1;
280 	public static final int ADD_JAVADOC_METHOD= 1;
281 	public static final int ADD_JAVADOC_MODULE= 1;
282 	public static final int EXTRACT_METHOD_ERROR= 1;
283 	public static final int EXTRACT_CONSTANT_ERROR= 1;
284 	public static final int LINKED_NAMES_ASSIST_ERROR= 1;
285 	public static final int RENAME_REFACTORING_ERROR= 1;
286 	public static final int ASSIGN_PARAM_TO_EXISTING_FIELD= 1;
287 	public static final int INSERT_INFERRED_TYPE_ARGUMENTS_ERROR= 1;
288 	public static final int RETURN_ALLOCATED_OBJECT_VOID= 1;
289 	public static final int CONVERT_TO_IF_RETURN= 1;
290 
291 	public static final int CONVERT_TO_MESSAGE_FORMAT= 0;
292 	public static final int COPY_ANNOTATION_JAR= 0;
293 	public static final int NO_SUGGESSTIONS_AVAILABLE= 0;
294 	public static final int ADD_QUOTE= 0;
295 	public static final int NEW_TYPE= 0;
296 	public static final int SIMILAR_VARIABLE_PROPOSAL= 0;
297 	public static final int EXTRACT_LOCAL_ALL_ZERO_SELECTION= 0;
298 
299 	public static final int EXTRACT_LOCAL_ZERO_SELECTION= -1;
300 	public static final int MAKE_VARIABLE_DECLARATION_FINAL= -1;
301 
302 	public static final int ENABLE_PREVIEW_FEATURES= -2;
303 	public static final int ADD_SUPPRESSWARNINGS= -2;
304 	public static final int VARIABLE_TYPE_PROPOSAL_2= -2;
305 	public static final int EXTRACT_CONSTANT_ZERO_SELECTION= -2;
306 	public static final int ADD_SAFEVARARGS= -2;
307 
308 	public static final int ADD_PARANOIDAL_PARENTHESES= -9;
309 
310 	public static final int ADD_PARENTHESES_FOR_EXPRESSION= -10;
311 
312 	public static final int CONFIGURE_PROBLEM_SEVERITY= -11;
313 
314 	//Be careful while tweaking these values because WordCorrectionProposal uses -distance (between the words) as relevance.
315 	public static final int DISABLE_SPELL_CHECKING= Integer.MIN_VALUE + 1;
316 	public static final int WORD_IGNORE= Integer.MIN_VALUE + 1;
317 	public static final int ADD_WORD= Integer.MIN_VALUE;
318 
319 
320 }
321