1 /*******************************************************************************
2  * Copyright (c) 2000, 2019 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  *     Brock Janiczak - Contribution for bug 150741
14  *     Ray V. (voidstar@gmail.com) - Contribution for bug 282988
15  *     Jesper S Moller - Contribution for bug 402173
16  *     Mateusz Matela <mateusz.matela@gmail.com> - [formatter] Formatter does not format Java code correctly, especially when max line width is set - https://bugs.eclipse.org/303519
17  *     Lars Vogel <Lars.Vogel@vogella.com> - Contributions for
18  *     						Bug 473178
19  *******************************************************************************/
20 package org.eclipse.jdt.internal.formatter;
21 
22 import java.util.Arrays;
23 import java.util.HashMap;
24 import java.util.List;
25 import java.util.Map;
26 import java.util.function.Consumer;
27 import java.util.function.IntConsumer;
28 
29 import org.eclipse.jdt.core.JavaCore;
30 import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants;
31 import org.eclipse.jdt.internal.compiler.util.Util;
32 
33 /**
34  * This is still subject to changes before 3.0.
35  * @since 3.0
36  */
37 
38 public class DefaultCodeFormatterOptions {
39 
40 	/** Internal constants related to wrapping alignment settings */
41 	public static class Alignment {
42 
43 		/*
44 		 * Alignment modes
45 		 */
46 		public static final int M_FORCE = 1; // if bit set, then alignment will be non-optional (default is optional)
47 		public static final int M_INDENT_ON_COLUMN = 2; // if bit set, broken fragments will be aligned on current location column (default is to break at current indentation level)
48 		public static final int	M_INDENT_BY_ONE = 4; // if bit set, broken fragments will be indented one level below current (not using continuation indentation)
49 		public static final int M_INDENT_DEFAULT = 0;
50 		public static final int M_INDENT_PRESERVE = 8;
51 
52 		// split modes can be combined either with M_FORCE or M_INDENT_ON_COLUMN
53 
54 		/** foobar(#fragment1, #fragment2, <ul>
55 		 *  <li>    #fragment3, #fragment4 </li>
56 		 * </ul>
57 		 */
58 		public static final int M_COMPACT_SPLIT = 16; // fill each line with all possible fragments
59 
60 		/** foobar(<ul>
61 		 * <li>    #fragment1, #fragment2,  </li>
62 		 * <li>     #fragment3, #fragment4, </li>
63 		 * </ul>
64 		 */
65 		public static final int M_COMPACT_FIRST_BREAK_SPLIT = 32; //  compact mode, but will first try to break before first fragment
66 
67 		/** foobar(<ul>
68 		 * <li>     #fragment1,  </li>
69 		 * <li>     #fragment2,  </li>
70 		 * <li>     #fragment3 </li>
71 		 * <li>     #fragment4,  </li>
72 		 * </ul>
73 		 */
74 		public static final int M_ONE_PER_LINE_SPLIT = 32+16; // one fragment per line
75 
76 		/**
77 		 * foobar(<ul>
78 		 * <li>     #fragment1,  </li>
79 		 * <li>        #fragment2,  </li>
80 		 * <li>        #fragment3 </li>
81 		 * <li>        #fragment4,  </li>
82 		 * </ul>
83 		 */
84 		public static final int M_NEXT_SHIFTED_SPLIT = 64; // one fragment per line, subsequent are indented further
85 
86 		/** foobar(#fragment1, <ul>
87 		 * <li>      #fragment2,  </li>
88 		 * <li>      #fragment3 </li>
89 		 * <li>      #fragment4,  </li>
90 		 * </ul>
91 		 */
92 		public static final int M_NEXT_PER_LINE_SPLIT = 64+16; // one per line, except first fragment (if possible)
93 
94 		public static final int M_NO_ALIGNMENT = 0;
95 
96 		public static final int SPLIT_MASK = M_ONE_PER_LINE_SPLIT | M_NEXT_SHIFTED_SPLIT | M_COMPACT_SPLIT | M_COMPACT_FIRST_BREAK_SPLIT | M_NEXT_PER_LINE_SPLIT;
97 	}
98 
99 
100 	public static final int TAB = 1;
101 	public static final int SPACE = 2;
102 	public static final int MIXED = 4;
103 
getDefaultSettings()104 	public static DefaultCodeFormatterOptions getDefaultSettings() {
105 		DefaultCodeFormatterOptions options = new DefaultCodeFormatterOptions();
106 		options.setDefaultSettings();
107 		return options;
108 	}
109 
getEclipseDefaultSettings()110 	public static DefaultCodeFormatterOptions getEclipseDefaultSettings() {
111 		DefaultCodeFormatterOptions options = new DefaultCodeFormatterOptions();
112 		options.setEclipseDefaultSettings();
113 		return options;
114 	}
115 
getJavaConventionsSettings()116 	public static DefaultCodeFormatterOptions getJavaConventionsSettings() {
117 		DefaultCodeFormatterOptions options = new DefaultCodeFormatterOptions();
118 		options.setJavaConventionsSettings();
119 		return options;
120 	}
121 
122 	public int alignment_for_arguments_in_allocation_expression;
123 	public int alignment_for_arguments_in_annotation;
124 	public int alignment_for_arguments_in_enum_constant;
125 	public int alignment_for_arguments_in_explicit_constructor_call;
126 	public int alignment_for_arguments_in_method_invocation;
127 	public int alignment_for_arguments_in_qualified_allocation_expression;
128 	public int alignment_for_assignment;
129 	public int alignment_for_multiplicative_operator;
130 	public int alignment_for_additive_operator;
131 	public int alignment_for_string_concatenation;
132 	public int alignment_for_shift_operator;
133 	public int alignment_for_relational_operator;
134 	public int alignment_for_bitwise_operator;
135 	public int alignment_for_logical_operator;
136 	public int alignment_for_compact_if;
137 	public int alignment_for_compact_loop;
138 	public int alignment_for_conditional_expression;
139 	public int alignment_for_conditional_expression_chain;
140 	public int alignment_for_enum_constants;
141 	public int alignment_for_expressions_in_array_initializer;
142 	public int alignment_for_expressions_in_for_loop_header;
143 	public int alignment_for_method_declaration;
144 	public int alignment_for_module_statements;
145 	// TODO following option cannot be set in preferences dialog (but it's used by old.CodeFormatter)
146 	public int alignment_for_multiple_fields;
147 	public int alignment_for_parameterized_type_references;
148 	public int alignment_for_parameters_in_constructor_declaration;
149 	public int alignment_for_parameters_in_method_declaration;
150 	public int alignment_for_record_components;
151 	public int alignment_for_selector_in_method_invocation;
152 	public int alignment_for_superclass_in_type_declaration;
153 	public int alignment_for_superinterfaces_in_enum_declaration;
154 	public int alignment_for_superinterfaces_in_record_declaration;
155 	public int alignment_for_superinterfaces_in_type_declaration;
156 	public int alignment_for_throws_clause_in_constructor_declaration;
157 	public int alignment_for_throws_clause_in_method_declaration;
158 	public int alignment_for_type_arguments;
159 	public int alignment_for_type_parameters;
160 	public int alignment_for_resources_in_try;
161 	public int alignment_for_union_type_in_multicatch;
162 
163 	public boolean align_type_members_on_columns;
164 	public boolean align_variable_declarations_on_columns;
165 	public boolean align_assignment_statements_on_columns;
166 	public boolean align_with_spaces;
167 	public int align_fields_grouping_blank_lines;
168 
169 	public String brace_position_for_annotation_type_declaration;
170 	public String brace_position_for_anonymous_type_declaration;
171 	public String brace_position_for_array_initializer;
172 	public String brace_position_for_block;
173 	public String brace_position_for_block_in_case;
174 	public String brace_position_for_constructor_declaration;
175 	public String brace_position_for_enum_constant;
176 	public String brace_position_for_enum_declaration;
177 	public String brace_position_for_lambda_body;
178 	public String brace_position_for_method_declaration;
179 	public String brace_position_for_type_declaration;
180 	public String brace_position_for_record_constructor;
181 	public String brace_position_for_record_declaration;
182 	public String brace_position_for_switch;
183 
184 	public String parenthesis_positions_in_method_declaration;
185 	public String parenthesis_positions_in_method_invocation;
186 	public String parenthesis_positions_in_enum_constant_declaration;
187 	public String parenthesis_positions_in_record_declaration;
188 	public String parenthesis_positions_in_if_while_statement;
189 	public String parenthesis_positions_in_for_statement;
190 	public String parenthesis_positions_in_switch_statement;
191 	public String parenthesis_positions_in_try_clause;
192 	public String parenthesis_positions_in_catch_clause;
193 	public String parenthesis_positions_in_annotation;
194 	public String parenthesis_positions_in_lambda_declaration;
195 
196 	public int continuation_indentation;
197 	public int continuation_indentation_for_array_initializer;
198 
199 	public int blank_lines_after_imports;
200 	public int blank_lines_after_package;
201 	public int blank_lines_before_field;
202 	public int blank_lines_before_first_class_body_declaration;
203 	public int blank_lines_after_last_class_body_declaration;
204 	public int blank_lines_before_imports;
205 	public int blank_lines_before_member_type;
206 	public int blank_lines_before_abstract_method;
207 	public int blank_lines_before_method;
208 	public int blank_lines_before_new_chunk;
209 	public int blank_lines_before_package;
210 	public int blank_lines_between_import_groups;
211 	public int blank_lines_between_type_declarations;
212 	public int blank_lines_at_beginning_of_method_body;
213 	public int blank_lines_at_end_of_method_body;
214 	public int blank_lines_at_beginning_of_code_block;
215 	public int blank_lines_at_end_of_code_block;
216 	public int blank_lines_before_code_block;
217 	public int blank_lines_after_code_block;
218 	public int blank_lines_between_statement_groups_in_switch;
219 
220 	public boolean comment_clear_blank_lines_in_javadoc_comment;
221 	public boolean comment_clear_blank_lines_in_block_comment;
222 	public boolean comment_new_lines_at_block_boundaries;
223 	public boolean comment_new_lines_at_javadoc_boundaries;
224 	public boolean comment_format_javadoc_comment;
225 	public boolean comment_format_line_comment;
226 	public boolean comment_format_line_comment_starting_on_first_column;
227 	public boolean comment_format_block_comment;
228 	public boolean comment_format_header;
229 	public boolean comment_format_html;
230 	public boolean comment_format_source;
231 	public boolean comment_indent_parameter_description;
232 	public boolean comment_indent_tag_description;
233 	public boolean comment_indent_root_tags;
234 	public boolean comment_align_tags_names_descriptions;
235 	public boolean comment_align_tags_descriptions_grouped;
236 	public boolean comment_insert_empty_line_before_root_tags;
237 	public boolean comment_insert_empty_line_between_different_tags;
238 	public boolean comment_insert_new_line_for_parameter;
239 	public boolean comment_preserve_white_space_between_code_and_line_comments;
240 	public int comment_line_length;
241 	public boolean comment_count_line_length_from_starting_position;
242 
243 	public boolean use_tags;
244 	public char[] disabling_tag;
245 	public char[] enabling_tag;
246 	private final static char[] DEFAULT_DISABLING_TAG = "@formatter:off".toCharArray(); //$NON-NLS-1$
247 	private final static char[] DEFAULT_ENABLING_TAG = "@formatter:on".toCharArray(); //$NON-NLS-1$
248 
249 	public boolean indent_statements_compare_to_block;
250 	public boolean indent_statements_compare_to_body;
251 	public boolean indent_body_declarations_compare_to_annotation_declaration_header;
252 	public boolean indent_body_declarations_compare_to_enum_constant_header;
253 	public boolean indent_body_declarations_compare_to_enum_declaration_header;
254 	public boolean indent_body_declarations_compare_to_record_header;
255 	public boolean indent_body_declarations_compare_to_type_header;
256 	public boolean indent_breaks_compare_to_cases;
257 	public boolean indent_empty_lines;
258 	public boolean indent_switchstatements_compare_to_cases;
259 	public boolean indent_switchstatements_compare_to_switch;
260 	public int indentation_size;
261 
262 	public boolean insert_new_line_after_annotation_on_type;
263 	public boolean insert_new_line_after_type_annotation;
264 	public boolean insert_new_line_after_annotation_on_enum_constant;
265 	public boolean insert_new_line_after_annotation_on_field;
266 	public boolean insert_new_line_after_annotation_on_method;
267 	public boolean insert_new_line_after_annotation_on_package;
268 	public boolean insert_new_line_after_annotation_on_parameter;
269 	public boolean insert_new_line_after_annotation_on_local_variable;
270 	public boolean insert_new_line_after_label;
271 	public boolean insert_new_line_after_opening_brace_in_array_initializer;
272 	public boolean insert_new_line_at_end_of_file_if_missing;
273 	public boolean insert_new_line_before_catch_in_try_statement;
274 	public boolean insert_new_line_before_closing_brace_in_array_initializer;
275 	public boolean insert_new_line_before_else_in_if_statement;
276 	public boolean insert_new_line_before_finally_in_try_statement;
277 	public boolean insert_new_line_before_while_in_do_statement;
278 
279 	public String keep_loop_body_block_on_one_line;
280 	public String keep_if_then_body_block_on_one_line;
281 	public String keep_code_block_on_one_line;
282 	public String keep_lambda_body_block_on_one_line;
283 	public String keep_method_body_on_one_line;
284 	public String keep_type_declaration_on_one_line;
285 	public String keep_anonymous_type_declaration_on_one_line;
286 	public String keep_enum_declaration_on_one_line;
287 	public String keep_enum_constant_declaration_on_one_line;
288 	public String keep_annotation_declaration_on_one_line;
289 	public String keep_record_declaration_on_one_line;
290 	public String keep_record_constructor_on_one_line;
291 	public boolean keep_simple_getter_setter_on_one_line;
292 
293 	public boolean insert_space_after_and_in_type_parameter;
294 	public boolean insert_space_after_arrow_in_switch_case;
295 	public boolean insert_space_after_arrow_in_switch_default;
296 	public boolean insert_space_after_assignment_operator;
297 	public boolean insert_space_after_at_in_annotation;
298 	public boolean insert_space_after_at_in_annotation_type_declaration;
299 	public boolean insert_space_after_multiplicative_operator;
300 	public boolean insert_space_after_additive_operator;
301 	public boolean insert_space_after_string_concatenation;
302 	public boolean insert_space_after_shift_operator;
303 	public boolean insert_space_after_relational_operator;
304 	public boolean insert_space_after_bitwise_operator;
305 	public boolean insert_space_after_logical_operator;
306 	public boolean insert_space_after_closing_angle_bracket_in_type_arguments;
307 	public boolean insert_space_after_closing_angle_bracket_in_type_parameters;
308 	public boolean insert_space_after_closing_paren_in_cast;
309 	public boolean insert_space_after_closing_brace_in_block;
310 	public boolean insert_space_after_colon_in_assert;
311 	//TODO field is never used
312 	public boolean insert_space_after_colon_in_case;
313 	public boolean insert_space_after_colon_in_conditional;
314 	public boolean insert_space_after_colon_in_for;
315 	public boolean insert_space_after_colon_in_labeled_statement;
316 	public boolean insert_space_after_comma_in_allocation_expression;
317 	public boolean insert_space_after_comma_in_annotation;
318 	public boolean insert_space_after_comma_in_array_initializer;
319 	public boolean insert_space_after_comma_in_constructor_declaration_parameters;
320 	public boolean insert_space_after_comma_in_constructor_declaration_throws;
321 	public boolean insert_space_after_comma_in_enum_constant_arguments;
322 	public boolean insert_space_after_comma_in_enum_declarations;
323 	public boolean insert_space_after_comma_in_explicit_constructor_call_arguments;
324 	public boolean insert_space_after_comma_in_for_increments;
325 	public boolean insert_space_after_comma_in_for_inits;
326 	public boolean insert_space_after_comma_in_method_invocation_arguments;
327 	public boolean insert_space_after_comma_in_method_declaration_parameters;
328 	public boolean insert_space_after_comma_in_method_declaration_throws;
329 	public boolean insert_space_after_comma_in_multiple_field_declarations;
330 	public boolean insert_space_after_comma_in_multiple_local_declarations;
331 	public boolean insert_space_after_comma_in_parameterized_type_reference;
332 	public boolean insert_space_after_comma_in_record_components;
333 	public boolean insert_space_after_comma_in_superinterfaces;
334 	public boolean insert_space_after_comma_in_switch_case_expressions;
335 	public boolean insert_space_after_comma_in_type_arguments;
336 	public boolean insert_space_after_comma_in_type_parameters;
337 	public boolean insert_space_after_ellipsis;
338 	public boolean insert_space_after_lambda_arrow;
339 	public boolean insert_space_after_not_operator;
340 	public boolean insert_space_after_opening_angle_bracket_in_parameterized_type_reference;
341 	public boolean insert_space_after_opening_angle_bracket_in_type_arguments;
342 	public boolean insert_space_after_opening_angle_bracket_in_type_parameters;
343 	public boolean insert_space_after_opening_bracket_in_array_allocation_expression;
344 	public boolean insert_space_after_opening_bracket_in_array_reference;
345 	public boolean insert_space_after_opening_brace_in_array_initializer;
346 	public boolean insert_space_after_opening_paren_in_annotation;
347 	public boolean insert_space_after_opening_paren_in_cast;
348 	public boolean insert_space_after_opening_paren_in_catch;
349 	public boolean insert_space_after_opening_paren_in_constructor_declaration;
350 	public boolean insert_space_after_opening_paren_in_enum_constant;
351 	public boolean insert_space_after_opening_paren_in_for;
352 	public boolean insert_space_after_opening_paren_in_if;
353 	public boolean insert_space_after_opening_paren_in_method_declaration;
354 	public boolean insert_space_after_opening_paren_in_method_invocation;
355 	public boolean insert_space_after_opening_paren_in_parenthesized_expression;
356 	public boolean insert_space_after_opening_paren_in_record_declaration;
357 	public boolean insert_space_after_opening_paren_in_switch;
358 	public boolean insert_space_after_opening_paren_in_synchronized;
359 	public boolean insert_space_after_opening_paren_in_try;
360 	public boolean insert_space_after_opening_paren_in_while;
361 	public boolean insert_space_after_postfix_operator;
362 	public boolean insert_space_after_prefix_operator;
363 	public boolean insert_space_after_question_in_conditional;
364 	public boolean insert_space_after_question_in_wilcard;
365 	public boolean insert_space_after_semicolon_in_for;
366 	public boolean insert_space_after_semicolon_in_try_resources;
367 	public boolean insert_space_after_unary_operator;
368 	public boolean insert_space_before_and_in_type_parameter;
369 	public boolean insert_space_before_arrow_in_switch_case;
370 	public boolean insert_space_before_arrow_in_switch_default;
371 	public boolean insert_space_before_at_in_annotation_type_declaration;
372 	public boolean insert_space_before_assignment_operator;
373 	public boolean insert_space_before_multiplicative_operator;
374 	public boolean insert_space_before_additive_operator;
375 	public boolean insert_space_before_string_concatenation;
376 	public boolean insert_space_before_shift_operator;
377 	public boolean insert_space_before_relational_operator;
378 	public boolean insert_space_before_bitwise_operator;
379 	public boolean insert_space_before_logical_operator;
380 	public boolean insert_space_before_closing_angle_bracket_in_parameterized_type_reference;
381 	public boolean insert_space_before_closing_angle_bracket_in_type_arguments;
382 	public boolean insert_space_before_closing_angle_bracket_in_type_parameters;
383 	public boolean insert_space_before_closing_brace_in_array_initializer;
384 	public boolean insert_space_before_closing_bracket_in_array_allocation_expression;
385 	public boolean insert_space_before_closing_bracket_in_array_reference;
386 	public boolean insert_space_before_closing_paren_in_annotation;
387 	public boolean insert_space_before_closing_paren_in_cast;
388 	public boolean insert_space_before_closing_paren_in_catch;
389 	public boolean insert_space_before_closing_paren_in_constructor_declaration;
390 	public boolean insert_space_before_closing_paren_in_enum_constant;
391 	public boolean insert_space_before_closing_paren_in_for;
392 	public boolean insert_space_before_closing_paren_in_if;
393 	public boolean insert_space_before_closing_paren_in_method_declaration;
394 	public boolean insert_space_before_closing_paren_in_method_invocation;
395 	public boolean insert_space_before_closing_paren_in_parenthesized_expression;
396 	public boolean insert_space_before_closing_paren_in_record_declaration;
397 	public boolean insert_space_before_closing_paren_in_switch;
398 	public boolean insert_space_before_closing_paren_in_synchronized;
399 	public boolean insert_space_before_closing_paren_in_try;
400 	public boolean insert_space_before_closing_paren_in_while;
401 	public boolean insert_space_before_colon_in_assert;
402 	public boolean insert_space_before_colon_in_case;
403 	public boolean insert_space_before_colon_in_conditional;
404 	public boolean insert_space_before_colon_in_default;
405 	public boolean insert_space_before_colon_in_for;
406 	public boolean insert_space_before_colon_in_labeled_statement;
407 	public boolean insert_space_before_comma_in_allocation_expression;
408 	public boolean insert_space_before_comma_in_annotation;
409 	public boolean insert_space_before_comma_in_array_initializer;
410 	public boolean insert_space_before_comma_in_constructor_declaration_parameters;
411 	public boolean insert_space_before_comma_in_constructor_declaration_throws;
412 	public boolean insert_space_before_comma_in_enum_constant_arguments;
413 	public boolean insert_space_before_comma_in_enum_declarations;
414 	public boolean insert_space_before_comma_in_explicit_constructor_call_arguments;
415 	public boolean insert_space_before_comma_in_for_increments;
416 	public boolean insert_space_before_comma_in_for_inits;
417 	public boolean insert_space_before_comma_in_method_invocation_arguments;
418 	public boolean insert_space_before_comma_in_method_declaration_parameters;
419 	public boolean insert_space_before_comma_in_method_declaration_throws;
420 	public boolean insert_space_before_comma_in_multiple_field_declarations;
421 	public boolean insert_space_before_comma_in_multiple_local_declarations;
422 	public boolean insert_space_before_comma_in_parameterized_type_reference;
423 	public boolean insert_space_before_comma_in_record_components;
424 	public boolean insert_space_before_comma_in_superinterfaces;
425 	public boolean insert_space_before_comma_in_switch_case_expressions;
426 	public boolean insert_space_before_comma_in_type_arguments;
427 	public boolean insert_space_before_comma_in_type_parameters;
428 	public boolean insert_space_before_ellipsis;
429 	public boolean insert_space_before_lambda_arrow;
430 	public boolean insert_space_before_parenthesized_expression_in_return;
431 	public boolean insert_space_before_parenthesized_expression_in_throw;
432 	public boolean insert_space_before_question_in_wilcard;
433 	public boolean insert_space_before_opening_angle_bracket_in_parameterized_type_reference;
434 	public boolean insert_space_before_opening_angle_bracket_in_type_arguments;
435 	public boolean insert_space_before_opening_angle_bracket_in_type_parameters;
436 	public boolean insert_space_before_opening_brace_in_annotation_type_declaration;
437 	public boolean insert_space_before_opening_brace_in_anonymous_type_declaration;
438 	public boolean insert_space_before_opening_brace_in_array_initializer;
439 	public boolean insert_space_before_opening_brace_in_block;
440 	public boolean insert_space_before_opening_brace_in_constructor_declaration;
441 	public boolean insert_space_before_opening_brace_in_enum_constant;
442 	public boolean insert_space_before_opening_brace_in_enum_declaration;
443 	public boolean insert_space_before_opening_brace_in_method_declaration;
444 	public boolean insert_space_before_opening_brace_in_record_constructor;
445 	public boolean insert_space_before_opening_brace_in_record_declaration;
446 	public boolean insert_space_before_opening_brace_in_type_declaration;
447 	public boolean insert_space_before_opening_bracket_in_array_allocation_expression;
448 	public boolean insert_space_before_opening_bracket_in_array_reference;
449 	public boolean insert_space_before_opening_bracket_in_array_type_reference;
450 	public boolean insert_space_before_opening_paren_in_annotation;
451 	public boolean insert_space_before_opening_paren_in_annotation_type_member_declaration;
452 	public boolean insert_space_before_opening_paren_in_catch;
453 	public boolean insert_space_before_opening_paren_in_constructor_declaration;
454 	public boolean insert_space_before_opening_paren_in_enum_constant;
455 	public boolean insert_space_before_opening_paren_in_for;
456 	public boolean insert_space_before_opening_paren_in_if;
457 	public boolean insert_space_before_opening_paren_in_method_invocation;
458 	public boolean insert_space_before_opening_paren_in_method_declaration;
459 	public boolean insert_space_before_opening_paren_in_record_declaration;
460 	public boolean insert_space_before_opening_paren_in_switch;
461 	public boolean insert_space_before_opening_paren_in_try;
462 	public boolean insert_space_before_opening_brace_in_switch;
463 	public boolean insert_space_before_opening_paren_in_synchronized;
464 	public boolean insert_space_before_opening_paren_in_parenthesized_expression;
465 	public boolean insert_space_before_opening_paren_in_while;
466 	public boolean insert_space_before_postfix_operator;
467 	public boolean insert_space_before_prefix_operator;
468 	public boolean insert_space_before_question_in_conditional;
469 	public boolean insert_space_before_semicolon;
470 	public boolean insert_space_before_semicolon_in_for;
471 	public boolean insert_space_before_semicolon_in_try_resources;
472 	public boolean insert_space_before_unary_operator;
473 	public boolean insert_space_between_brackets_in_array_type_reference;
474 	public boolean insert_space_between_empty_braces_in_array_initializer;
475 	public boolean insert_space_between_empty_brackets_in_array_allocation_expression;
476 	public boolean insert_space_between_empty_parens_in_annotation_type_member_declaration;
477 	public boolean insert_space_between_empty_parens_in_constructor_declaration;
478 	public boolean insert_space_between_empty_parens_in_enum_constant;
479 	public boolean insert_space_between_empty_parens_in_method_declaration;
480 	public boolean insert_space_between_empty_parens_in_method_invocation;
481 	public boolean compact_else_if;
482 	public boolean keep_guardian_clause_on_one_line;
483 	public boolean keep_else_statement_on_same_line;
484 	public boolean keep_empty_array_initializer_on_one_line;
485 	public boolean keep_simple_if_on_one_line;
486 	public boolean keep_then_statement_on_same_line;
487 	public boolean keep_simple_for_body_on_same_line;
488 	public boolean keep_simple_while_body_on_same_line;
489 	public boolean keep_simple_do_while_body_on_same_line;
490 	public boolean never_indent_block_comments_on_first_column;
491 	public boolean never_indent_line_comments_on_first_column;
492 	public int number_of_empty_lines_to_preserve;
493 	public boolean join_wrapped_lines;
494 	public boolean join_lines_in_comments;
495 	public boolean put_empty_statement_on_new_line;
496 	public int tab_size;
497 	public int page_width;
498 	public int tab_char;
499 	public boolean use_tabs_only_for_leading_indentations;
500 	public int text_block_indentation;
501 	public boolean wrap_before_multiplicative_operator;
502 	public boolean wrap_before_additive_operator;
503 	public boolean wrap_before_string_concatenation;
504 	public boolean wrap_before_shift_operator;
505 	public boolean wrap_before_relational_operator;
506 	public boolean wrap_before_bitwise_operator;
507 	public boolean wrap_before_logical_operator;
508 	public boolean wrap_before_or_operator_multicatch;
509 	public boolean wrap_before_conditional_operator;
510 	public boolean wrap_before_assignment_operator;
511 	public boolean wrap_outer_expressions_when_nested;
512 
513 	public int initial_indentation_level;
514 	public String line_separator;
515 
516 	private final static List<String> KEEP_ON_ONE_LINE_VALUES = Arrays.asList(
517 			DefaultCodeFormatterConstants.ONE_LINE_NEVER,
518 			DefaultCodeFormatterConstants.ONE_LINE_IF_EMPTY,
519 			DefaultCodeFormatterConstants.ONE_LINE_IF_SINGLE_ITEM,
520 			DefaultCodeFormatterConstants.ONE_LINE_ALWAYS,
521 			DefaultCodeFormatterConstants.ONE_LINE_PRESERVE);
522 
523 	private final static List<String> BRACE_POSITION_VALUES = Arrays.asList(
524 			DefaultCodeFormatterConstants.END_OF_LINE,
525 			DefaultCodeFormatterConstants.NEXT_LINE,
526 			DefaultCodeFormatterConstants.NEXT_LINE_SHIFTED,
527 			DefaultCodeFormatterConstants.NEXT_LINE_ON_WRAP);
528 
529 	private final static List<String> PARENTHESIS_POSITION_VALUES = Arrays.asList(
530 			DefaultCodeFormatterConstants.COMMON_LINES,
531 			DefaultCodeFormatterConstants.SEPARATE_LINES_IF_NOT_EMPTY,
532 			DefaultCodeFormatterConstants.SEPARATE_LINES_IF_WRAPPED,
533 			DefaultCodeFormatterConstants.SEPARATE_LINES,
534 			DefaultCodeFormatterConstants.SEPARATE_LINES,
535 			DefaultCodeFormatterConstants.PRESERVE_POSITIONS);
536 
DefaultCodeFormatterOptions()537 	private DefaultCodeFormatterOptions() {
538 		// cannot be instantiated
539 	}
540 
DefaultCodeFormatterOptions(Map<String, String> settings)541 	public DefaultCodeFormatterOptions(Map<String, String> settings) {
542 		setDefaultSettings();
543 		if (settings == null) return;
544 		set(settings);
545 	}
546 
getAlignment(int alignment)547 	private String getAlignment(int alignment) {
548 		return Integer.toString(alignment);
549 	}
550 
getMap()551 	public Map<String, String> getMap() {
552 		Map<String, String> options = new HashMap<>();
553 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_ALLOCATION_EXPRESSION, getAlignment(this.alignment_for_arguments_in_allocation_expression));
554 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_ANNOTATION, getAlignment(this.alignment_for_arguments_in_annotation));
555 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_ENUM_CONSTANT, getAlignment(this.alignment_for_arguments_in_enum_constant));
556 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_EXPLICIT_CONSTRUCTOR_CALL, getAlignment(this.alignment_for_arguments_in_explicit_constructor_call));
557 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION, getAlignment(this.alignment_for_arguments_in_method_invocation));
558 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_QUALIFIED_ALLOCATION_EXPRESSION, getAlignment(this.alignment_for_arguments_in_qualified_allocation_expression));
559 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ASSIGNMENT, getAlignment(this.alignment_for_assignment));
560 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_MULTIPLICATIVE_OPERATOR ,getAlignment(this.alignment_for_multiplicative_operator));
561 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ADDITIVE_OPERATOR ,getAlignment(this.alignment_for_additive_operator));
562 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_STRING_CONCATENATION ,getAlignment(this.alignment_for_string_concatenation));
563 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SHIFT_OPERATOR ,getAlignment(this.alignment_for_shift_operator));
564 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_RELATIONAL_OPERATOR ,getAlignment(this.alignment_for_relational_operator));
565 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BITWISE_OPERATOR ,getAlignment(this.alignment_for_bitwise_operator));
566 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_LOGICAL_OPERATOR ,getAlignment(this.alignment_for_logical_operator));
567 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_COMPACT_IF, getAlignment(this.alignment_for_compact_if));
568 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_COMPACT_LOOP, getAlignment(this.alignment_for_compact_loop));
569 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION, getAlignment(this.alignment_for_conditional_expression));
570 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION_CHAIN, getAlignment(this.alignment_for_conditional_expression_chain));
571 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ENUM_CONSTANTS, getAlignment(this.alignment_for_enum_constants));
572 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER, getAlignment(this.alignment_for_expressions_in_array_initializer));
573 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_FOR_LOOP_HEADER, getAlignment(this.alignment_for_expressions_in_for_loop_header));
574 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_METHOD_DECLARATION, getAlignment(this.alignment_for_method_declaration));
575 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_MODULE_STATEMENTS, getAlignment(this.alignment_for_module_statements));
576 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_MULTIPLE_FIELDS, getAlignment(this.alignment_for_multiple_fields));
577 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERIZED_TYPE_REFERENCES, getAlignment(this.alignment_for_parameterized_type_references));
578 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION, getAlignment(this.alignment_for_parameters_in_constructor_declaration));
579 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION, getAlignment(this.alignment_for_parameters_in_method_declaration));
580 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_RECORD_COMPONENTS, getAlignment(this.alignment_for_record_components));
581 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_RESOURCES_IN_TRY, getAlignment(this.alignment_for_resources_in_try));
582 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SELECTOR_IN_METHOD_INVOCATION, getAlignment(this.alignment_for_selector_in_method_invocation));
583 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SUPERCLASS_IN_TYPE_DECLARATION, getAlignment(this.alignment_for_superclass_in_type_declaration));
584 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SUPERINTERFACES_IN_ENUM_DECLARATION, getAlignment(this.alignment_for_superinterfaces_in_enum_declaration));
585 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SUPERINTERFACES_IN_RECORD_DECLARATION, getAlignment(this.alignment_for_superinterfaces_in_record_declaration));
586 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SUPERINTERFACES_IN_TYPE_DECLARATION, getAlignment(this.alignment_for_superinterfaces_in_type_declaration));
587 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_THROWS_CLAUSE_IN_CONSTRUCTOR_DECLARATION, getAlignment(this.alignment_for_throws_clause_in_constructor_declaration));
588 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_THROWS_CLAUSE_IN_METHOD_DECLARATION, getAlignment(this.alignment_for_throws_clause_in_method_declaration));
589 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_TYPE_ARGUMENTS, getAlignment(this.alignment_for_type_arguments));
590 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_TYPE_PARAMETERS, getAlignment(this.alignment_for_type_parameters));
591 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_UNION_TYPE_IN_MULTICATCH, getAlignment(this.alignment_for_union_type_in_multicatch));
592 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGN_TYPE_MEMBERS_ON_COLUMNS, this.align_type_members_on_columns ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
593 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGN_VARIABLE_DECLARATIONS_ON_COLUMNS, this.align_variable_declarations_on_columns ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
594 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGN_ASSIGNMENT_STATEMENTS_ON_COLUMNS, this.align_assignment_statements_on_columns ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
595 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGN_FIELDS_GROUPING_BLANK_LINES, Integer.toString(this.align_fields_grouping_blank_lines));
596 		options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGN_WITH_SPACES, this.align_with_spaces ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
597 		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANNOTATION_TYPE_DECLARATION, this.brace_position_for_annotation_type_declaration);
598 		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION, this.brace_position_for_anonymous_type_declaration);
599 		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ARRAY_INITIALIZER, this.brace_position_for_array_initializer);
600 		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK, this.brace_position_for_block);
601 		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK_IN_CASE, this.brace_position_for_block_in_case);
602 		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION, this.brace_position_for_constructor_declaration);
603 		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ENUM_CONSTANT, this.brace_position_for_enum_constant);
604 		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ENUM_DECLARATION, this.brace_position_for_enum_declaration);
605 		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION, this.brace_position_for_method_declaration);
606 		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION, this.brace_position_for_type_declaration);
607 		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_LAMBDA_BODY, this.brace_position_for_lambda_body);
608 		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_RECORD_CONSTRUCTOR, this.brace_position_for_record_constructor);
609 		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_RECORD_DECLARATION, this.brace_position_for_record_declaration);
610 		options.put(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH, this.brace_position_for_switch);
611 		options.put(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_METHOD_DECLARATION, this.parenthesis_positions_in_method_declaration);
612 		options.put(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_METHOD_INVOCATION, this.parenthesis_positions_in_method_invocation);
613 		options.put(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_ENUM_CONSTANT_DECLARATION, this.parenthesis_positions_in_enum_constant_declaration);
614 		options.put(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_RECORD_DECLARATION, this.parenthesis_positions_in_record_declaration);
615 		options.put(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_IF_WHILE_STATEMENT, this.parenthesis_positions_in_if_while_statement);
616 		options.put(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_FOR_STATEMENT, this.parenthesis_positions_in_for_statement);
617 		options.put(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_SWITCH_STATEMENT, this.parenthesis_positions_in_switch_statement);
618 		options.put(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_TRY_CLAUSE, this.parenthesis_positions_in_try_clause);
619 		options.put(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_CATCH_CLAUSE, this.parenthesis_positions_in_catch_clause);
620 		options.put(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_ANNOTATION, this.parenthesis_positions_in_annotation);
621 		options.put(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_LAMBDA_DECLARATION, this.parenthesis_positions_in_lambda_declaration);
622 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_BLOCK_COMMENT, this.comment_clear_blank_lines_in_block_comment ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
623 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_JAVADOC_COMMENT, this.comment_clear_blank_lines_in_javadoc_comment ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
624 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_NEW_LINES_AT_BLOCK_BOUNDARIES, this.comment_new_lines_at_block_boundaries ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
625 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_NEW_LINES_AT_JAVADOC_BOUNDARIES, this.comment_new_lines_at_javadoc_boundaries ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
626 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_BLOCK_COMMENT, this.comment_format_block_comment ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
627 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_HEADER, this.comment_format_header ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
628 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_HTML, this.comment_format_html ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
629 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_JAVADOC_COMMENT, this.comment_format_javadoc_comment ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
630 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_LINE_COMMENT, this.comment_format_line_comment ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
631 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_LINE_COMMENT_STARTING_ON_FIRST_COLUMN, this.comment_format_line_comment_starting_on_first_column ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
632 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_SOURCE, this.comment_format_source ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
633 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INDENT_PARAMETER_DESCRIPTION, this.comment_indent_parameter_description ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
634 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INDENT_TAG_DESCRIPTION, this.comment_indent_tag_description ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
635 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INDENT_ROOT_TAGS, this.comment_indent_root_tags ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
636 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_ALIGN_TAGS_NAMES_DESCRIPTIONS, this.comment_align_tags_names_descriptions ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
637 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_ALIGN_TAGS_DESCREIPTIONS_GROUPED, this.comment_align_tags_descriptions_grouped ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
638 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INSERT_EMPTY_LINE_BEFORE_ROOT_TAGS, this.comment_insert_empty_line_before_root_tags ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
639 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INSERT_EMPTY_LINE_BETWEEN_DIFFERENT_TAGS, this.comment_insert_empty_line_between_different_tags ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
640 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INSERT_NEW_LINE_FOR_PARAMETER, this.comment_insert_new_line_for_parameter ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
641 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_PRESERVE_WHITE_SPACE_BETWEEN_CODE_AND_LINE_COMMENT, this.comment_preserve_white_space_between_code_and_line_comments ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
642 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH, Integer.toString(this.comment_line_length));
643 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMMENT_COUNT_LINE_LENGTH_FROM_STARTING_POSITION, this.comment_count_line_length_from_starting_position ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
644 		options.put(DefaultCodeFormatterConstants.FORMATTER_CONTINUATION_INDENTATION, Integer.toString(this.continuation_indentation));
645 		options.put(DefaultCodeFormatterConstants.FORMATTER_CONTINUATION_INDENTATION_FOR_ARRAY_INITIALIZER, Integer.toString(this.continuation_indentation_for_array_initializer));
646 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_IMPORTS, Integer.toString(this.blank_lines_after_imports));
647 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_PACKAGE, Integer.toString(this.blank_lines_after_package));
648 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_FIELD, Integer.toString(this.blank_lines_before_field));
649 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_FIRST_CLASS_BODY_DECLARATION, Integer.toString(this.blank_lines_before_first_class_body_declaration));
650 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_LAST_CLASS_BODY_DECLARATION, Integer.toString(this.blank_lines_after_last_class_body_declaration));
651 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_IMPORTS, Integer.toString(this.blank_lines_before_imports));
652 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_MEMBER_TYPE, Integer.toString(this.blank_lines_before_member_type));
653 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_ABSTRACT_METHOD, Integer.toString(this.blank_lines_before_abstract_method));
654 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_METHOD, Integer.toString(this.blank_lines_before_method));
655 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_NEW_CHUNK, Integer.toString(this.blank_lines_before_new_chunk));
656 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_PACKAGE, Integer.toString(this.blank_lines_before_package));
657 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BETWEEN_IMPORT_GROUPS, Integer.toString(this.blank_lines_between_import_groups));
658 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BETWEEN_TYPE_DECLARATIONS, Integer.toString(this.blank_lines_between_type_declarations));
659 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AT_BEGINNING_OF_METHOD_BODY, Integer.toString(this.blank_lines_at_beginning_of_method_body));
660 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AT_END_OF_METHOD_BODY, Integer.toString(this.blank_lines_at_end_of_method_body));
661 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AT_BEGINNING_OF_CODE_BLOCK, Integer.toString(this.blank_lines_at_beginning_of_code_block));
662 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AT_END_OF_CODE_BLOCK, Integer.toString(this.blank_lines_at_end_of_code_block));
663 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_CODE_BLOCK, Integer.toString(this.blank_lines_before_code_block));
664 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_CODE_BLOCK, Integer.toString(this.blank_lines_after_code_block));
665 		options.put(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BETWEEN_STATEMENT_GROUPS_IN_SWITCH, Integer.toString(this.blank_lines_between_statement_groups_in_switch));
666 		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_STATEMENTS_COMPARE_TO_BLOCK, this.indent_statements_compare_to_block ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
667 		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_STATEMENTS_COMPARE_TO_BODY, this.indent_statements_compare_to_body ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
668 		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_BODY_DECLARATIONS_COMPARE_TO_ANNOTATION_DECLARATION_HEADER, this.indent_body_declarations_compare_to_annotation_declaration_header ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
669 		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_BODY_DECLARATIONS_COMPARE_TO_ENUM_CONSTANT_HEADER, this.indent_body_declarations_compare_to_enum_constant_header ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
670 		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_BODY_DECLARATIONS_COMPARE_TO_ENUM_DECLARATION_HEADER, this.indent_body_declarations_compare_to_enum_declaration_header ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
671 		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_BODY_DECLARATIONS_COMPARE_TO_RECORD_HEADER, this.indent_body_declarations_compare_to_record_header ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
672 		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_BODY_DECLARATIONS_COMPARE_TO_TYPE_HEADER, this.indent_body_declarations_compare_to_type_header ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
673 		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_BREAKS_COMPARE_TO_CASES, this.indent_breaks_compare_to_cases ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
674 		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_EMPTY_LINES, this.indent_empty_lines ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
675 		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_SWITCHSTATEMENTS_COMPARE_TO_CASES, this.indent_switchstatements_compare_to_cases ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
676 		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENT_SWITCHSTATEMENTS_COMPARE_TO_SWITCH, this.indent_switchstatements_compare_to_switch ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
677 		options.put(DefaultCodeFormatterConstants.FORMATTER_INDENTATION_SIZE, Integer.toString(this.tab_char == MIXED ? this.indentation_size : this.tab_size)); // reverse values swapping performed by IndentationTabPage
678 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION_ON_TYPE, this.insert_new_line_after_annotation_on_type ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
679 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_TYPE_ANNOTATION, this.insert_new_line_after_type_annotation ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
680 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION_ON_ENUM_CONSTANT, this.insert_new_line_after_annotation_on_enum_constant ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
681 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION_ON_FIELD, this.insert_new_line_after_annotation_on_field ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
682 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION_ON_METHOD, this.insert_new_line_after_annotation_on_method ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
683 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION_ON_PACKAGE, this.insert_new_line_after_annotation_on_package ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
684 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION_ON_PARAMETER, this.insert_new_line_after_annotation_on_parameter ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
685 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION_ON_LOCAL_VARIABLE, this.insert_new_line_after_annotation_on_local_variable ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
686 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_OPENING_BRACE_IN_ARRAY_INITIALIZER, this.insert_new_line_after_opening_brace_in_array_initializer? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
687 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AT_END_OF_FILE_IF_MISSING, this.insert_new_line_at_end_of_file_if_missing ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
688 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT, this.insert_new_line_before_catch_in_try_statement? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
689 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER, this.insert_new_line_before_closing_brace_in_array_initializer? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
690 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT, this.insert_new_line_before_else_in_if_statement? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
691 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT, this.insert_new_line_before_finally_in_try_statement? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
692 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT, this.insert_new_line_before_while_in_do_statement? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
693 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_ANNOTATION_DECLARATION_ON_ONE_LINE, this.keep_annotation_declaration_on_one_line);
694 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_ANONYMOUS_TYPE_DECLARATION_ON_ONE_LINE, this.keep_anonymous_type_declaration_on_one_line);
695 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_IF_THEN_BODY_BLOCK_ON_ONE_LINE, this.keep_if_then_body_block_on_one_line);
696 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_LAMBDA_BODY_BLOCK_ON_ONE_LINE, this.keep_lambda_body_block_on_one_line);
697 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_LOOP_BODY_BLOCK_ON_ONE_LINE, this.keep_loop_body_block_on_one_line);
698 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_CODE_BLOCK_ON_ONE_LINE, this.keep_code_block_on_one_line);
699 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_ENUM_CONSTANT_DECLARATION_ON_ONE_LINE, this.keep_enum_constant_declaration_on_one_line);
700 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_ENUM_DECLARATION_ON_ONE_LINE, this.keep_enum_declaration_on_one_line);
701 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_METHOD_BODY_ON_ONE_LINE, this.keep_method_body_on_one_line);
702 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_TYPE_DECLARATION_ON_ONE_LINE, this.keep_type_declaration_on_one_line);
703 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_RECORD_DECLARATION_ON_ONE_LINE, this.keep_record_declaration_on_one_line);
704 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_RECORD_CONSTRUCTOR_ON_ONE_LINE, this.keep_record_constructor_on_one_line);
705 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_SIMPLE_GETTER_SETTER_ON_ONE_LINE, this.keep_simple_getter_setter_on_one_line? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
706 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_LABEL, this.insert_new_line_after_label? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
707 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_AND_IN_TYPE_PARAMETER, this.insert_space_after_and_in_type_parameter? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
708 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ARROW_IN_SWITCH_CASE, this.insert_space_after_arrow_in_switch_case? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
709 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ARROW_IN_SWITCH_DEFAULT, this.insert_space_after_arrow_in_switch_default? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
710 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ASSIGNMENT_OPERATOR, this.insert_space_after_assignment_operator? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
711 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_AT_IN_ANNOTATION, this.insert_space_after_at_in_annotation? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
712 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_AT_IN_ANNOTATION_TYPE_DECLARATION, this.insert_space_after_at_in_annotation_type_declaration ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
713 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_MULTIPLICATIVE_OPERATOR, this.insert_space_after_multiplicative_operator ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
714 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ADDITIVE_OPERATOR, this.insert_space_after_additive_operator ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
715 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_STRING_CONCATENATION, this.insert_space_after_string_concatenation ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
716 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_SHIFT_OPERATOR, this.insert_space_after_shift_operator ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
717 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_RELATIONAL_OPERATOR, this.insert_space_after_relational_operator ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
718 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_BITWISE_OPERATOR, this.insert_space_after_bitwise_operator ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
719 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_LOGICAL_OPERATOR, this.insert_space_after_logical_operator ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
720 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_CLOSING_ANGLE_BRACKET_IN_TYPE_ARGUMENTS, this.insert_space_after_closing_angle_bracket_in_type_arguments ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
721 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_CLOSING_ANGLE_BRACKET_IN_TYPE_PARAMETERS, this.insert_space_after_closing_angle_bracket_in_type_parameters ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
722 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_CLOSING_PAREN_IN_CAST, this.insert_space_after_closing_paren_in_cast? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
723 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_CLOSING_BRACE_IN_BLOCK, this.insert_space_after_closing_brace_in_block? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
724 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COLON_IN_ASSERT, this.insert_space_after_colon_in_assert ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
725 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COLON_IN_CASE, this.insert_space_after_colon_in_case ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
726 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COLON_IN_CONDITIONAL, this.insert_space_after_colon_in_conditional ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
727 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COLON_IN_FOR, this.insert_space_after_colon_in_for ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
728 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COLON_IN_LABELED_STATEMENT, this.insert_space_after_colon_in_labeled_statement? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
729 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ALLOCATION_EXPRESSION, this.insert_space_after_comma_in_allocation_expression? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
730 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ANNOTATION, this.insert_space_after_comma_in_annotation? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
731 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ARRAY_INITIALIZER, this.insert_space_after_comma_in_array_initializer? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
732 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_CONSTRUCTOR_DECLARATION_PARAMETERS, this.insert_space_after_comma_in_constructor_declaration_parameters? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
733 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_CONSTRUCTOR_DECLARATION_THROWS, this.insert_space_after_comma_in_constructor_declaration_throws? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
734 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ENUM_CONSTANT_ARGUMENTS, this.insert_space_after_comma_in_enum_constant_arguments ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
735 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ENUM_DECLARATIONS, this.insert_space_after_comma_in_enum_declarations ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
736 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_EXPLICIT_CONSTRUCTOR_CALL_ARGUMENTS, this.insert_space_after_comma_in_explicit_constructor_call_arguments? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
737 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_FOR_INCREMENTS, this.insert_space_after_comma_in_for_increments? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
738 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_FOR_INITS, this.insert_space_after_comma_in_for_inits? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
739 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_METHOD_INVOCATION_ARGUMENTS, this.insert_space_after_comma_in_method_invocation_arguments? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
740 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_METHOD_DECLARATION_PARAMETERS, this.insert_space_after_comma_in_method_declaration_parameters? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
741 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_METHOD_DECLARATION_THROWS, this.insert_space_after_comma_in_method_declaration_throws? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
742 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_MULTIPLE_FIELD_DECLARATIONS, this.insert_space_after_comma_in_multiple_field_declarations? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
743 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_MULTIPLE_LOCAL_DECLARATIONS, this.insert_space_after_comma_in_multiple_local_declarations? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
744 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_PARAMETERIZED_TYPE_REFERENCE, this.insert_space_after_comma_in_parameterized_type_reference? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
745 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_RECORD_COMPONENTS, this.insert_space_after_comma_in_record_components? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
746 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_SUPERINTERFACES, this.insert_space_after_comma_in_superinterfaces? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
747 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_SWITCH_CASE_EXPRESSIONS, this.insert_space_after_comma_in_switch_case_expressions ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
748 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_TYPE_ARGUMENTS, this.insert_space_after_comma_in_type_arguments ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
749 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_TYPE_PARAMETERS, this.insert_space_after_comma_in_type_parameters ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
750 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_BRACKET_IN_ARRAY_ALLOCATION_EXPRESSION, this.insert_space_after_opening_bracket_in_array_allocation_expression? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
751 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ELLIPSIS, this.insert_space_after_ellipsis ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
752 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_LAMBDA_ARROW, this.insert_space_after_lambda_arrow ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
753 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_NOT_OPERATOR, this.insert_space_after_not_operator? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
754 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_ANGLE_BRACKET_IN_PARAMETERIZED_TYPE_REFERENCE, this.insert_space_after_opening_angle_bracket_in_parameterized_type_reference? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
755 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_ANGLE_BRACKET_IN_TYPE_ARGUMENTS, this.insert_space_after_opening_angle_bracket_in_type_arguments? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
756 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_ANGLE_BRACKET_IN_TYPE_PARAMETERS, this.insert_space_after_opening_angle_bracket_in_type_parameters? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
757 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_BRACKET_IN_ARRAY_REFERENCE, this.insert_space_after_opening_bracket_in_array_reference? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
758 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_BRACE_IN_ARRAY_INITIALIZER, this.insert_space_after_opening_brace_in_array_initializer? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
759 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_ANNOTATION, this.insert_space_after_opening_paren_in_annotation? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
760 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_CAST, this.insert_space_after_opening_paren_in_cast? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
761 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_CATCH, this.insert_space_after_opening_paren_in_catch? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
762 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_CONSTRUCTOR_DECLARATION, this.insert_space_after_opening_paren_in_constructor_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
763 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_ENUM_CONSTANT, this.insert_space_after_opening_paren_in_enum_constant? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
764 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_FOR, this.insert_space_after_opening_paren_in_for? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
765 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_IF, this.insert_space_after_opening_paren_in_if? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
766 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_METHOD_DECLARATION, this.insert_space_after_opening_paren_in_method_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
767 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_METHOD_INVOCATION, this.insert_space_after_opening_paren_in_method_invocation? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
768 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_PARENTHESIZED_EXPRESSION, this.insert_space_after_opening_paren_in_parenthesized_expression? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
769 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_RECORD_DECLARATION, this.insert_space_after_opening_paren_in_record_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
770 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_SWITCH, this.insert_space_after_opening_paren_in_switch? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
771 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_SYNCHRONIZED, this.insert_space_after_opening_paren_in_synchronized? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
772 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_TRY, this.insert_space_after_opening_paren_in_try? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
773 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_WHILE, this.insert_space_after_opening_paren_in_while? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
774 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_POSTFIX_OPERATOR, this.insert_space_after_postfix_operator? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
775 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_PREFIX_OPERATOR, this.insert_space_after_prefix_operator? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
776 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_QUESTION_IN_CONDITIONAL, this.insert_space_after_question_in_conditional? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
777 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_QUESTION_IN_WILDCARD, this.insert_space_after_question_in_wilcard? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
778 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_SEMICOLON_IN_FOR, this.insert_space_after_semicolon_in_for? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
779 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_SEMICOLON_IN_TRY_RESOURCES, this.insert_space_after_semicolon_in_try_resources? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
780 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_UNARY_OPERATOR, this.insert_space_after_unary_operator? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
781 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_AND_IN_TYPE_PARAMETER, this.insert_space_before_and_in_type_parameter ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
782 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ARROW_IN_SWITCH_CASE, this.insert_space_before_arrow_in_switch_case ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
783 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ARROW_IN_SWITCH_DEFAULT, this.insert_space_before_arrow_in_switch_default ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
784 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_AT_IN_ANNOTATION_TYPE_DECLARATION, this.insert_space_before_at_in_annotation_type_declaration ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
785 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ASSIGNMENT_OPERATOR, this.insert_space_before_assignment_operator? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
786 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_MULTIPLICATIVE_OPERATOR, this.insert_space_before_multiplicative_operator ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
787 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ADDITIVE_OPERATOR, this.insert_space_before_additive_operator ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
788 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_STRING_CONCATENATION, this.insert_space_before_string_concatenation ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
789 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_SHIFT_OPERATOR, this.insert_space_before_shift_operator ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
790 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_RELATIONAL_OPERATOR, this.insert_space_before_relational_operator ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
791 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_BITWISE_OPERATOR, this.insert_space_before_bitwise_operator ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
792 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_LOGICAL_OPERATOR, this.insert_space_before_logical_operator ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
793 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_ANGLE_BRACKET_IN_PARAMETERIZED_TYPE_REFERENCE, this.insert_space_before_closing_angle_bracket_in_parameterized_type_reference? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
794 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_ANGLE_BRACKET_IN_TYPE_ARGUMENTS, this.insert_space_before_closing_angle_bracket_in_type_arguments? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
795 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_ANGLE_BRACKET_IN_TYPE_PARAMETERS, this.insert_space_before_closing_angle_bracket_in_type_parameters? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
796 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER, this.insert_space_before_closing_brace_in_array_initializer? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
797 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_BRACKET_IN_ARRAY_ALLOCATION_EXPRESSION, this.insert_space_before_closing_bracket_in_array_allocation_expression? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
798 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_BRACKET_IN_ARRAY_REFERENCE, this.insert_space_before_closing_bracket_in_array_reference? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
799 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_ANNOTATION, this.insert_space_before_closing_paren_in_annotation? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
800 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_CAST, this.insert_space_before_closing_paren_in_cast? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
801 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_CATCH, this.insert_space_before_closing_paren_in_catch? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
802 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_CONSTRUCTOR_DECLARATION, this.insert_space_before_closing_paren_in_constructor_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
803 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_ENUM_CONSTANT, this.insert_space_before_closing_paren_in_enum_constant? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
804 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_FOR, this.insert_space_before_closing_paren_in_for? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
805 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_IF, this.insert_space_before_closing_paren_in_if? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
806 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_METHOD_DECLARATION, this.insert_space_before_closing_paren_in_method_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
807 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_METHOD_INVOCATION, this.insert_space_before_closing_paren_in_method_invocation? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
808 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_PARENTHESIZED_EXPRESSION, this.insert_space_before_closing_paren_in_parenthesized_expression? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
809 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_RECORD_DECLARATION, this.insert_space_before_closing_paren_in_record_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
810 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_SWITCH, this.insert_space_before_closing_paren_in_switch? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
811 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_SYNCHRONIZED, this.insert_space_before_closing_paren_in_synchronized? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
812 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_TRY, this.insert_space_before_closing_paren_in_try? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
813 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_WHILE, this.insert_space_before_closing_paren_in_while? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
814 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COLON_IN_ASSERT, this.insert_space_before_colon_in_assert? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
815 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COLON_IN_CASE, this.insert_space_before_colon_in_case? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
816 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COLON_IN_CONDITIONAL, this.insert_space_before_colon_in_conditional? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
817 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COLON_IN_DEFAULT, this.insert_space_before_colon_in_default? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
818 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COLON_IN_FOR, this.insert_space_before_colon_in_for ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
819 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COLON_IN_LABELED_STATEMENT, this.insert_space_before_colon_in_labeled_statement? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
820 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_ALLOCATION_EXPRESSION, this.insert_space_before_comma_in_allocation_expression? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
821 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_ANNOTATION, this.insert_space_before_comma_in_annotation? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
822 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_ARRAY_INITIALIZER, this.insert_space_before_comma_in_array_initializer? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
823 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_CONSTRUCTOR_DECLARATION_PARAMETERS, this.insert_space_before_comma_in_constructor_declaration_parameters? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
824 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_CONSTRUCTOR_DECLARATION_THROWS, this.insert_space_before_comma_in_constructor_declaration_throws? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
825 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_ENUM_CONSTANT_ARGUMENTS, this.insert_space_before_comma_in_enum_constant_arguments? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
826 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_ENUM_DECLARATIONS, this.insert_space_before_comma_in_enum_declarations? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
827 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_EXPLICIT_CONSTRUCTOR_CALL_ARGUMENTS, this.insert_space_before_comma_in_explicit_constructor_call_arguments? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
828 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_FOR_INCREMENTS, this.insert_space_before_comma_in_for_increments? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
829 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_FOR_INITS, this.insert_space_before_comma_in_for_inits? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
830 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_METHOD_INVOCATION_ARGUMENTS, this.insert_space_before_comma_in_method_invocation_arguments? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
831 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_METHOD_DECLARATION_PARAMETERS, this.insert_space_before_comma_in_method_declaration_parameters? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
832 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_METHOD_DECLARATION_THROWS, this.insert_space_before_comma_in_method_declaration_throws? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
833 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_MULTIPLE_FIELD_DECLARATIONS, this.insert_space_before_comma_in_multiple_field_declarations? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
834 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_MULTIPLE_LOCAL_DECLARATIONS, this.insert_space_before_comma_in_multiple_local_declarations? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
835 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_RECORD_COMPONENTS, this.insert_space_before_comma_in_record_components? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
836 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_SUPERINTERFACES, this.insert_space_before_comma_in_superinterfaces? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
837 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_SWITCH_CASE_EXPRESSIONS, this.insert_space_before_comma_in_switch_case_expressions? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
838 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_TYPE_ARGUMENTS, this.insert_space_before_comma_in_type_arguments ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
839 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_TYPE_PARAMETERS, this.insert_space_before_comma_in_type_parameters? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
840 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_PARAMETERIZED_TYPE_REFERENCE, this.insert_space_before_comma_in_parameterized_type_reference? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
841 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ELLIPSIS, this.insert_space_before_ellipsis ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
842 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_LAMBDA_ARROW, this.insert_space_before_lambda_arrow ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
843 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_ANGLE_BRACKET_IN_PARAMETERIZED_TYPE_REFERENCE, this.insert_space_before_opening_angle_bracket_in_parameterized_type_reference? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
844 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_ANGLE_BRACKET_IN_TYPE_ARGUMENTS, this.insert_space_before_opening_angle_bracket_in_type_arguments? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
845 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_ANGLE_BRACKET_IN_TYPE_PARAMETERS, this.insert_space_before_opening_angle_bracket_in_type_parameters? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
846 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ANNOTATION_TYPE_DECLARATION, this.insert_space_before_opening_brace_in_annotation_type_declaration ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
847 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ANONYMOUS_TYPE_DECLARATION, this.insert_space_before_opening_brace_in_anonymous_type_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
848 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ARRAY_INITIALIZER, this.insert_space_before_opening_brace_in_array_initializer? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
849 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_BLOCK, this.insert_space_before_opening_brace_in_block? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
850 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_CONSTRUCTOR_DECLARATION, this.insert_space_before_opening_brace_in_constructor_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
851 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ENUM_CONSTANT, this.insert_space_before_opening_brace_in_enum_constant? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
852 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ENUM_DECLARATION, this.insert_space_before_opening_brace_in_enum_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
853 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_METHOD_DECLARATION, this.insert_space_before_opening_brace_in_method_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
854 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_RECORD_CONSTRUCTOR, this.insert_space_before_opening_brace_in_record_constructor? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
855 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_RECORD_DECLARATION, this.insert_space_before_opening_brace_in_record_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
856 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_TYPE_DECLARATION, this.insert_space_before_opening_brace_in_type_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
857 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACKET_IN_ARRAY_ALLOCATION_EXPRESSION, this.insert_space_before_opening_bracket_in_array_allocation_expression ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
858 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACKET_IN_ARRAY_REFERENCE, this.insert_space_before_opening_bracket_in_array_reference? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
859 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACKET_IN_ARRAY_TYPE_REFERENCE, this.insert_space_before_opening_bracket_in_array_type_reference? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
860 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_ANNOTATION, this.insert_space_before_opening_paren_in_annotation? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
861 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_ANNOTATION_TYPE_MEMBER_DECLARATION, this.insert_space_before_opening_paren_in_annotation_type_member_declaration ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
862 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_CATCH, this.insert_space_before_opening_paren_in_catch? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
863 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_CONSTRUCTOR_DECLARATION, this.insert_space_before_opening_paren_in_constructor_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
864 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_ENUM_CONSTANT, this.insert_space_before_opening_paren_in_enum_constant? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
865 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_FOR, this.insert_space_before_opening_paren_in_for? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
866 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_IF, this.insert_space_before_opening_paren_in_if? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
867 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_METHOD_INVOCATION, this.insert_space_before_opening_paren_in_method_invocation? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
868 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_METHOD_DECLARATION, this.insert_space_before_opening_paren_in_method_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
869 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_RECORD_DECLARATION, this.insert_space_before_opening_paren_in_record_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
870 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_SWITCH, this.insert_space_before_opening_paren_in_switch? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
871 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_SWITCH, this.insert_space_before_opening_brace_in_switch? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
872 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_SYNCHRONIZED, this.insert_space_before_opening_paren_in_synchronized? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
873 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_TRY, this.insert_space_before_opening_paren_in_try? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
874 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_PARENTHESIZED_EXPRESSION, this.insert_space_before_opening_paren_in_parenthesized_expression? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
875 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_WHILE, this.insert_space_before_opening_paren_in_while? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
876 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_PARENTHESIZED_EXPRESSION_IN_RETURN, this.insert_space_before_parenthesized_expression_in_return ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
877 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_PARENTHESIZED_EXPRESSION_IN_THROW, this.insert_space_before_parenthesized_expression_in_throw ? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
878 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_POSTFIX_OPERATOR, this.insert_space_before_postfix_operator? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
879 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_PREFIX_OPERATOR, this.insert_space_before_prefix_operator? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
880 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_QUESTION_IN_CONDITIONAL, this.insert_space_before_question_in_conditional? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
881 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_QUESTION_IN_WILDCARD, this.insert_space_before_question_in_wilcard? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
882 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_SEMICOLON, this.insert_space_before_semicolon? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
883 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_SEMICOLON_IN_FOR, this.insert_space_before_semicolon_in_for? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
884 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_SEMICOLON_IN_TRY_RESOURCES, this.insert_space_before_semicolon_in_try_resources? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
885 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_UNARY_OPERATOR, this.insert_space_before_unary_operator? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
886 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_BRACKETS_IN_ARRAY_TYPE_REFERENCE, this.insert_space_between_brackets_in_array_type_reference? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
887 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_BRACES_IN_ARRAY_INITIALIZER, this.insert_space_between_empty_braces_in_array_initializer? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
888 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_BRACKETS_IN_ARRAY_ALLOCATION_EXPRESSION, this.insert_space_between_empty_brackets_in_array_allocation_expression? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
889 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_ANNOTATION_TYPE_MEMBER_DECLARATION, this.insert_space_between_empty_parens_in_annotation_type_member_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
890 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_CONSTRUCTOR_DECLARATION, this.insert_space_between_empty_parens_in_constructor_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
891 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_ENUM_CONSTANT, this.insert_space_between_empty_parens_in_enum_constant? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
892 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_METHOD_DECLARATION, this.insert_space_between_empty_parens_in_method_declaration? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
893 		options.put(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_METHOD_INVOCATION, this.insert_space_between_empty_parens_in_method_invocation? JavaCore.INSERT : JavaCore.DO_NOT_INSERT);
894 		options.put(DefaultCodeFormatterConstants.FORMATTER_COMPACT_ELSE_IF, this.compact_else_if ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
895 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_GUARDIAN_CLAUSE_ON_ONE_LINE, this.keep_guardian_clause_on_one_line ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
896 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_ELSE_STATEMENT_ON_SAME_LINE, this.keep_else_statement_on_same_line ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
897 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_EMPTY_ARRAY_INITIALIZER_ON_ONE_LINE, this.keep_empty_array_initializer_on_one_line ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
898 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_SIMPLE_IF_ON_ONE_LINE, this.keep_simple_if_on_one_line ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
899 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_THEN_STATEMENT_ON_SAME_LINE, this.keep_then_statement_on_same_line ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
900 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_SIMPLE_FOR_BODY_ON_SAME_LINE, this.keep_simple_for_body_on_same_line ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
901 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_SIMPLE_WHILE_BODY_ON_SAME_LINE, this.keep_simple_while_body_on_same_line ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
902 		options.put(DefaultCodeFormatterConstants.FORMATTER_KEEP_SIMPLE_DO_WHILE_BODY_ON_SAME_LINE, this.keep_simple_do_while_body_on_same_line ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
903 		options.put(DefaultCodeFormatterConstants.FORMATTER_NEVER_INDENT_BLOCK_COMMENTS_ON_FIRST_COLUMN, this.never_indent_block_comments_on_first_column ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
904 		options.put(DefaultCodeFormatterConstants.FORMATTER_NEVER_INDENT_LINE_COMMENTS_ON_FIRST_COLUMN, this.never_indent_line_comments_on_first_column ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
905 		options.put(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE, Integer.toString(this.number_of_empty_lines_to_preserve));
906 		options.put(DefaultCodeFormatterConstants.FORMATTER_JOIN_WRAPPED_LINES, this.join_wrapped_lines ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
907 		options.put(DefaultCodeFormatterConstants.FORMATTER_JOIN_LINES_IN_COMMENTS, this.join_lines_in_comments ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
908 		options.put(DefaultCodeFormatterConstants.FORMATTER_PUT_EMPTY_STATEMENT_ON_NEW_LINE, this.put_empty_statement_on_new_line ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
909 		options.put(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT, Integer.toString(this.page_width));
910 		switch(this.tab_char) {
911 			case SPACE :
912 				options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaCore.SPACE);
913 				break;
914 			case TAB :
915 				options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, JavaCore.TAB);
916 				break;
917 			case MIXED :
918 				options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR, DefaultCodeFormatterConstants.MIXED);
919 				break;
920 		}
921 		options.put(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE, Integer.toString(this.tab_char == SPACE ? this.indentation_size : this.tab_size)); // reverse values swapping performed by IndentationTabPage
922 		options.put(DefaultCodeFormatterConstants.FORMATTER_USE_TABS_ONLY_FOR_LEADING_INDENTATIONS, this.use_tabs_only_for_leading_indentations ?  DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
923 
924 		int textBlockIndentation;
925 		switch (this.text_block_indentation) {
926 			case Alignment.M_INDENT_PRESERVE:
927 				textBlockIndentation = DefaultCodeFormatterConstants.INDENT_PRESERVE;
928 				break;
929 			case Alignment.M_INDENT_BY_ONE:
930 				textBlockIndentation = DefaultCodeFormatterConstants.INDENT_BY_ONE;
931 				break;
932 			case Alignment.M_INDENT_DEFAULT:
933 				textBlockIndentation = DefaultCodeFormatterConstants.INDENT_DEFAULT;
934 				break;
935 			case Alignment.M_INDENT_ON_COLUMN:
936 				textBlockIndentation = DefaultCodeFormatterConstants.INDENT_ON_COLUMN;
937 				break;
938 			default:
939 				throw new IllegalArgumentException("Invalid text block indentation: " + this.text_block_indentation); //$NON-NLS-1$
940 		}
941 		options.put(DefaultCodeFormatterConstants.FORMATTER_TEXT_BLOCK_INDENTATION, Integer.toString(textBlockIndentation));
942 
943 		options.put(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_MULTIPLICATIVE_OPERATOR, this.wrap_before_multiplicative_operator ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
944 		options.put(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_ADDITIVE_OPERATOR, this.wrap_before_additive_operator ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
945 		options.put(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_STRING_CONCATENATION, this.wrap_before_string_concatenation ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
946 		options.put(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_SHIFT_OPERATOR, this.wrap_before_shift_operator ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
947 		options.put(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_RELATIONAL_OPERATOR, this.wrap_before_relational_operator ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
948 		options.put(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_BITWISE_OPERATOR, this.wrap_before_bitwise_operator ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
949 		options.put(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_LOGICAL_OPERATOR, this.wrap_before_logical_operator ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
950 		options.put(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_OR_OPERATOR_MULTICATCH, this.wrap_before_or_operator_multicatch ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
951 		options.put(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_CONDITIONAL_OPERATOR, this.wrap_before_conditional_operator ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
952 		options.put(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_ASSIGNMENT_OPERATOR, this.wrap_before_assignment_operator ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
953 		options.put(DefaultCodeFormatterConstants.FORMATTER_DISABLING_TAG, this.disabling_tag == null ? Util.EMPTY_STRING : new String(this.disabling_tag));
954 		options.put(DefaultCodeFormatterConstants.FORMATTER_ENABLING_TAG, this.enabling_tag == null ? Util.EMPTY_STRING : new String(this.enabling_tag));
955 		options.put(DefaultCodeFormatterConstants.FORMATTER_USE_ON_OFF_TAGS, this.use_tags ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
956 		options.put(DefaultCodeFormatterConstants.FORMATTER_WRAP_OUTER_EXPRESSIONS_WHEN_NESTED, this.wrap_outer_expressions_when_nested ? DefaultCodeFormatterConstants.TRUE : DefaultCodeFormatterConstants.FALSE);
957 		return options;
958 	}
959 
set(Map<String, String> settings)960 	public void set(Map<String, String> settings) {
961 		final Object alignmentForArgumentsInAllocationExpressionOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_ALLOCATION_EXPRESSION);
962 		if (alignmentForArgumentsInAllocationExpressionOption != null) {
963 			try {
964 				this.alignment_for_arguments_in_allocation_expression = Integer.parseInt((String) alignmentForArgumentsInAllocationExpressionOption);
965 			} catch (NumberFormatException | ClassCastException e) {
966 				this.alignment_for_arguments_in_allocation_expression = Alignment.M_COMPACT_SPLIT;
967 			}
968 		}
969 		final Object alignmentForArgumentsInAnnotationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_ANNOTATION);
970 		if (alignmentForArgumentsInAnnotationOption != null) {
971 			try {
972 				this.alignment_for_arguments_in_annotation = Integer.parseInt((String) alignmentForArgumentsInAnnotationOption);
973 			} catch (NumberFormatException | ClassCastException e) {
974 				this.alignment_for_arguments_in_annotation = Alignment.M_NO_ALIGNMENT;
975 			}
976 		}
977 		final Object alignmentForArgumentsInEnumConstantOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_ENUM_CONSTANT);
978 		if (alignmentForArgumentsInEnumConstantOption != null) {
979 			try {
980 				this.alignment_for_arguments_in_enum_constant = Integer.parseInt((String) alignmentForArgumentsInEnumConstantOption);
981 			} catch (NumberFormatException | ClassCastException e) {
982 				this.alignment_for_arguments_in_enum_constant = Alignment.M_COMPACT_SPLIT;
983 			}
984 		}
985 		final Object alignmentForArgumentsInExplicitConstructorCallOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_EXPLICIT_CONSTRUCTOR_CALL);
986 		if (alignmentForArgumentsInExplicitConstructorCallOption != null) {
987 			try {
988 				this.alignment_for_arguments_in_explicit_constructor_call = Integer.parseInt((String) alignmentForArgumentsInExplicitConstructorCallOption);
989 			} catch (NumberFormatException | ClassCastException e) {
990 				this.alignment_for_arguments_in_explicit_constructor_call = Alignment.M_COMPACT_SPLIT;
991 			}
992 		}
993 		final Object alignmentForArgumentsInMethodInvocationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_METHOD_INVOCATION);
994 		if (alignmentForArgumentsInMethodInvocationOption != null) {
995 			try {
996 				this.alignment_for_arguments_in_method_invocation = Integer.parseInt((String) alignmentForArgumentsInMethodInvocationOption);
997 			} catch (NumberFormatException | ClassCastException e) {
998 				this.alignment_for_arguments_in_method_invocation = Alignment.M_COMPACT_SPLIT;
999 			}
1000 		}
1001 		final Object alignmentForArgumentsInQualifiedAllocationExpressionOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ARGUMENTS_IN_QUALIFIED_ALLOCATION_EXPRESSION);
1002 		if (alignmentForArgumentsInQualifiedAllocationExpressionOption != null) {
1003 			try {
1004 				this.alignment_for_arguments_in_qualified_allocation_expression = Integer.parseInt((String) alignmentForArgumentsInQualifiedAllocationExpressionOption);
1005 			} catch (NumberFormatException | ClassCastException e) {
1006 				this.alignment_for_arguments_in_qualified_allocation_expression = Alignment.M_COMPACT_SPLIT;
1007 			}
1008 		}
1009 		final Object alignmentForAssignmentOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ASSIGNMENT);
1010 		if (alignmentForAssignmentOption != null) {
1011 			try {
1012 				this.alignment_for_assignment = Integer.parseInt((String) alignmentForAssignmentOption);
1013 			} catch (NumberFormatException | ClassCastException e) {
1014 				this.alignment_for_assignment =  Alignment.M_ONE_PER_LINE_SPLIT;
1015 			}
1016 		}
1017 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_MULTIPLICATIVE_OPERATOR,
1018 				v-> this.alignment_for_multiplicative_operator = v);
1019 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ADDITIVE_OPERATOR,
1020 				v -> this.alignment_for_additive_operator = v);
1021 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_STRING_CONCATENATION,
1022 				v -> this.alignment_for_string_concatenation = v);
1023 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SHIFT_OPERATOR,
1024 				v -> this.alignment_for_shift_operator = v);
1025 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_RELATIONAL_OPERATOR,
1026 				v -> this.alignment_for_relational_operator = v);
1027 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BITWISE_OPERATOR,
1028 				v -> this.alignment_for_bitwise_operator = v);
1029 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_LOGICAL_OPERATOR,
1030 				v -> this.alignment_for_logical_operator = v);
1031 		final Object alignmentForCompactIfOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_COMPACT_IF);
1032 		if (alignmentForCompactIfOption != null) {
1033 			try {
1034 				this.alignment_for_compact_if = Integer.parseInt((String) alignmentForCompactIfOption);
1035 			} catch (NumberFormatException | ClassCastException e) {
1036 				this.alignment_for_compact_if = Alignment.M_ONE_PER_LINE_SPLIT | Alignment.M_INDENT_BY_ONE;
1037 			}
1038 		}
1039 		final Object alignmentForCompactLoopOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_COMPACT_LOOP);
1040 		if (alignmentForCompactLoopOption != null)
1041 			this.alignment_for_compact_loop = toInt(alignmentForCompactLoopOption, Alignment.M_ONE_PER_LINE_SPLIT | Alignment.M_INDENT_BY_ONE);
1042 
1043 		final Object alignmentForConditionalExpressionOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION);
1044 		if (alignmentForConditionalExpressionOption != null) {
1045 			try {
1046 				this.alignment_for_conditional_expression = Integer.parseInt((String) alignmentForConditionalExpressionOption);
1047 			} catch (NumberFormatException | ClassCastException e) {
1048 				this.alignment_for_conditional_expression = Alignment.M_ONE_PER_LINE_SPLIT;
1049 			}
1050 		}
1051 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION_CHAIN,
1052 				v -> this.alignment_for_conditional_expression_chain = v);
1053 		final Object alignmentForEnumConstantsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ENUM_CONSTANTS);
1054 		if (alignmentForEnumConstantsOption != null) {
1055 			try {
1056 				this.alignment_for_enum_constants = Integer.parseInt((String) alignmentForEnumConstantsOption);
1057 			} catch (NumberFormatException | ClassCastException e) {
1058 				this.alignment_for_enum_constants = Alignment.M_NO_ALIGNMENT;
1059 			}
1060 		}
1061 		final Object alignmentForExpressionsInArrayInitializerOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER);
1062 		if (alignmentForExpressionsInArrayInitializerOption != null) {
1063 			try {
1064 				this.alignment_for_expressions_in_array_initializer = Integer.parseInt((String) alignmentForExpressionsInArrayInitializerOption);
1065 			} catch (NumberFormatException | ClassCastException e) {
1066 				this.alignment_for_expressions_in_array_initializer = Alignment.M_COMPACT_SPLIT;
1067 			}
1068 		}
1069 		final Object alignmentForExpressionsInForLoopOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_FOR_LOOP_HEADER);
1070 		if (alignmentForExpressionsInForLoopOption != null)
1071 			this.alignment_for_expressions_in_for_loop_header = toInt(alignmentForExpressionsInForLoopOption, Alignment.M_NO_ALIGNMENT);
1072 
1073 		final Object alignmentForMethodDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_METHOD_DECLARATION);
1074 		if (alignmentForMethodDeclarationOption != null) {
1075 			try {
1076 				this.alignment_for_method_declaration = Integer.parseInt((String) alignmentForMethodDeclarationOption);
1077 			} catch(NumberFormatException | ClassCastException e) {
1078 				this.alignment_for_method_declaration = Alignment.M_COMPACT_SPLIT;
1079 			}
1080 		}
1081 		final Object alignmentForModuleStatementsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_MODULE_STATEMENTS);
1082 		if (alignmentForModuleStatementsOption != null)
1083 			this.alignment_for_module_statements = toInt(alignmentForModuleStatementsOption, Alignment.M_COMPACT_SPLIT);
1084 
1085 		final Object alignmentForMultipleFieldsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_MULTIPLE_FIELDS);
1086 		if (alignmentForMultipleFieldsOption != null) {
1087 			try {
1088 				this.alignment_for_multiple_fields = Integer.parseInt((String) alignmentForMultipleFieldsOption);
1089 			} catch (NumberFormatException | ClassCastException e) {
1090 				this.alignment_for_multiple_fields = Alignment.M_COMPACT_SPLIT;
1091 			}
1092 		}
1093 		final Object alignmentForParameterizeddTypeReferencesOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERIZED_TYPE_REFERENCES);
1094 		if (alignmentForParameterizeddTypeReferencesOption != null) {
1095 			this.alignment_for_parameterized_type_references = toInt(alignmentForParameterizeddTypeReferencesOption, Alignment.M_NO_ALIGNMENT);
1096 		}
1097 		final Object alignmentForParametersInConstructorDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION);
1098 		if (alignmentForParametersInConstructorDeclarationOption != null) {
1099 			try {
1100 				this.alignment_for_parameters_in_constructor_declaration = Integer.parseInt((String) alignmentForParametersInConstructorDeclarationOption);
1101 			} catch (NumberFormatException | ClassCastException e) {
1102 				this.alignment_for_parameters_in_constructor_declaration = Alignment.M_COMPACT_SPLIT;
1103 			}
1104 		}
1105 		final Object alignmentForParametersInMethodDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION);
1106 		if (alignmentForParametersInMethodDeclarationOption != null) {
1107 			try {
1108 				this.alignment_for_parameters_in_method_declaration = Integer.parseInt((String) alignmentForParametersInMethodDeclarationOption);
1109 			} catch(NumberFormatException | ClassCastException e) {
1110 				this.alignment_for_parameters_in_method_declaration = Alignment.M_COMPACT_SPLIT;
1111 			}
1112 		}
1113 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_RECORD_COMPONENTS,
1114 				v -> this.alignment_for_record_components = v);
1115 		final Object alignmentForResourcesInTry = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_RESOURCES_IN_TRY);
1116 		if (alignmentForResourcesInTry != null) {
1117 			try {
1118 				this.alignment_for_resources_in_try = Integer.parseInt((String) alignmentForResourcesInTry);
1119 			} catch(NumberFormatException | ClassCastException e) {
1120 				this.alignment_for_resources_in_try = Alignment.M_NEXT_PER_LINE_SPLIT;
1121 			}
1122 		}
1123 		final Object alignmentForSelectorInMethodInvocationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SELECTOR_IN_METHOD_INVOCATION);
1124 		if (alignmentForSelectorInMethodInvocationOption != null) {
1125 			try {
1126 				this.alignment_for_selector_in_method_invocation = Integer.parseInt((String) alignmentForSelectorInMethodInvocationOption);
1127 			} catch(NumberFormatException | ClassCastException e) {
1128 				this.alignment_for_selector_in_method_invocation = Alignment.M_COMPACT_SPLIT;
1129 			}
1130 		}
1131 		final Object alignmentForSuperclassInTypeDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SUPERCLASS_IN_TYPE_DECLARATION);
1132 		if (alignmentForSuperclassInTypeDeclarationOption != null) {
1133 			try {
1134 				this.alignment_for_superclass_in_type_declaration = Integer.parseInt((String) alignmentForSuperclassInTypeDeclarationOption);
1135 			} catch(NumberFormatException | ClassCastException e) {
1136 				this.alignment_for_superclass_in_type_declaration = Alignment.M_NEXT_SHIFTED_SPLIT;
1137 			}
1138 		}
1139 		final Object alignmentForSuperinterfacesInEnumDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SUPERINTERFACES_IN_ENUM_DECLARATION);
1140 		if (alignmentForSuperinterfacesInEnumDeclarationOption != null) {
1141 			try {
1142 				this.alignment_for_superinterfaces_in_enum_declaration = Integer.parseInt((String) alignmentForSuperinterfacesInEnumDeclarationOption);
1143 			} catch(NumberFormatException | ClassCastException e) {
1144 				this.alignment_for_superinterfaces_in_enum_declaration = Alignment.M_NEXT_SHIFTED_SPLIT;
1145 			}
1146 		}
1147 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SUPERINTERFACES_IN_RECORD_DECLARATION,
1148 				v -> this.alignment_for_superinterfaces_in_record_declaration = v);
1149 		final Object alignmentForSuperinterfacesInTypeDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_SUPERINTERFACES_IN_TYPE_DECLARATION);
1150 		if (alignmentForSuperinterfacesInTypeDeclarationOption != null) {
1151 			try {
1152 				this.alignment_for_superinterfaces_in_type_declaration = Integer.parseInt((String) alignmentForSuperinterfacesInTypeDeclarationOption);
1153 			} catch(NumberFormatException | ClassCastException e) {
1154 				this.alignment_for_superinterfaces_in_type_declaration = Alignment.M_NEXT_SHIFTED_SPLIT;
1155 			}
1156 		}
1157 		final Object alignmentForThrowsClauseInConstructorDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_THROWS_CLAUSE_IN_CONSTRUCTOR_DECLARATION);
1158 		if (alignmentForThrowsClauseInConstructorDeclarationOption != null) {
1159 			try {
1160 				this.alignment_for_throws_clause_in_constructor_declaration = Integer.parseInt((String) alignmentForThrowsClauseInConstructorDeclarationOption);
1161 			} catch(NumberFormatException | ClassCastException e) {
1162 				this.alignment_for_throws_clause_in_constructor_declaration = Alignment.M_COMPACT_SPLIT;
1163 			}
1164 		}
1165 		final Object alignmentForThrowsClauseInMethodDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_THROWS_CLAUSE_IN_METHOD_DECLARATION);
1166 		if (alignmentForThrowsClauseInMethodDeclarationOption != null) {
1167 			try {
1168 				this.alignment_for_throws_clause_in_method_declaration = Integer.parseInt((String) alignmentForThrowsClauseInMethodDeclarationOption);
1169 			} catch(NumberFormatException | ClassCastException e) {
1170 				this.alignment_for_throws_clause_in_method_declaration = Alignment.M_COMPACT_SPLIT;
1171 			}
1172 		}
1173 		final Object alignmentForTypeArguments = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_TYPE_ARGUMENTS);
1174 		if (alignmentForTypeArguments != null) {
1175 			this.alignment_for_type_arguments = toInt(alignmentForTypeArguments, Alignment.M_NO_ALIGNMENT);
1176 		}
1177 		final Object alignmentForTypeParameters = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_TYPE_PARAMETERS);
1178 		if (alignmentForTypeParameters != null) {
1179 			this.alignment_for_type_parameters = toInt(alignmentForTypeParameters, Alignment.M_NO_ALIGNMENT);
1180 		}
1181 		final Object alignmentForUnionTypeInMulticatch = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_UNION_TYPE_IN_MULTICATCH);
1182 		if (alignmentForUnionTypeInMulticatch != null) {
1183 			try {
1184 				this.alignment_for_union_type_in_multicatch = Integer.parseInt((String) alignmentForUnionTypeInMulticatch);
1185 			} catch(NumberFormatException | ClassCastException e) {
1186 				this.alignment_for_union_type_in_multicatch = Alignment.M_COMPACT_SPLIT;
1187 			}
1188 		}
1189 		final Object alignTypeMembersOnColumnsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGN_TYPE_MEMBERS_ON_COLUMNS);
1190 		if (alignTypeMembersOnColumnsOption != null) {
1191 			this.align_type_members_on_columns = DefaultCodeFormatterConstants.TRUE.equals(alignTypeMembersOnColumnsOption);
1192 		}
1193 		final Object alignVariableDeclarationsOnColumnsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGN_VARIABLE_DECLARATIONS_ON_COLUMNS);
1194 		if (alignVariableDeclarationsOnColumnsOption != null) {
1195 			this.align_variable_declarations_on_columns = DefaultCodeFormatterConstants.TRUE.equals(alignVariableDeclarationsOnColumnsOption);
1196 		}
1197 		final Object alignAssignmentStatementsOnColumnsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGN_ASSIGNMENT_STATEMENTS_ON_COLUMNS);
1198 		if (alignAssignmentStatementsOnColumnsOption != null) {
1199 			this.align_assignment_statements_on_columns = DefaultCodeFormatterConstants.TRUE.equals(alignAssignmentStatementsOnColumnsOption);
1200 		}
1201 		final Object alignGroupSepartionBlankLinesOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGN_FIELDS_GROUPING_BLANK_LINES);
1202 		if (alignTypeMembersOnColumnsOption != null) {
1203 			try {
1204 				this.align_fields_grouping_blank_lines = Integer.parseInt((String) alignGroupSepartionBlankLinesOption);
1205 			} catch(NumberFormatException | ClassCastException e) {
1206 				this.align_fields_grouping_blank_lines = Integer.MAX_VALUE;
1207 			}
1208 		}
1209 		final Object alignWithSpaces = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGN_WITH_SPACES);
1210 		if (alignWithSpaces != null) {
1211 			this.align_with_spaces = DefaultCodeFormatterConstants.TRUE.equals(alignWithSpaces);
1212 		}
1213 		final Object bracePositionForAnnotationTypeDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANNOTATION_TYPE_DECLARATION);
1214 		if (bracePositionForAnnotationTypeDeclarationOption != null) {
1215 			try {
1216 				this.brace_position_for_annotation_type_declaration = (String) bracePositionForAnnotationTypeDeclarationOption;
1217 			} catch(ClassCastException e) {
1218 				this.brace_position_for_annotation_type_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
1219 			}
1220 		}
1221 		final Object bracePositionForAnonymousTypeDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION);
1222 		if (bracePositionForAnonymousTypeDeclarationOption != null) {
1223 			try {
1224 				this.brace_position_for_anonymous_type_declaration = (String) bracePositionForAnonymousTypeDeclarationOption;
1225 			} catch(ClassCastException e) {
1226 				this.brace_position_for_anonymous_type_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
1227 			}
1228 		}
1229 		final Object bracePositionForArrayInitializerOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ARRAY_INITIALIZER);
1230 		if (bracePositionForArrayInitializerOption != null) {
1231 			try {
1232 				this.brace_position_for_array_initializer = (String) bracePositionForArrayInitializerOption;
1233 			} catch(ClassCastException e) {
1234 				this.brace_position_for_array_initializer = DefaultCodeFormatterConstants.END_OF_LINE;
1235 			}
1236 		}
1237 		final Object bracePositionForBlockOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK);
1238 		if (bracePositionForBlockOption != null) {
1239 			try {
1240 				this.brace_position_for_block = (String) bracePositionForBlockOption;
1241 			} catch(ClassCastException e) {
1242 				this.brace_position_for_block = DefaultCodeFormatterConstants.END_OF_LINE;
1243 			}
1244 		}
1245 		final Object bracePositionForBlockInCaseOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_BLOCK_IN_CASE);
1246 		if (bracePositionForBlockInCaseOption != null) {
1247 			try {
1248 				this.brace_position_for_block_in_case = (String) bracePositionForBlockInCaseOption;
1249 			} catch(ClassCastException e) {
1250 				this.brace_position_for_block_in_case = DefaultCodeFormatterConstants.END_OF_LINE;
1251 			}
1252 		}
1253 		final Object bracePositionForConstructorDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION);
1254 		if (bracePositionForConstructorDeclarationOption != null) {
1255 			try {
1256 				this.brace_position_for_constructor_declaration = (String) bracePositionForConstructorDeclarationOption;
1257 			} catch(ClassCastException e) {
1258 				this.brace_position_for_constructor_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
1259 			}
1260 		}
1261 		final Object bracePositionForEnumConstantOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ENUM_CONSTANT);
1262 		if (bracePositionForEnumConstantOption != null) {
1263 			try {
1264 				this.brace_position_for_enum_constant = (String) bracePositionForEnumConstantOption;
1265 			} catch(ClassCastException e) {
1266 				this.brace_position_for_enum_constant = DefaultCodeFormatterConstants.END_OF_LINE;
1267 			}
1268 		}
1269 		final Object bracePositionForEnumDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_ENUM_DECLARATION);
1270 		if (bracePositionForEnumDeclarationOption != null) {
1271 			try {
1272 				this.brace_position_for_enum_declaration = (String) bracePositionForEnumDeclarationOption;
1273 			} catch(ClassCastException e) {
1274 				this.brace_position_for_enum_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
1275 			}
1276 		}
1277 		final Object bracePositionForLambdaDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_LAMBDA_BODY);
1278 		if (bracePositionForLambdaDeclarationOption != null) {
1279 			try {
1280 				this.brace_position_for_lambda_body = (String) bracePositionForLambdaDeclarationOption;
1281 			} catch(ClassCastException e) {
1282 				this.brace_position_for_lambda_body = DefaultCodeFormatterConstants.END_OF_LINE;
1283 			}
1284 		}
1285 		final Object bracePositionForMethodDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION);
1286 		if (bracePositionForMethodDeclarationOption != null) {
1287 			try {
1288 				this.brace_position_for_method_declaration = (String) bracePositionForMethodDeclarationOption;
1289 			} catch(ClassCastException e) {
1290 				this.brace_position_for_method_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
1291 			}
1292 		}
1293 		setString(settings, DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_RECORD_CONSTRUCTOR, BRACE_POSITION_VALUES,
1294 				v -> this.brace_position_for_record_constructor = v);
1295 		setString(settings, DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_RECORD_DECLARATION, BRACE_POSITION_VALUES,
1296 				v -> this.brace_position_for_record_declaration = v);
1297 		final Object bracePositionForSwitchOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_SWITCH);
1298 		if (bracePositionForSwitchOption != null) {
1299 			try {
1300 				this.brace_position_for_switch = (String) bracePositionForSwitchOption;
1301 			} catch(ClassCastException e) {
1302 				this.brace_position_for_switch = DefaultCodeFormatterConstants.END_OF_LINE;
1303 			}
1304 		}
1305 		final Object bracePositionForTypeDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION);
1306 		if (bracePositionForTypeDeclarationOption != null) {
1307 			try {
1308 				this.brace_position_for_type_declaration = (String) bracePositionForTypeDeclarationOption;
1309 			} catch(ClassCastException e) {
1310 				this.brace_position_for_type_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
1311 			}
1312 		}
1313 
1314 		final Object closingParenPositionInMethodDeclaration = settings.get(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_METHOD_DECLARATION);
1315 		if (closingParenPositionInMethodDeclaration != null) {
1316 			this.parenthesis_positions_in_method_declaration = toString(closingParenPositionInMethodDeclaration, DefaultCodeFormatterConstants.COMMON_LINES);
1317 		}
1318 		final Object closingParenPositionInMethodInvocation = settings.get(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_METHOD_INVOCATION);
1319 		if (closingParenPositionInMethodInvocation != null) {
1320 			this.parenthesis_positions_in_method_invocation = toString(closingParenPositionInMethodInvocation, DefaultCodeFormatterConstants.COMMON_LINES);
1321 		}
1322 		final Object closingParenPositionInEnumConstantDeclaration = settings.get(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_ENUM_CONSTANT_DECLARATION);
1323 		if (closingParenPositionInEnumConstantDeclaration != null) {
1324 			this.parenthesis_positions_in_enum_constant_declaration = toString(closingParenPositionInEnumConstantDeclaration, DefaultCodeFormatterConstants.COMMON_LINES);
1325 		}
1326 		setString(settings, DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_RECORD_DECLARATION, PARENTHESIS_POSITION_VALUES,
1327 			v -> this.parenthesis_positions_in_record_declaration = v);
1328 		final Object closingParenPositionInIfWhileStatement = settings.get(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_IF_WHILE_STATEMENT);
1329 		if (closingParenPositionInIfWhileStatement != null) {
1330 			this.parenthesis_positions_in_if_while_statement = toString(closingParenPositionInIfWhileStatement, DefaultCodeFormatterConstants.COMMON_LINES);
1331 		}
1332 		final Object closingParenPositionInForStatement = settings.get(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_FOR_STATEMENT);
1333 		if (closingParenPositionInForStatement != null) {
1334 			this.parenthesis_positions_in_for_statement = toString(closingParenPositionInForStatement, DefaultCodeFormatterConstants.COMMON_LINES);
1335 		}
1336 		final Object closingParenPositionInSwitchStatement = settings.get(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_SWITCH_STATEMENT);
1337 		if (closingParenPositionInSwitchStatement != null) {
1338 			this.parenthesis_positions_in_switch_statement = toString(closingParenPositionInSwitchStatement, DefaultCodeFormatterConstants.COMMON_LINES);
1339 		}
1340 		final Object closingParenPositionInTryClause = settings.get(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_TRY_CLAUSE);
1341 		if (closingParenPositionInTryClause != null) {
1342 			this.parenthesis_positions_in_try_clause = toString(closingParenPositionInTryClause, DefaultCodeFormatterConstants.COMMON_LINES);
1343 		}
1344 		final Object closingParenPositionInCatchClause = settings.get(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_CATCH_CLAUSE);
1345 		if (closingParenPositionInCatchClause != null) {
1346 			this.parenthesis_positions_in_catch_clause = toString(closingParenPositionInCatchClause, DefaultCodeFormatterConstants.COMMON_LINES);
1347 		}
1348 		final Object closingParenPositionInAnnotation = settings.get(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_ANNOTATION);
1349 		if (closingParenPositionInAnnotation != null) {
1350 			this.parenthesis_positions_in_annotation = toString(closingParenPositionInAnnotation, DefaultCodeFormatterConstants.COMMON_LINES);
1351 		}
1352 		final Object closingParenPositionInLambdaDeclaration = settings.get(DefaultCodeFormatterConstants.FORMATTER_PARENTHESES_POSITIONS_IN_LAMBDA_DECLARATION);
1353 		if (closingParenPositionInLambdaDeclaration != null) {
1354 			this.parenthesis_positions_in_lambda_declaration = toString(closingParenPositionInLambdaDeclaration, DefaultCodeFormatterConstants.COMMON_LINES);
1355 		}
1356 
1357 		final Object continuationIndentationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_CONTINUATION_INDENTATION);
1358 		if (continuationIndentationOption != null) {
1359 			try {
1360 				this.continuation_indentation = Integer.parseInt((String) continuationIndentationOption);
1361 			} catch(NumberFormatException | ClassCastException e) {
1362 				this.continuation_indentation = 2;
1363 			}
1364 		}
1365 		final Object continuationIndentationForArrayInitializerOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_CONTINUATION_INDENTATION_FOR_ARRAY_INITIALIZER);
1366 		if (continuationIndentationForArrayInitializerOption != null) {
1367 			try {
1368 				this.continuation_indentation_for_array_initializer = Integer.parseInt((String) continuationIndentationForArrayInitializerOption);
1369 			} catch(NumberFormatException | ClassCastException e) {
1370 				this.continuation_indentation_for_array_initializer = 2;
1371 			}
1372 		}
1373 		final Object blankLinesAfterImportsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_IMPORTS);
1374 		if (blankLinesAfterImportsOption != null) {
1375 			try {
1376 				this.blank_lines_after_imports = Integer.parseInt((String) blankLinesAfterImportsOption);
1377 			} catch(NumberFormatException | ClassCastException e) {
1378 				this.blank_lines_after_imports = 0;
1379 			}
1380 		}
1381 		final Object blankLinesAfterPackageOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_PACKAGE);
1382 		if (blankLinesAfterPackageOption != null) {
1383 			try {
1384 				this.blank_lines_after_package = Integer.parseInt((String) blankLinesAfterPackageOption);
1385 			} catch(NumberFormatException | ClassCastException e) {
1386 				this.blank_lines_after_package = 0;
1387 			}
1388 		}
1389 		final Object blankLinesBeforeFieldOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_FIELD);
1390 		if (blankLinesBeforeFieldOption != null) {
1391 			try {
1392 				this.blank_lines_before_field = Integer.parseInt((String) blankLinesBeforeFieldOption);
1393 			} catch(NumberFormatException | ClassCastException e) {
1394 				this.blank_lines_before_field = 0;
1395 			}
1396 		}
1397 		final Object blankLinesBeforeFirstClassBodyDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_FIRST_CLASS_BODY_DECLARATION);
1398 		if (blankLinesBeforeFirstClassBodyDeclarationOption != null) {
1399 			try {
1400 				this.blank_lines_before_first_class_body_declaration = Integer.parseInt((String) blankLinesBeforeFirstClassBodyDeclarationOption);
1401 			} catch(NumberFormatException | ClassCastException e) {
1402 				this.blank_lines_before_first_class_body_declaration = 0;
1403 			}
1404 		}
1405 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_LAST_CLASS_BODY_DECLARATION,
1406 				v -> this.blank_lines_after_last_class_body_declaration = v);
1407 		final Object blankLinesBeforeImportsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_IMPORTS);
1408 		if (blankLinesBeforeImportsOption != null) {
1409 			try {
1410 				this.blank_lines_before_imports = Integer.parseInt((String) blankLinesBeforeImportsOption);
1411 			} catch(NumberFormatException | ClassCastException e) {
1412 				this.blank_lines_before_imports = 0;
1413 			}
1414 		}
1415 		final Object blankLinesBeforeMemberTypeOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_MEMBER_TYPE);
1416 		if (blankLinesBeforeMemberTypeOption != null) {
1417 			try {
1418 				this.blank_lines_before_member_type = Integer.parseInt((String) blankLinesBeforeMemberTypeOption);
1419 			} catch(NumberFormatException | ClassCastException e) {
1420 				this.blank_lines_before_member_type = 0;
1421 			}
1422 		}
1423 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_ABSTRACT_METHOD,
1424 				v -> this.blank_lines_before_abstract_method = v);
1425 		final Object blankLinesBeforeMethodOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_METHOD);
1426 		if (blankLinesBeforeMethodOption != null) {
1427 			try {
1428 				this.blank_lines_before_method = Integer.parseInt((String) blankLinesBeforeMethodOption);
1429 			} catch(NumberFormatException | ClassCastException e) {
1430 				this.blank_lines_before_method = 0;
1431 			}
1432 		}
1433 		final Object blankLinesBeforeNewChunkOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_NEW_CHUNK);
1434 		if (blankLinesBeforeNewChunkOption != null) {
1435 			try {
1436 				this.blank_lines_before_new_chunk = Integer.parseInt((String) blankLinesBeforeNewChunkOption);
1437 			} catch(NumberFormatException | ClassCastException e) {
1438 				this.blank_lines_before_new_chunk = 0;
1439 			}
1440 		}
1441 		final Object blankLinesBeforePackageOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_PACKAGE);
1442 		if (blankLinesBeforePackageOption != null) {
1443 			try {
1444 				this.blank_lines_before_package = Integer.parseInt((String) blankLinesBeforePackageOption);
1445 			} catch(NumberFormatException | ClassCastException e) {
1446 				this.blank_lines_before_package = 0;
1447 			}
1448 		}
1449 		final Object blankLinesBetweenImportGroupsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BETWEEN_IMPORT_GROUPS);
1450 		if (blankLinesBetweenImportGroupsOption != null) {
1451 			try {
1452 				this.blank_lines_between_import_groups = Integer.parseInt((String) blankLinesBetweenImportGroupsOption);
1453 			} catch(NumberFormatException | ClassCastException e) {
1454 				this.blank_lines_between_import_groups = 1;
1455 			}
1456 		}
1457 		final Object blankLinesBetweenTypeDeclarationsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BETWEEN_TYPE_DECLARATIONS);
1458 		if (blankLinesBetweenTypeDeclarationsOption != null) {
1459 			try {
1460 				this.blank_lines_between_type_declarations = Integer.parseInt((String) blankLinesBetweenTypeDeclarationsOption);
1461 			} catch(NumberFormatException | ClassCastException e) {
1462 				this.blank_lines_between_type_declarations = 0;
1463 			}
1464 		}
1465 		final Object blankLinesAtBeginningOfMethodBodyOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AT_BEGINNING_OF_METHOD_BODY);
1466 		if (blankLinesAtBeginningOfMethodBodyOption != null) {
1467 			try {
1468 				this.blank_lines_at_beginning_of_method_body = Integer.parseInt((String) blankLinesAtBeginningOfMethodBodyOption);
1469 			} catch(NumberFormatException | ClassCastException e) {
1470 				this.blank_lines_at_beginning_of_method_body = 0;
1471 			}
1472 		}
1473 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AT_END_OF_METHOD_BODY,
1474 				v -> this.blank_lines_at_end_of_method_body = v);
1475 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AT_BEGINNING_OF_CODE_BLOCK,
1476 				v -> this.blank_lines_at_beginning_of_code_block = v);
1477 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AT_END_OF_CODE_BLOCK,
1478 				v -> this.blank_lines_at_end_of_code_block = v);
1479 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_CODE_BLOCK,
1480 				v -> this.blank_lines_before_code_block = v);
1481 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_AFTER_CODE_BLOCK,
1482 				v -> this.blank_lines_after_code_block = v);
1483 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BETWEEN_STATEMENT_GROUPS_IN_SWITCH,
1484 				v -> this.blank_lines_between_statement_groups_in_switch = v);
1485 		final Object insertNewLineAfterTypeAnnotationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_TYPE_ANNOTATION);
1486 		if (insertNewLineAfterTypeAnnotationOption != null) {
1487 			this.insert_new_line_after_type_annotation = JavaCore.INSERT.equals(insertNewLineAfterTypeAnnotationOption);
1488 		}
1489 		setDeprecatedOptions(settings);
1490 		final Object commentFormatJavadocCommentOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_JAVADOC_COMMENT);
1491 		if (commentFormatJavadocCommentOption != null) {
1492 			this.comment_format_javadoc_comment = DefaultCodeFormatterConstants.TRUE.equals(commentFormatJavadocCommentOption);
1493 		}
1494 		final Object commentFormatBlockCommentOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_BLOCK_COMMENT);
1495 		if (commentFormatBlockCommentOption != null) {
1496 			this.comment_format_block_comment = DefaultCodeFormatterConstants.TRUE.equals(commentFormatBlockCommentOption);
1497 		}
1498 		final Object commentFormatLineCommentOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_LINE_COMMENT);
1499 		if (commentFormatLineCommentOption != null) {
1500 			this.comment_format_line_comment = DefaultCodeFormatterConstants.TRUE.equals(commentFormatLineCommentOption);
1501 		}
1502 		final Object formatLineCommentStartingOnFirstColumnOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_LINE_COMMENT_STARTING_ON_FIRST_COLUMN);
1503 		if (formatLineCommentStartingOnFirstColumnOption != null) {
1504 			this.comment_format_line_comment_starting_on_first_column = DefaultCodeFormatterConstants.TRUE.equals(formatLineCommentStartingOnFirstColumnOption);
1505 		}
1506 		final Object commentFormatHeaderOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_HEADER);
1507 		if (commentFormatHeaderOption != null) {
1508 			this.comment_format_header = DefaultCodeFormatterConstants.TRUE.equals(commentFormatHeaderOption);
1509 		}
1510 		final Object commentFormatHtmlOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_HTML);
1511 		if (commentFormatHtmlOption != null) {
1512 			this.comment_format_html = DefaultCodeFormatterConstants.TRUE.equals(commentFormatHtmlOption);
1513 		}
1514 		final Object commentFormatSourceOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_FORMAT_SOURCE);
1515 		if (commentFormatSourceOption != null) {
1516 			this.comment_format_source = DefaultCodeFormatterConstants.TRUE.equals(commentFormatSourceOption);
1517 		}
1518 		final Object commentIndentParameterDescriptionOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INDENT_PARAMETER_DESCRIPTION);
1519 		if (commentIndentParameterDescriptionOption != null) {
1520 			this.comment_indent_parameter_description = DefaultCodeFormatterConstants.TRUE.equals(commentIndentParameterDescriptionOption);
1521 		}
1522 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_COMMENT_INDENT_TAG_DESCRIPTION, DefaultCodeFormatterConstants.TRUE,
1523 				v -> this.comment_indent_tag_description = v);
1524 		final Object commentIndentRootTagsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INDENT_ROOT_TAGS);
1525 		if (commentIndentRootTagsOption != null) {
1526 			this.comment_indent_root_tags = DefaultCodeFormatterConstants.TRUE.equals(commentIndentRootTagsOption);
1527 		}
1528 		final Object commentAlignTagsDescriptionsOption= settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_ALIGN_TAGS_NAMES_DESCRIPTIONS);
1529 		if (commentAlignTagsDescriptionsOption != null) {
1530 			this.comment_align_tags_names_descriptions = DefaultCodeFormatterConstants.TRUE.equals(commentAlignTagsDescriptionsOption);
1531 		}
1532 		final Object commentAlignTagsGroupedOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_ALIGN_TAGS_DESCREIPTIONS_GROUPED);
1533 		if (commentAlignTagsGroupedOption != null) {
1534 			this.comment_align_tags_descriptions_grouped = DefaultCodeFormatterConstants.TRUE.equals(commentAlignTagsGroupedOption);
1535 		}
1536 		final Object commentInsertEmptyLineBeforeRootTagsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INSERT_EMPTY_LINE_BEFORE_ROOT_TAGS);
1537 		if (commentInsertEmptyLineBeforeRootTagsOption != null) {
1538 			this.comment_insert_empty_line_before_root_tags = JavaCore.INSERT.equals(commentInsertEmptyLineBeforeRootTagsOption);
1539 		}
1540 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_COMMENT_INSERT_EMPTY_LINE_BETWEEN_DIFFERENT_TAGS, JavaCore.INSERT,
1541 				v -> this.comment_insert_empty_line_between_different_tags = v);
1542 		final Object commentInsertNewLineForParameterOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_INSERT_NEW_LINE_FOR_PARAMETER);
1543 		if (commentInsertNewLineForParameterOption != null) {
1544 			this.comment_insert_new_line_for_parameter = JavaCore.INSERT.equals(commentInsertNewLineForParameterOption);
1545 		}
1546 		final Object commentPreserveWhiteSpaceBetweenCodeAndLineCommentsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_PRESERVE_WHITE_SPACE_BETWEEN_CODE_AND_LINE_COMMENT);
1547 		if (commentPreserveWhiteSpaceBetweenCodeAndLineCommentsOption != null) {
1548 			this.comment_preserve_white_space_between_code_and_line_comments = DefaultCodeFormatterConstants.TRUE.equals(commentPreserveWhiteSpaceBetweenCodeAndLineCommentsOption);
1549 		}
1550 		final Object commentLineLengthOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_LINE_LENGTH);
1551 		if (commentLineLengthOption != null) {
1552 			try {
1553 				this.comment_line_length = Integer.parseInt((String) commentLineLengthOption);
1554 			} catch(NumberFormatException | ClassCastException e) {
1555 				this.comment_line_length = 80;
1556 			}
1557 		}
1558 		final Object commentCountLineLengthFromStartingPositionOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_COUNT_LINE_LENGTH_FROM_STARTING_POSITION);
1559 		if (commentCountLineLengthFromStartingPositionOption != null) {
1560 			this.comment_count_line_length_from_starting_position = DefaultCodeFormatterConstants.TRUE.equals(commentCountLineLengthFromStartingPositionOption);
1561 		}
1562 		final Object commentNewLinesAtBlockBoundariesOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_NEW_LINES_AT_BLOCK_BOUNDARIES);
1563 		if (commentNewLinesAtBlockBoundariesOption != null) {
1564 			this.comment_new_lines_at_block_boundaries = DefaultCodeFormatterConstants.TRUE.equals(commentNewLinesAtBlockBoundariesOption);
1565 		}
1566 		final Object commentNewLinesAtJavadocBoundariesOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_NEW_LINES_AT_JAVADOC_BOUNDARIES);
1567 		if (commentNewLinesAtJavadocBoundariesOption != null) {
1568 			this.comment_new_lines_at_javadoc_boundaries = DefaultCodeFormatterConstants.TRUE.equals(commentNewLinesAtJavadocBoundariesOption);
1569 		}
1570 		final Object indentStatementsCompareToBlockOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INDENT_STATEMENTS_COMPARE_TO_BLOCK);
1571 		if (indentStatementsCompareToBlockOption != null) {
1572 			this.indent_statements_compare_to_block = DefaultCodeFormatterConstants.TRUE.equals(indentStatementsCompareToBlockOption);
1573 		}
1574 		final Object indentStatementsCompareToBodyOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INDENT_STATEMENTS_COMPARE_TO_BODY);
1575 		if (indentStatementsCompareToBodyOption != null) {
1576 			this.indent_statements_compare_to_body = DefaultCodeFormatterConstants.TRUE.equals(indentStatementsCompareToBodyOption);
1577 		}
1578 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INDENT_BODY_DECLARATIONS_COMPARE_TO_RECORD_HEADER, DefaultCodeFormatterConstants.TRUE,
1579 			v -> this.indent_body_declarations_compare_to_record_header = v);
1580 		final Object indentBodyDeclarationsCompareToAnnotationDeclarationHeaderOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INDENT_BODY_DECLARATIONS_COMPARE_TO_ANNOTATION_DECLARATION_HEADER);
1581 		if (indentBodyDeclarationsCompareToAnnotationDeclarationHeaderOption != null) {
1582 			this.indent_body_declarations_compare_to_annotation_declaration_header = DefaultCodeFormatterConstants.TRUE.equals(indentBodyDeclarationsCompareToAnnotationDeclarationHeaderOption);
1583 		}
1584 		final Object indentBodyDeclarationsCompareToEnumConstantHeaderOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INDENT_BODY_DECLARATIONS_COMPARE_TO_ENUM_CONSTANT_HEADER);
1585 		if (indentBodyDeclarationsCompareToEnumConstantHeaderOption != null) {
1586 			this.indent_body_declarations_compare_to_enum_constant_header = DefaultCodeFormatterConstants.TRUE.equals(indentBodyDeclarationsCompareToEnumConstantHeaderOption);
1587 		}
1588 		final Object indentBodyDeclarationsCompareToEnumDeclarationHeaderOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INDENT_BODY_DECLARATIONS_COMPARE_TO_ENUM_DECLARATION_HEADER);
1589 		if (indentBodyDeclarationsCompareToEnumDeclarationHeaderOption != null) {
1590 			this.indent_body_declarations_compare_to_enum_declaration_header = DefaultCodeFormatterConstants.TRUE.equals(indentBodyDeclarationsCompareToEnumDeclarationHeaderOption);
1591 		}
1592 		final Object indentBodyDeclarationsCompareToTypeHeaderOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INDENT_BODY_DECLARATIONS_COMPARE_TO_TYPE_HEADER);
1593 		if (indentBodyDeclarationsCompareToTypeHeaderOption != null) {
1594 			this.indent_body_declarations_compare_to_type_header = DefaultCodeFormatterConstants.TRUE.equals(indentBodyDeclarationsCompareToTypeHeaderOption);
1595 		}
1596 		final Object indentBreaksCompareToCasesOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INDENT_BREAKS_COMPARE_TO_CASES);
1597 		if (indentBreaksCompareToCasesOption != null) {
1598 			this.indent_breaks_compare_to_cases = DefaultCodeFormatterConstants.TRUE.equals(indentBreaksCompareToCasesOption);
1599 		}
1600 		final Object indentEmptyLinesOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INDENT_EMPTY_LINES);
1601 		if (indentEmptyLinesOption != null) {
1602 			this.indent_empty_lines = DefaultCodeFormatterConstants.TRUE.equals(indentEmptyLinesOption);
1603 		}
1604 		final Object indentSwitchstatementsCompareToCasesOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INDENT_SWITCHSTATEMENTS_COMPARE_TO_CASES);
1605 		if (indentSwitchstatementsCompareToCasesOption != null) {
1606 			this.indent_switchstatements_compare_to_cases = DefaultCodeFormatterConstants.TRUE.equals(indentSwitchstatementsCompareToCasesOption);
1607 		}
1608 		final Object indentSwitchstatementsCompareToSwitchOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INDENT_SWITCHSTATEMENTS_COMPARE_TO_SWITCH);
1609 		if (indentSwitchstatementsCompareToSwitchOption != null) {
1610 			this.indent_switchstatements_compare_to_switch = DefaultCodeFormatterConstants.TRUE.equals(indentSwitchstatementsCompareToSwitchOption);
1611 		}
1612 		final Object indentationSizeOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INDENTATION_SIZE);
1613 		if (indentationSizeOption != null) {
1614 			int indentationSize = 4;
1615 			try {
1616 				indentationSize = Integer.parseInt((String) indentationSizeOption);
1617 			} catch(NumberFormatException | ClassCastException e) {
1618 				// keep default
1619 			}
1620 			// reverse values swapping performed by IndentationTabPage
1621 			if (DefaultCodeFormatterConstants.MIXED.equals(settings.get(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR)))
1622 				this.indentation_size = indentationSize;
1623 			else if (JavaCore.SPACE.equals(settings.get(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR)))
1624 				this.tab_size = indentationSize;
1625 		}
1626 		final Object insertNewLineAfterOpeningBraceInArrayInitializerOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_OPENING_BRACE_IN_ARRAY_INITIALIZER);
1627 		if (insertNewLineAfterOpeningBraceInArrayInitializerOption != null) {
1628 			this.insert_new_line_after_opening_brace_in_array_initializer = JavaCore.INSERT.equals(insertNewLineAfterOpeningBraceInArrayInitializerOption);
1629 		}
1630 		final Object insertNewLineAtEndOfFileIfMissingOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AT_END_OF_FILE_IF_MISSING);
1631 		if (insertNewLineAtEndOfFileIfMissingOption != null) {
1632 			this.insert_new_line_at_end_of_file_if_missing = JavaCore.INSERT.equals(insertNewLineAtEndOfFileIfMissingOption);
1633 		}
1634 		final Object insertNewLineBeforeCatchInTryStatementOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT);
1635 		if (insertNewLineBeforeCatchInTryStatementOption != null) {
1636 			this.insert_new_line_before_catch_in_try_statement = JavaCore.INSERT.equals(insertNewLineBeforeCatchInTryStatementOption);
1637 		}
1638 		final Object insertNewLineBeforeClosingBraceInArrayInitializerOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER);
1639 		if (insertNewLineBeforeClosingBraceInArrayInitializerOption != null) {
1640 			this.insert_new_line_before_closing_brace_in_array_initializer = JavaCore.INSERT.equals(insertNewLineBeforeClosingBraceInArrayInitializerOption);
1641 		}
1642 		final Object insertNewLineBeforeElseInIfStatementOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT);
1643 		if (insertNewLineBeforeElseInIfStatementOption != null) {
1644 			this.insert_new_line_before_else_in_if_statement = JavaCore.INSERT.equals(insertNewLineBeforeElseInIfStatementOption);
1645 		}
1646 		final Object insertNewLineBeforeFinallyInTryStatementOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT);
1647 		if (insertNewLineBeforeFinallyInTryStatementOption != null) {
1648 			this.insert_new_line_before_finally_in_try_statement = JavaCore.INSERT.equals(insertNewLineBeforeFinallyInTryStatementOption);
1649 		}
1650 		final Object insertNewLineBeforeWhileInDoStatementOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT);
1651 		if (insertNewLineBeforeWhileInDoStatementOption != null) {
1652 			this.insert_new_line_before_while_in_do_statement = JavaCore.INSERT.equals(insertNewLineBeforeWhileInDoStatementOption);
1653 		}
1654 
1655 		setString(settings, DefaultCodeFormatterConstants.FORMATTER_KEEP_ANNOTATION_DECLARATION_ON_ONE_LINE, KEEP_ON_ONE_LINE_VALUES,
1656 				v -> this.keep_annotation_declaration_on_one_line = v);
1657 		setString(settings, DefaultCodeFormatterConstants.FORMATTER_KEEP_ANONYMOUS_TYPE_DECLARATION_ON_ONE_LINE, KEEP_ON_ONE_LINE_VALUES,
1658 				v -> this.keep_anonymous_type_declaration_on_one_line = v);
1659 		setString(settings, DefaultCodeFormatterConstants.FORMATTER_KEEP_IF_THEN_BODY_BLOCK_ON_ONE_LINE, KEEP_ON_ONE_LINE_VALUES,
1660 				v -> this.keep_if_then_body_block_on_one_line = v);
1661 		setString(settings, DefaultCodeFormatterConstants.FORMATTER_KEEP_LOOP_BODY_BLOCK_ON_ONE_LINE, KEEP_ON_ONE_LINE_VALUES,
1662 				v -> this.keep_loop_body_block_on_one_line = v);
1663 		setString(settings, DefaultCodeFormatterConstants.FORMATTER_KEEP_LAMBDA_BODY_BLOCK_ON_ONE_LINE, KEEP_ON_ONE_LINE_VALUES,
1664 				v -> this.keep_lambda_body_block_on_one_line = v);
1665 		setString(settings, DefaultCodeFormatterConstants.FORMATTER_KEEP_CODE_BLOCK_ON_ONE_LINE,
1666 				Arrays.asList(DefaultCodeFormatterConstants.ONE_LINE_NEVER, DefaultCodeFormatterConstants.ONE_LINE_IF_EMPTY),
1667 				v -> this.keep_code_block_on_one_line = v);
1668 		setString(settings, DefaultCodeFormatterConstants.FORMATTER_KEEP_ENUM_CONSTANT_DECLARATION_ON_ONE_LINE, KEEP_ON_ONE_LINE_VALUES,
1669 				v -> this.keep_enum_constant_declaration_on_one_line = v);
1670 		setString(settings, DefaultCodeFormatterConstants.FORMATTER_KEEP_ENUM_DECLARATION_ON_ONE_LINE, KEEP_ON_ONE_LINE_VALUES,
1671 				v -> this.keep_enum_declaration_on_one_line = v);
1672 		setString(settings, DefaultCodeFormatterConstants.FORMATTER_KEEP_METHOD_BODY_ON_ONE_LINE, KEEP_ON_ONE_LINE_VALUES,
1673 				v -> this.keep_method_body_on_one_line = v);
1674 		setString(settings, DefaultCodeFormatterConstants.FORMATTER_KEEP_TYPE_DECLARATION_ON_ONE_LINE, KEEP_ON_ONE_LINE_VALUES,
1675 				v -> this.keep_type_declaration_on_one_line = v);
1676 		setString(settings, DefaultCodeFormatterConstants.FORMATTER_KEEP_RECORD_DECLARATION_ON_ONE_LINE, KEEP_ON_ONE_LINE_VALUES,
1677 				v -> this.keep_record_declaration_on_one_line = v);
1678 		setString(settings, DefaultCodeFormatterConstants.FORMATTER_KEEP_RECORD_CONSTRUCTOR_ON_ONE_LINE, KEEP_ON_ONE_LINE_VALUES,
1679 				v -> this.keep_record_constructor_on_one_line = v);
1680 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_KEEP_SIMPLE_GETTER_SETTER_ON_ONE_LINE, DefaultCodeFormatterConstants.TRUE,
1681 				v -> this.keep_simple_getter_setter_on_one_line = v);
1682 
1683 		final Object insertNewLineAfterLabelOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_LABEL);
1684 		if (insertNewLineAfterLabelOption != null) {
1685 			this.insert_new_line_after_label = JavaCore.INSERT.equals(insertNewLineAfterLabelOption);
1686 		}
1687 		final Object insertSpaceAfterAndInWildcardOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_AND_IN_TYPE_PARAMETER);
1688 		if (insertSpaceAfterAndInWildcardOption != null) {
1689 			this.insert_space_after_and_in_type_parameter = JavaCore.INSERT.equals(insertSpaceAfterAndInWildcardOption);
1690 		}
1691 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ARROW_IN_SWITCH_CASE, JavaCore.INSERT,
1692 				v -> this.insert_space_after_arrow_in_switch_case = v);
1693 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ARROW_IN_SWITCH_DEFAULT, JavaCore.INSERT,
1694 				v -> this.insert_space_after_arrow_in_switch_default = v);
1695 		final Object insertSpaceAfterAssignmentOperatorOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ASSIGNMENT_OPERATOR);
1696 		if (insertSpaceAfterAssignmentOperatorOption != null) {
1697 			this.insert_space_after_assignment_operator = JavaCore.INSERT.equals(insertSpaceAfterAssignmentOperatorOption);
1698 		}
1699 		final Object insertSpaceAfterAtInAnnotationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_AT_IN_ANNOTATION);
1700 		if (insertSpaceAfterAtInAnnotationOption != null) {
1701 			this.insert_space_after_at_in_annotation = JavaCore.INSERT.equals(insertSpaceAfterAtInAnnotationOption);
1702 		}
1703 		final Object insertSpaceAfterAtInAnnotationTypeDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_AT_IN_ANNOTATION_TYPE_DECLARATION);
1704 		if (insertSpaceAfterAtInAnnotationTypeDeclarationOption != null) {
1705 			this.insert_space_after_at_in_annotation_type_declaration = JavaCore.INSERT.equals(insertSpaceAfterAtInAnnotationTypeDeclarationOption);
1706 		}
1707 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_MULTIPLICATIVE_OPERATOR, JavaCore.INSERT,
1708 				v -> this.insert_space_after_multiplicative_operator = v);
1709 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ADDITIVE_OPERATOR, JavaCore.INSERT,
1710 				v -> this.insert_space_after_additive_operator = v);
1711 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_STRING_CONCATENATION, JavaCore.INSERT,
1712 				v -> this.insert_space_after_string_concatenation = v);
1713 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_SHIFT_OPERATOR, JavaCore.INSERT,
1714 				v -> this.insert_space_after_shift_operator = v);
1715 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_RELATIONAL_OPERATOR, JavaCore.INSERT,
1716 				v -> this.insert_space_after_relational_operator = v);
1717 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_BITWISE_OPERATOR, JavaCore.INSERT,
1718 				v -> this.insert_space_after_bitwise_operator = v);
1719 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_LOGICAL_OPERATOR, JavaCore.INSERT,
1720 				v -> this.insert_space_after_logical_operator = v);
1721 		final Object insertSpaceAfterClosingAngleBracketInTypeArgumentsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_CLOSING_ANGLE_BRACKET_IN_TYPE_ARGUMENTS);
1722 		if (insertSpaceAfterClosingAngleBracketInTypeArgumentsOption != null) {
1723 			this.insert_space_after_closing_angle_bracket_in_type_arguments = JavaCore.INSERT.equals(insertSpaceAfterClosingAngleBracketInTypeArgumentsOption);
1724 		}
1725 		final Object insertSpaceAfterClosingAngleBracketInTypeParametersOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_CLOSING_ANGLE_BRACKET_IN_TYPE_PARAMETERS);
1726 		if (insertSpaceAfterClosingAngleBracketInTypeParametersOption != null) {
1727 			this.insert_space_after_closing_angle_bracket_in_type_parameters = JavaCore.INSERT.equals(insertSpaceAfterClosingAngleBracketInTypeParametersOption);
1728 		}
1729 		final Object insertSpaceAfterClosingParenInCastOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_CLOSING_PAREN_IN_CAST);
1730 		if (insertSpaceAfterClosingParenInCastOption != null) {
1731 			this.insert_space_after_closing_paren_in_cast = JavaCore.INSERT.equals(insertSpaceAfterClosingParenInCastOption);
1732 		}
1733 		final Object insertSpaceAfterClosingBraceInBlockOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_CLOSING_BRACE_IN_BLOCK);
1734 		if (insertSpaceAfterClosingBraceInBlockOption != null) {
1735 			this.insert_space_after_closing_brace_in_block = JavaCore.INSERT.equals(insertSpaceAfterClosingBraceInBlockOption);
1736 		}
1737 		final Object insertSpaceAfterColonInAssertOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COLON_IN_ASSERT);
1738 		if (insertSpaceAfterColonInAssertOption != null) {
1739 			this.insert_space_after_colon_in_assert = JavaCore.INSERT.equals(insertSpaceAfterColonInAssertOption);
1740 		}
1741 		final Object insertSpaceAfterColonInCaseOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COLON_IN_CASE);
1742 		if (insertSpaceAfterColonInCaseOption != null) {
1743 			this.insert_space_after_colon_in_case = JavaCore.INSERT.equals(insertSpaceAfterColonInCaseOption);
1744 		}
1745 		final Object insertSpaceAfterColonInConditionalOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COLON_IN_CONDITIONAL);
1746 		if (insertSpaceAfterColonInConditionalOption != null) {
1747 			this.insert_space_after_colon_in_conditional = JavaCore.INSERT.equals(insertSpaceAfterColonInConditionalOption);
1748 		}
1749 		final Object insertSpaceAfterColonInForOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COLON_IN_FOR);
1750 		if (insertSpaceAfterColonInForOption != null) {
1751 			this.insert_space_after_colon_in_for = JavaCore.INSERT.equals(insertSpaceAfterColonInForOption);
1752 		}
1753 		final Object insertSpaceAfterColonInLabeledStatementOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COLON_IN_LABELED_STATEMENT);
1754 		if (insertSpaceAfterColonInLabeledStatementOption != null) {
1755 			this.insert_space_after_colon_in_labeled_statement = JavaCore.INSERT.equals(insertSpaceAfterColonInLabeledStatementOption);
1756 		}
1757 		final Object insertSpaceAfterCommaInAllocationExpressionOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ALLOCATION_EXPRESSION);
1758 		if (insertSpaceAfterCommaInAllocationExpressionOption != null) {
1759 			this.insert_space_after_comma_in_allocation_expression = JavaCore.INSERT.equals(insertSpaceAfterCommaInAllocationExpressionOption);
1760 		}
1761 		final Object insertSpaceAfterCommaInAnnotationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ANNOTATION);
1762 		if (insertSpaceAfterCommaInAnnotationOption != null) {
1763 			this.insert_space_after_comma_in_annotation = JavaCore.INSERT.equals(insertSpaceAfterCommaInAnnotationOption);
1764 		}
1765 		final Object insertSpaceAfterCommaInArrayInitializerOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ARRAY_INITIALIZER);
1766 		if (insertSpaceAfterCommaInArrayInitializerOption != null) {
1767 			this.insert_space_after_comma_in_array_initializer = JavaCore.INSERT.equals(insertSpaceAfterCommaInArrayInitializerOption);
1768 		}
1769 		final Object insertSpaceAfterCommaInConstructorDeclarationParametersOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_CONSTRUCTOR_DECLARATION_PARAMETERS);
1770 		if (insertSpaceAfterCommaInConstructorDeclarationParametersOption != null) {
1771 			this.insert_space_after_comma_in_constructor_declaration_parameters = JavaCore.INSERT.equals(insertSpaceAfterCommaInConstructorDeclarationParametersOption);
1772 		}
1773 		final Object insertSpaceAfterCommaInConstructorDeclarationThrowsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_CONSTRUCTOR_DECLARATION_THROWS);
1774 		if (insertSpaceAfterCommaInConstructorDeclarationThrowsOption != null) {
1775 			this.insert_space_after_comma_in_constructor_declaration_throws = JavaCore.INSERT.equals(insertSpaceAfterCommaInConstructorDeclarationThrowsOption);
1776 		}
1777 		final Object insertSpaceAfterCommaInEnumConstantArgumentsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ENUM_CONSTANT_ARGUMENTS);
1778 		if (insertSpaceAfterCommaInEnumConstantArgumentsOption != null) {
1779 			this.insert_space_after_comma_in_enum_constant_arguments = JavaCore.INSERT.equals(insertSpaceAfterCommaInEnumConstantArgumentsOption);
1780 		}
1781 		final Object insertSpaceAfterCommaInEnumDeclarationsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_ENUM_DECLARATIONS);
1782 		if (insertSpaceAfterCommaInEnumDeclarationsOption != null) {
1783 			this.insert_space_after_comma_in_enum_declarations = JavaCore.INSERT.equals(insertSpaceAfterCommaInEnumDeclarationsOption);
1784 		}
1785 		final Object insertSpaceAfterCommaInExplicitConstructorCallArgumentsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_EXPLICIT_CONSTRUCTOR_CALL_ARGUMENTS);
1786 		if (insertSpaceAfterCommaInExplicitConstructorCallArgumentsOption != null) {
1787 			this.insert_space_after_comma_in_explicit_constructor_call_arguments = JavaCore.INSERT.equals(insertSpaceAfterCommaInExplicitConstructorCallArgumentsOption);
1788 		}
1789 		final Object insertSpaceAfterCommaInForIncrementsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_FOR_INCREMENTS);
1790 		if (insertSpaceAfterCommaInForIncrementsOption != null) {
1791 			this.insert_space_after_comma_in_for_increments = JavaCore.INSERT.equals(insertSpaceAfterCommaInForIncrementsOption);
1792 		}
1793 		final Object insertSpaceAfterCommaInForInitsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_FOR_INITS);
1794 		if (insertSpaceAfterCommaInForInitsOption != null) {
1795 			this.insert_space_after_comma_in_for_inits = JavaCore.INSERT.equals(insertSpaceAfterCommaInForInitsOption);
1796 		}
1797 		final Object insertSpaceAfterCommaInMethodInvocationArgumentsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_METHOD_INVOCATION_ARGUMENTS);
1798 		if (insertSpaceAfterCommaInMethodInvocationArgumentsOption != null) {
1799 			this.insert_space_after_comma_in_method_invocation_arguments = JavaCore.INSERT.equals(insertSpaceAfterCommaInMethodInvocationArgumentsOption);
1800 		}
1801 		final Object insertSpaceAfterCommaInMethodDeclarationParametersOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_METHOD_DECLARATION_PARAMETERS);
1802 		if (insertSpaceAfterCommaInMethodDeclarationParametersOption != null) {
1803 			this.insert_space_after_comma_in_method_declaration_parameters = JavaCore.INSERT.equals(insertSpaceAfterCommaInMethodDeclarationParametersOption);
1804 		}
1805 		final Object insertSpaceAfterCommaInMethodDeclarationThrowsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_METHOD_DECLARATION_THROWS);
1806 		if (insertSpaceAfterCommaInMethodDeclarationThrowsOption != null) {
1807 			this.insert_space_after_comma_in_method_declaration_throws = JavaCore.INSERT.equals(insertSpaceAfterCommaInMethodDeclarationThrowsOption);
1808 		}
1809 		final Object insertSpaceAfterCommaInMultipleFieldDeclarationsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_MULTIPLE_FIELD_DECLARATIONS);
1810 		if (insertSpaceAfterCommaInMultipleFieldDeclarationsOption != null) {
1811 			this.insert_space_after_comma_in_multiple_field_declarations = JavaCore.INSERT.equals(insertSpaceAfterCommaInMultipleFieldDeclarationsOption);
1812 		}
1813 		final Object insertSpaceAfterCommaInMultipleLocalDeclarationsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_MULTIPLE_LOCAL_DECLARATIONS);
1814 		if (insertSpaceAfterCommaInMultipleLocalDeclarationsOption != null) {
1815 			this.insert_space_after_comma_in_multiple_local_declarations = JavaCore.INSERT.equals(insertSpaceAfterCommaInMultipleLocalDeclarationsOption);
1816 		}
1817 		final Object insertSpaceAfterCommaInParameterizedTypeReferenceOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_PARAMETERIZED_TYPE_REFERENCE);
1818 		if (insertSpaceAfterCommaInParameterizedTypeReferenceOption != null) {
1819 			this.insert_space_after_comma_in_parameterized_type_reference = JavaCore.INSERT.equals(insertSpaceAfterCommaInParameterizedTypeReferenceOption);
1820 		}
1821 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_RECORD_COMPONENTS, JavaCore.INSERT,
1822 				v -> this.insert_space_after_comma_in_record_components = v);
1823 		final Object insertSpaceAfterCommaInSuperinterfacesOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_SUPERINTERFACES);
1824 		if (insertSpaceAfterCommaInSuperinterfacesOption != null) {
1825 			this.insert_space_after_comma_in_superinterfaces = JavaCore.INSERT.equals(insertSpaceAfterCommaInSuperinterfacesOption);
1826 		}
1827 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_SWITCH_CASE_EXPRESSIONS, JavaCore.INSERT,
1828 				v -> this.insert_space_after_comma_in_switch_case_expressions = v);
1829 		final Object insertSpaceAfterCommaInTypeArgumentsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_TYPE_ARGUMENTS);
1830 		if (insertSpaceAfterCommaInTypeArgumentsOption != null) {
1831 			this.insert_space_after_comma_in_type_arguments = JavaCore.INSERT.equals(insertSpaceAfterCommaInTypeArgumentsOption);
1832 		}
1833 		final Object insertSpaceAfterCommaInTypeParametersOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_TYPE_PARAMETERS);
1834 		if (insertSpaceAfterCommaInTypeParametersOption != null) {
1835 			this.insert_space_after_comma_in_type_parameters = JavaCore.INSERT.equals(insertSpaceAfterCommaInTypeParametersOption);
1836 		}
1837 		final Object insertSpaceAfterEllipsisOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ELLIPSIS);
1838 		if (insertSpaceAfterEllipsisOption != null) {
1839 			this.insert_space_after_ellipsis = JavaCore.INSERT.equals(insertSpaceAfterEllipsisOption);
1840 		}
1841 		final Object insertSpaceAfterLambdaArrowOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_LAMBDA_ARROW);
1842 		if (insertSpaceAfterLambdaArrowOption != null) {
1843 			this.insert_space_after_lambda_arrow = JavaCore.INSERT.equals(insertSpaceAfterLambdaArrowOption);
1844 		}
1845 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_NOT_OPERATOR, JavaCore.INSERT,
1846 				v -> this.insert_space_after_not_operator = v);
1847 		final Object insertSpaceAfterOpeningAngleBracketInParameterizedTypeReferenceOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_ANGLE_BRACKET_IN_PARAMETERIZED_TYPE_REFERENCE);
1848 		if (insertSpaceAfterOpeningAngleBracketInParameterizedTypeReferenceOption != null) {
1849 			this.insert_space_after_opening_angle_bracket_in_parameterized_type_reference = JavaCore.INSERT.equals(insertSpaceAfterOpeningAngleBracketInParameterizedTypeReferenceOption);
1850 		}
1851 		final Object insertSpaceAfterOpeningAngleBracketInTypeArgumentsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_ANGLE_BRACKET_IN_TYPE_ARGUMENTS);
1852 		if (insertSpaceAfterOpeningAngleBracketInTypeArgumentsOption != null) {
1853 			this.insert_space_after_opening_angle_bracket_in_type_arguments = JavaCore.INSERT.equals(insertSpaceAfterOpeningAngleBracketInTypeArgumentsOption);
1854 		}
1855 		final Object insertSpaceAfterOpeningAngleBracketInTypeParametersOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_ANGLE_BRACKET_IN_TYPE_PARAMETERS);
1856 		if (insertSpaceAfterOpeningAngleBracketInTypeParametersOption != null) {
1857 			this.insert_space_after_opening_angle_bracket_in_type_parameters = JavaCore.INSERT.equals(insertSpaceAfterOpeningAngleBracketInTypeParametersOption);
1858 		}
1859 		final Object insertSpaceAfterOpeningBracketInArrayAllocationExpressionOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_BRACKET_IN_ARRAY_ALLOCATION_EXPRESSION);
1860 		if (insertSpaceAfterOpeningBracketInArrayAllocationExpressionOption != null) {
1861 			this.insert_space_after_opening_bracket_in_array_allocation_expression = JavaCore.INSERT.equals(insertSpaceAfterOpeningBracketInArrayAllocationExpressionOption);
1862 		}
1863 		final Object insertSpaceAfterOpeningBracketInArrayReferenceOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_BRACKET_IN_ARRAY_REFERENCE);
1864 		if (insertSpaceAfterOpeningBracketInArrayReferenceOption != null) {
1865 			this.insert_space_after_opening_bracket_in_array_reference = JavaCore.INSERT.equals(insertSpaceAfterOpeningBracketInArrayReferenceOption);
1866 		}
1867 		final Object insertSpaceAfterOpeningBraceInArrayInitializerOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_BRACE_IN_ARRAY_INITIALIZER);
1868 		if (insertSpaceAfterOpeningBraceInArrayInitializerOption != null) {
1869 			this.insert_space_after_opening_brace_in_array_initializer = JavaCore.INSERT.equals(insertSpaceAfterOpeningBraceInArrayInitializerOption);
1870 		}
1871 		final Object insertSpaceAfterOpeningParenInAnnotationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_ANNOTATION);
1872 		if (insertSpaceAfterOpeningParenInAnnotationOption != null) {
1873 			this.insert_space_after_opening_paren_in_annotation = JavaCore.INSERT.equals(insertSpaceAfterOpeningParenInAnnotationOption);
1874 		}
1875 		final Object insertSpaceAfterOpeningParenInCastOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_CAST);
1876 		if (insertSpaceAfterOpeningParenInCastOption != null) {
1877 			this.insert_space_after_opening_paren_in_cast = JavaCore.INSERT.equals(insertSpaceAfterOpeningParenInCastOption);
1878 		}
1879 		final Object insertSpaceAfterOpeningParenInCatchOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_CATCH);
1880 		if (insertSpaceAfterOpeningParenInCatchOption != null) {
1881 			this.insert_space_after_opening_paren_in_catch = JavaCore.INSERT.equals(insertSpaceAfterOpeningParenInCatchOption);
1882 		}
1883 		final Object insertSpaceAfterOpeningParenInConstructorDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_CONSTRUCTOR_DECLARATION);
1884 		if (insertSpaceAfterOpeningParenInConstructorDeclarationOption != null) {
1885 			this.insert_space_after_opening_paren_in_constructor_declaration = JavaCore.INSERT.equals(insertSpaceAfterOpeningParenInConstructorDeclarationOption);
1886 		}
1887 		final Object insertSpaceAfterOpeningParenInEnumConstantOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_ENUM_CONSTANT);
1888 		if (insertSpaceAfterOpeningParenInEnumConstantOption != null) {
1889 			this.insert_space_after_opening_paren_in_enum_constant = JavaCore.INSERT.equals(insertSpaceAfterOpeningParenInEnumConstantOption);
1890 		}
1891 		final Object insertSpaceAfterOpeningParenInForOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_FOR);
1892 		if (insertSpaceAfterOpeningParenInForOption != null) {
1893 			this.insert_space_after_opening_paren_in_for = JavaCore.INSERT.equals(insertSpaceAfterOpeningParenInForOption);
1894 		}
1895 		final Object insertSpaceAfterOpeningParenInIfOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_IF);
1896 		if (insertSpaceAfterOpeningParenInIfOption != null) {
1897 			this.insert_space_after_opening_paren_in_if = JavaCore.INSERT.equals(insertSpaceAfterOpeningParenInIfOption);
1898 		}
1899 		final Object insertSpaceAfterOpeningParenInMethodDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_METHOD_DECLARATION);
1900 		if (insertSpaceAfterOpeningParenInMethodDeclarationOption != null) {
1901 			this.insert_space_after_opening_paren_in_method_declaration = JavaCore.INSERT.equals(insertSpaceAfterOpeningParenInMethodDeclarationOption);
1902 		}
1903 		final Object insertSpaceAfterOpeningParenInMethodInvocationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_METHOD_INVOCATION);
1904 		if (insertSpaceAfterOpeningParenInMethodInvocationOption != null) {
1905 			this.insert_space_after_opening_paren_in_method_invocation = JavaCore.INSERT.equals(insertSpaceAfterOpeningParenInMethodInvocationOption);
1906 		}
1907 		final Object insertSpaceAfterOpeningParenInParenthesizedExpressionOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_PARENTHESIZED_EXPRESSION);
1908 		if (insertSpaceAfterOpeningParenInParenthesizedExpressionOption != null) {
1909 			this.insert_space_after_opening_paren_in_parenthesized_expression = JavaCore.INSERT.equals(insertSpaceAfterOpeningParenInParenthesizedExpressionOption);
1910 		}
1911 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_RECORD_DECLARATION, JavaCore.INSERT,
1912 			v -> this.insert_space_after_opening_paren_in_record_declaration = v);
1913 		final Object insertSpaceAfterOpeningParenInSwitchOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_SWITCH);
1914 		if (insertSpaceAfterOpeningParenInSwitchOption != null) {
1915 			this.insert_space_after_opening_paren_in_switch = JavaCore.INSERT.equals(insertSpaceAfterOpeningParenInSwitchOption);
1916 		}
1917 		final Object insertSpaceAfterOpeningParenInSynchronizedOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_SYNCHRONIZED);
1918 		if (insertSpaceAfterOpeningParenInSynchronizedOption != null) {
1919 			this.insert_space_after_opening_paren_in_synchronized = JavaCore.INSERT.equals(insertSpaceAfterOpeningParenInSynchronizedOption);
1920 		}
1921 		final Object insertSpaceAfterOpeningParenInTryOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_TRY);
1922 		if (insertSpaceAfterOpeningParenInTryOption != null) {
1923 			this.insert_space_after_opening_paren_in_try = JavaCore.INSERT.equals(insertSpaceAfterOpeningParenInTryOption);
1924 		}
1925 		final Object insertSpaceAfterOpeningParenInWhileOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_OPENING_PAREN_IN_WHILE);
1926 		if (insertSpaceAfterOpeningParenInWhileOption != null) {
1927 			this.insert_space_after_opening_paren_in_while = JavaCore.INSERT.equals(insertSpaceAfterOpeningParenInWhileOption);
1928 		}
1929 		final Object insertSpaceAfterPostfixOperatorOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_POSTFIX_OPERATOR);
1930 		if (insertSpaceAfterPostfixOperatorOption != null) {
1931 			this.insert_space_after_postfix_operator = JavaCore.INSERT.equals(insertSpaceAfterPostfixOperatorOption);
1932 		}
1933 		final Object insertSpaceAfterPrefixOperatorOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_PREFIX_OPERATOR);
1934 		if (insertSpaceAfterPrefixOperatorOption != null) {
1935 			this.insert_space_after_prefix_operator = JavaCore.INSERT.equals(insertSpaceAfterPrefixOperatorOption);
1936 		}
1937 		final Object insertSpaceAfterQuestionInConditionalOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_QUESTION_IN_CONDITIONAL);
1938 		if (insertSpaceAfterQuestionInConditionalOption != null) {
1939 			this.insert_space_after_question_in_conditional = JavaCore.INSERT.equals(insertSpaceAfterQuestionInConditionalOption);
1940 		}
1941 		final Object insertSpaceAfterQuestionInWildcardOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_QUESTION_IN_WILDCARD);
1942 		if (insertSpaceAfterQuestionInWildcardOption != null) {
1943 			this.insert_space_after_question_in_wilcard = JavaCore.INSERT.equals(insertSpaceAfterQuestionInWildcardOption);
1944 		}
1945 		final Object insertSpaceAfterSemicolonInForOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_SEMICOLON_IN_FOR);
1946 		if (insertSpaceAfterSemicolonInForOption != null) {
1947 			this.insert_space_after_semicolon_in_for = JavaCore.INSERT.equals(insertSpaceAfterSemicolonInForOption);
1948 		}
1949 		final Object insertSpaceAfterSemicolonInTryOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_SEMICOLON_IN_TRY_RESOURCES);
1950 		if (insertSpaceAfterSemicolonInTryOption != null) {
1951 			this.insert_space_after_semicolon_in_try_resources = JavaCore.INSERT.equals(insertSpaceAfterSemicolonInTryOption);
1952 		}
1953 		final Object insertSpaceAfterUnaryOperatorOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_UNARY_OPERATOR);
1954 		if (insertSpaceAfterUnaryOperatorOption != null) {
1955 			this.insert_space_after_unary_operator = JavaCore.INSERT.equals(insertSpaceAfterUnaryOperatorOption);
1956 		}
1957 		final Object insertSpaceBeforeAndInWildcardOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_AND_IN_TYPE_PARAMETER);
1958 		if (insertSpaceBeforeAndInWildcardOption != null) {
1959 			this.insert_space_before_and_in_type_parameter = JavaCore.INSERT.equals(insertSpaceBeforeAndInWildcardOption);
1960 		}
1961 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ARROW_IN_SWITCH_CASE, JavaCore.INSERT,
1962 				v -> this.insert_space_before_arrow_in_switch_case = v);
1963 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ARROW_IN_SWITCH_DEFAULT, JavaCore.INSERT,
1964 				v -> this.insert_space_before_arrow_in_switch_default = v);
1965 		final Object insertSpaceBeforeAtInAnnotationTypeDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_AT_IN_ANNOTATION_TYPE_DECLARATION);
1966 		if (insertSpaceBeforeAtInAnnotationTypeDeclarationOption != null) {
1967 			this.insert_space_before_at_in_annotation_type_declaration = JavaCore.INSERT.equals(insertSpaceBeforeAtInAnnotationTypeDeclarationOption);
1968 		}
1969 		final Object insertSpaceBeforeAssignmentOperatorOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ASSIGNMENT_OPERATOR);
1970 		if (insertSpaceBeforeAssignmentOperatorOption != null) {
1971 			this.insert_space_before_assignment_operator = JavaCore.INSERT.equals(insertSpaceBeforeAssignmentOperatorOption);
1972 		}
1973 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_MULTIPLICATIVE_OPERATOR, JavaCore.INSERT,
1974 				v -> this.insert_space_before_multiplicative_operator = v);
1975 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ADDITIVE_OPERATOR, JavaCore.INSERT,
1976 				v -> this.insert_space_before_additive_operator = v);
1977 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_STRING_CONCATENATION, JavaCore.INSERT,
1978 				v -> this.insert_space_before_string_concatenation = v);
1979 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_SHIFT_OPERATOR, JavaCore.INSERT,
1980 				v -> this.insert_space_before_shift_operator = v);
1981 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_RELATIONAL_OPERATOR, JavaCore.INSERT,
1982 				v -> this.insert_space_before_relational_operator = v);
1983 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_BITWISE_OPERATOR, JavaCore.INSERT,
1984 				v -> this.insert_space_before_bitwise_operator = v);
1985 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_LOGICAL_OPERATOR, JavaCore.INSERT,
1986 				v -> this.insert_space_before_logical_operator = v);
1987 		final Object insertSpaceBeforeClosingAngleBracketInParameterizedTypeReferenceOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_ANGLE_BRACKET_IN_PARAMETERIZED_TYPE_REFERENCE);
1988 		if (insertSpaceBeforeClosingAngleBracketInParameterizedTypeReferenceOption != null) {
1989 			this.insert_space_before_closing_angle_bracket_in_parameterized_type_reference = JavaCore.INSERT.equals(insertSpaceBeforeClosingAngleBracketInParameterizedTypeReferenceOption);
1990 		}
1991 		final Object insertSpaceBeforeClosingAngleBracketInTypeArgumentsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_ANGLE_BRACKET_IN_TYPE_ARGUMENTS);
1992 		if (insertSpaceBeforeClosingAngleBracketInTypeArgumentsOption != null) {
1993 			this.insert_space_before_closing_angle_bracket_in_type_arguments = JavaCore.INSERT.equals(insertSpaceBeforeClosingAngleBracketInTypeArgumentsOption);
1994 		}
1995 		final Object insertSpaceBeforeClosingAngleBracketInTypeParametersOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_ANGLE_BRACKET_IN_TYPE_PARAMETERS);
1996 		if (insertSpaceBeforeClosingAngleBracketInTypeParametersOption != null) {
1997 			this.insert_space_before_closing_angle_bracket_in_type_parameters = JavaCore.INSERT.equals(insertSpaceBeforeClosingAngleBracketInTypeParametersOption);
1998 		}
1999 		final Object insertSpaceBeforeClosingBraceInArrayInitializerOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_BRACE_IN_ARRAY_INITIALIZER);
2000 		if (insertSpaceBeforeClosingBraceInArrayInitializerOption != null) {
2001 			this.insert_space_before_closing_brace_in_array_initializer = JavaCore.INSERT.equals(insertSpaceBeforeClosingBraceInArrayInitializerOption);
2002 		}
2003 		final Object insertSpaceBeforeClosingBracketInArrayAllocationExpressionOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_BRACKET_IN_ARRAY_ALLOCATION_EXPRESSION);
2004 		if (insertSpaceBeforeClosingBracketInArrayAllocationExpressionOption != null) {
2005 			this.insert_space_before_closing_bracket_in_array_allocation_expression = JavaCore.INSERT.equals(insertSpaceBeforeClosingBracketInArrayAllocationExpressionOption);
2006 		}
2007 		final Object insertSpaceBeforeClosingBracketInArrayReferenceOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_BRACKET_IN_ARRAY_REFERENCE);
2008 		if (insertSpaceBeforeClosingBracketInArrayReferenceOption != null) {
2009 			this.insert_space_before_closing_bracket_in_array_reference = JavaCore.INSERT.equals(insertSpaceBeforeClosingBracketInArrayReferenceOption);
2010 		}
2011 		final Object insertSpaceBeforeClosingParenInAnnotationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_ANNOTATION);
2012 		if (insertSpaceBeforeClosingParenInAnnotationOption != null) {
2013 			this.insert_space_before_closing_paren_in_annotation = JavaCore.INSERT.equals(insertSpaceBeforeClosingParenInAnnotationOption);
2014 		}
2015 		final Object insertSpaceBeforeClosingParenInCastOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_CAST);
2016 		if (insertSpaceBeforeClosingParenInCastOption != null) {
2017 			this.insert_space_before_closing_paren_in_cast = JavaCore.INSERT.equals(insertSpaceBeforeClosingParenInCastOption);
2018 		}
2019 		final Object insertSpaceBeforeClosingParenInCatchOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_CATCH);
2020 		if (insertSpaceBeforeClosingParenInCatchOption != null) {
2021 			this.insert_space_before_closing_paren_in_catch = JavaCore.INSERT.equals(insertSpaceBeforeClosingParenInCatchOption);
2022 		}
2023 		final Object insertSpaceBeforeClosingParenInConstructorDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_CONSTRUCTOR_DECLARATION);
2024 		if (insertSpaceBeforeClosingParenInConstructorDeclarationOption != null) {
2025 			this.insert_space_before_closing_paren_in_constructor_declaration = JavaCore.INSERT.equals(insertSpaceBeforeClosingParenInConstructorDeclarationOption);
2026 		}
2027 		final Object insertSpaceBeforeClosingParenInEnumConstantOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_ENUM_CONSTANT);
2028 		if (insertSpaceBeforeClosingParenInEnumConstantOption != null) {
2029 			this.insert_space_before_closing_paren_in_enum_constant = JavaCore.INSERT.equals(insertSpaceBeforeClosingParenInEnumConstantOption);
2030 		}
2031 		final Object insertSpaceBeforeClosingParenInForOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_FOR);
2032 		if (insertSpaceBeforeClosingParenInForOption != null) {
2033 			this.insert_space_before_closing_paren_in_for = JavaCore.INSERT.equals(insertSpaceBeforeClosingParenInForOption);
2034 		}
2035 		final Object insertSpaceBeforeClosingParenInIfOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_IF);
2036 		if (insertSpaceBeforeClosingParenInIfOption != null) {
2037 			this.insert_space_before_closing_paren_in_if = JavaCore.INSERT.equals(insertSpaceBeforeClosingParenInIfOption);
2038 		}
2039 		final Object insertSpaceBeforeClosingParenInMethodDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_METHOD_DECLARATION);
2040 		if (insertSpaceBeforeClosingParenInMethodDeclarationOption != null) {
2041 			this.insert_space_before_closing_paren_in_method_declaration = JavaCore.INSERT.equals(insertSpaceBeforeClosingParenInMethodDeclarationOption);
2042 		}
2043 		final Object insertSpaceBeforeClosingParenInMethodInvocationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_METHOD_INVOCATION);
2044 		if (insertSpaceBeforeClosingParenInMethodInvocationOption != null) {
2045 			this.insert_space_before_closing_paren_in_method_invocation = JavaCore.INSERT.equals(insertSpaceBeforeClosingParenInMethodInvocationOption);
2046 		}
2047 		final Object insertSpaceBeforeClosingParenInParenthesizedExpressionOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_PARENTHESIZED_EXPRESSION);
2048 		if (insertSpaceBeforeClosingParenInParenthesizedExpressionOption != null) {
2049 			this.insert_space_before_closing_paren_in_parenthesized_expression = JavaCore.INSERT.equals(insertSpaceBeforeClosingParenInParenthesizedExpressionOption);
2050 		}
2051 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_RECORD_DECLARATION, JavaCore.INSERT,
2052 			v -> this.insert_space_before_closing_paren_in_record_declaration = v);
2053 		final Object insertSpaceBeforeClosingParenInSwitchOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_SWITCH);
2054 		if (insertSpaceBeforeClosingParenInSwitchOption != null) {
2055 			this.insert_space_before_closing_paren_in_switch = JavaCore.INSERT.equals(insertSpaceBeforeClosingParenInSwitchOption);
2056 		}
2057 		final Object insertSpaceBeforeClosingParenInSynchronizedOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_SYNCHRONIZED);
2058 		if (insertSpaceBeforeClosingParenInSynchronizedOption != null) {
2059 			this.insert_space_before_closing_paren_in_synchronized = JavaCore.INSERT.equals(insertSpaceBeforeClosingParenInSynchronizedOption);
2060 		}
2061 		final Object insertSpaceBeforeClosingParenInTryOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_TRY);
2062 		if (insertSpaceBeforeClosingParenInTryOption != null) {
2063 			this.insert_space_before_closing_paren_in_try = JavaCore.INSERT.equals(insertSpaceBeforeClosingParenInTryOption);
2064 		}
2065 		final Object insertSpaceBeforeClosingParenInWhileOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_CLOSING_PAREN_IN_WHILE);
2066 		if (insertSpaceBeforeClosingParenInWhileOption != null) {
2067 			this.insert_space_before_closing_paren_in_while = JavaCore.INSERT.equals(insertSpaceBeforeClosingParenInWhileOption);
2068 		}
2069 		final Object insertSpaceBeforeColonInAssertOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COLON_IN_ASSERT);
2070 		if (insertSpaceBeforeColonInAssertOption != null) {
2071 			this.insert_space_before_colon_in_assert = JavaCore.INSERT.equals(insertSpaceBeforeColonInAssertOption);
2072 		}
2073 		final Object insertSpaceBeforeColonInCaseOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COLON_IN_CASE);
2074 		if (insertSpaceBeforeColonInCaseOption != null) {
2075 			this.insert_space_before_colon_in_case = JavaCore.INSERT.equals(insertSpaceBeforeColonInCaseOption);
2076 		}
2077 		final Object insertSpaceBeforeColonInConditionalOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COLON_IN_CONDITIONAL);
2078 		if (insertSpaceBeforeColonInConditionalOption != null) {
2079 			this.insert_space_before_colon_in_conditional = JavaCore.INSERT.equals(insertSpaceBeforeColonInConditionalOption);
2080 		}
2081 		final Object insertSpaceBeforeColonInDefaultOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COLON_IN_DEFAULT);
2082 		if (insertSpaceBeforeColonInDefaultOption != null) {
2083 			this.insert_space_before_colon_in_default = JavaCore.INSERT.equals(insertSpaceBeforeColonInDefaultOption);
2084 		}
2085 		final Object insertSpaceBeforeColonInForOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COLON_IN_FOR);
2086 		if (insertSpaceBeforeColonInForOption != null) {
2087 			this.insert_space_before_colon_in_for = JavaCore.INSERT.equals(insertSpaceBeforeColonInForOption);
2088 		}
2089 		final Object insertSpaceBeforeColonInLabeledStatementOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COLON_IN_LABELED_STATEMENT);
2090 		if (insertSpaceBeforeColonInLabeledStatementOption != null) {
2091 			this.insert_space_before_colon_in_labeled_statement = JavaCore.INSERT.equals(insertSpaceBeforeColonInLabeledStatementOption);
2092 		}
2093 		final Object insertSpaceBeforeCommaInAllocationExpressionOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_ALLOCATION_EXPRESSION);
2094 		if (insertSpaceBeforeCommaInAllocationExpressionOption != null) {
2095 			this.insert_space_before_comma_in_allocation_expression = JavaCore.INSERT.equals(insertSpaceBeforeCommaInAllocationExpressionOption);
2096 		}
2097 		final Object insertSpaceBeforeCommaInAnnotationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_ANNOTATION);
2098 		if (insertSpaceBeforeCommaInAnnotationOption != null) {
2099 			this.insert_space_before_comma_in_annotation = JavaCore.INSERT.equals(insertSpaceBeforeCommaInAnnotationOption);
2100 		}
2101 		final Object insertSpaceBeforeCommaInArrayInitializerOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_ARRAY_INITIALIZER);
2102 		if (insertSpaceBeforeCommaInArrayInitializerOption != null) {
2103 			this.insert_space_before_comma_in_array_initializer = JavaCore.INSERT.equals(insertSpaceBeforeCommaInArrayInitializerOption);
2104 		}
2105 		final Object insertSpaceBeforeCommaInConstructorDeclarationParametersOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_CONSTRUCTOR_DECLARATION_PARAMETERS);
2106 		if (insertSpaceBeforeCommaInConstructorDeclarationParametersOption != null) {
2107 			this.insert_space_before_comma_in_constructor_declaration_parameters = JavaCore.INSERT.equals(insertSpaceBeforeCommaInConstructorDeclarationParametersOption);
2108 		}
2109 		final Object insertSpaceBeforeCommaInConstructorDeclarationThrowsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_CONSTRUCTOR_DECLARATION_THROWS);
2110 		if (insertSpaceBeforeCommaInConstructorDeclarationThrowsOption != null) {
2111 			this.insert_space_before_comma_in_constructor_declaration_throws = JavaCore.INSERT.equals(insertSpaceBeforeCommaInConstructorDeclarationThrowsOption);
2112 		}
2113 		final Object insertSpaceBeforeCommaInEnumConstantArgumentsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_ENUM_CONSTANT_ARGUMENTS);
2114 		if (insertSpaceBeforeCommaInEnumConstantArgumentsOption != null) {
2115 			this.insert_space_before_comma_in_enum_constant_arguments = JavaCore.INSERT.equals(insertSpaceBeforeCommaInEnumConstantArgumentsOption);
2116 		}
2117 		final Object insertSpaceBeforeCommaInEnumDeclarationsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_ENUM_DECLARATIONS);
2118 		if (insertSpaceBeforeCommaInEnumDeclarationsOption != null) {
2119 			this.insert_space_before_comma_in_enum_declarations = JavaCore.INSERT.equals(insertSpaceBeforeCommaInEnumDeclarationsOption);
2120 		}
2121 		final Object insertSpaceBeforeCommaInExplicitConstructorCallArgumentsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_EXPLICIT_CONSTRUCTOR_CALL_ARGUMENTS);
2122 		if (insertSpaceBeforeCommaInExplicitConstructorCallArgumentsOption != null) {
2123 			this.insert_space_before_comma_in_explicit_constructor_call_arguments = JavaCore.INSERT.equals(insertSpaceBeforeCommaInExplicitConstructorCallArgumentsOption);
2124 		}
2125 		final Object insertSpaceBeforeCommaInForIncrementsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_FOR_INCREMENTS);
2126 		if (insertSpaceBeforeCommaInForIncrementsOption != null) {
2127 			this.insert_space_before_comma_in_for_increments = JavaCore.INSERT.equals(insertSpaceBeforeCommaInForIncrementsOption);
2128 		}
2129 		final Object insertSpaceBeforeCommaInForInitsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_FOR_INITS);
2130 		if (insertSpaceBeforeCommaInForInitsOption != null) {
2131 			this.insert_space_before_comma_in_for_inits = JavaCore.INSERT.equals(insertSpaceBeforeCommaInForInitsOption);
2132 		}
2133 		final Object insertSpaceBeforeCommaInMethodInvocationArgumentsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_METHOD_INVOCATION_ARGUMENTS);
2134 		if (insertSpaceBeforeCommaInMethodInvocationArgumentsOption != null) {
2135 			this.insert_space_before_comma_in_method_invocation_arguments = JavaCore.INSERT.equals(insertSpaceBeforeCommaInMethodInvocationArgumentsOption);
2136 		}
2137 		final Object insertSpaceBeforeCommaInMethodDeclarationParametersOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_METHOD_DECLARATION_PARAMETERS);
2138 		if (insertSpaceBeforeCommaInMethodDeclarationParametersOption != null) {
2139 			this.insert_space_before_comma_in_method_declaration_parameters = JavaCore.INSERT.equals(insertSpaceBeforeCommaInMethodDeclarationParametersOption);
2140 		}
2141 		final Object insertSpaceBeforeCommaInMethodDeclarationThrowsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_METHOD_DECLARATION_THROWS);
2142 		if (insertSpaceBeforeCommaInMethodDeclarationThrowsOption != null) {
2143 			this.insert_space_before_comma_in_method_declaration_throws = JavaCore.INSERT.equals(insertSpaceBeforeCommaInMethodDeclarationThrowsOption);
2144 		}
2145 		final Object insertSpaceBeforeCommaInMultipleFieldDeclarationsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_MULTIPLE_FIELD_DECLARATIONS);
2146 		if (insertSpaceBeforeCommaInMultipleFieldDeclarationsOption != null) {
2147 			this.insert_space_before_comma_in_multiple_field_declarations = JavaCore.INSERT.equals(insertSpaceBeforeCommaInMultipleFieldDeclarationsOption);
2148 		}
2149 		final Object insertSpaceBeforeCommaInMultipleLocalDeclarationsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_MULTIPLE_LOCAL_DECLARATIONS);
2150 		if (insertSpaceBeforeCommaInMultipleLocalDeclarationsOption != null) {
2151 			this.insert_space_before_comma_in_multiple_local_declarations = JavaCore.INSERT.equals(insertSpaceBeforeCommaInMultipleLocalDeclarationsOption);
2152 		}
2153 		final Object insertSpaceBeforeCommaInParameterizedTypeReferenceOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_PARAMETERIZED_TYPE_REFERENCE);
2154 		if (insertSpaceBeforeCommaInParameterizedTypeReferenceOption != null) {
2155 			this.insert_space_before_comma_in_parameterized_type_reference = JavaCore.INSERT.equals(insertSpaceBeforeCommaInParameterizedTypeReferenceOption);
2156 		}
2157 		final Object insertSpaceBeforeCommaInSuperinterfacesOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_SUPERINTERFACES);
2158 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_RECORD_COMPONENTS, JavaCore.INSERT,
2159 				v -> this.insert_space_before_comma_in_record_components = v);
2160 		if (insertSpaceBeforeCommaInSuperinterfacesOption != null) {
2161 			this.insert_space_before_comma_in_superinterfaces = JavaCore.INSERT.equals(insertSpaceBeforeCommaInSuperinterfacesOption);
2162 		}
2163 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_SWITCH_CASE_EXPRESSIONS, JavaCore.INSERT,
2164 				v -> this.insert_space_before_comma_in_switch_case_expressions = v);
2165 		final Object insertSpaceBeforeCommaInTypeArgumentsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_TYPE_ARGUMENTS);
2166 		if (insertSpaceBeforeCommaInTypeArgumentsOption != null) {
2167 			this.insert_space_before_comma_in_type_arguments = JavaCore.INSERT.equals(insertSpaceBeforeCommaInTypeArgumentsOption);
2168 		}
2169 		final Object insertSpaceBeforeCommaInTypeParametersOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_TYPE_PARAMETERS);
2170 		if (insertSpaceBeforeCommaInTypeParametersOption != null) {
2171 			this.insert_space_before_comma_in_type_parameters = JavaCore.INSERT.equals(insertSpaceBeforeCommaInTypeParametersOption);
2172 		}
2173 		final Object insertSpaceBeforeEllipsisOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ELLIPSIS);
2174 		if (insertSpaceBeforeEllipsisOption != null) {
2175 			this.insert_space_before_ellipsis = JavaCore.INSERT.equals(insertSpaceBeforeEllipsisOption);
2176 		}
2177 		final Object insertSpaceBeforeLambdaArrowOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_LAMBDA_ARROW);
2178 		if (insertSpaceBeforeLambdaArrowOption != null) {
2179 			this.insert_space_before_lambda_arrow = JavaCore.INSERT.equals(insertSpaceBeforeLambdaArrowOption);
2180 		}
2181 		final Object insertSpaceBeforeOpeningAngleBrackerInParameterizedTypeReferenceOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_ANGLE_BRACKET_IN_PARAMETERIZED_TYPE_REFERENCE);
2182 		if (insertSpaceBeforeOpeningAngleBrackerInParameterizedTypeReferenceOption != null) {
2183 			this.insert_space_before_opening_angle_bracket_in_parameterized_type_reference = JavaCore.INSERT.equals(insertSpaceBeforeOpeningAngleBrackerInParameterizedTypeReferenceOption);
2184 		}
2185 		final Object insertSpaceBeforeOpeningAngleBrackerInTypeArgumentsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_ANGLE_BRACKET_IN_TYPE_ARGUMENTS);
2186 		if (insertSpaceBeforeOpeningAngleBrackerInTypeArgumentsOption != null) {
2187 			this.insert_space_before_opening_angle_bracket_in_type_arguments = JavaCore.INSERT.equals(insertSpaceBeforeOpeningAngleBrackerInTypeArgumentsOption);
2188 		}
2189 		final Object insertSpaceBeforeOpeningAngleBrackerInTypeParametersOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_ANGLE_BRACKET_IN_TYPE_PARAMETERS);
2190 		if (insertSpaceBeforeOpeningAngleBrackerInTypeParametersOption != null) {
2191 			this.insert_space_before_opening_angle_bracket_in_type_parameters = JavaCore.INSERT.equals(insertSpaceBeforeOpeningAngleBrackerInTypeParametersOption);
2192 		}
2193 		final Object insertSpaceBeforeOpeningBraceInAnnotationTypeDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ANNOTATION_TYPE_DECLARATION);
2194 		if (insertSpaceBeforeOpeningBraceInAnnotationTypeDeclarationOption != null) {
2195 			this.insert_space_before_opening_brace_in_annotation_type_declaration = JavaCore.INSERT.equals(insertSpaceBeforeOpeningBraceInAnnotationTypeDeclarationOption);
2196 		}
2197 		final Object insertSpaceBeforeOpeningBraceInAnonymousTypeDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ANONYMOUS_TYPE_DECLARATION);
2198 		if (insertSpaceBeforeOpeningBraceInAnonymousTypeDeclarationOption != null) {
2199 			this.insert_space_before_opening_brace_in_anonymous_type_declaration = JavaCore.INSERT.equals(insertSpaceBeforeOpeningBraceInAnonymousTypeDeclarationOption);
2200 		}
2201 		final Object insertSpaceBeforeOpeningBraceInArrayInitializerOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ARRAY_INITIALIZER);
2202 		if (insertSpaceBeforeOpeningBraceInArrayInitializerOption != null) {
2203 			this.insert_space_before_opening_brace_in_array_initializer = JavaCore.INSERT.equals(insertSpaceBeforeOpeningBraceInArrayInitializerOption);
2204 		}
2205 		final Object insertSpaceBeforeOpeningBraceInBlockOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_BLOCK);
2206 		if (insertSpaceBeforeOpeningBraceInBlockOption != null) {
2207 			this.insert_space_before_opening_brace_in_block = JavaCore.INSERT.equals(insertSpaceBeforeOpeningBraceInBlockOption);
2208 		}
2209 		final Object insertSpaceBeforeOpeningBraceInConstructorDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_CONSTRUCTOR_DECLARATION);
2210 		if (insertSpaceBeforeOpeningBraceInConstructorDeclarationOption != null) {
2211 			this.insert_space_before_opening_brace_in_constructor_declaration = JavaCore.INSERT.equals(insertSpaceBeforeOpeningBraceInConstructorDeclarationOption);
2212 		}
2213 		final Object insertSpaceBeforeOpeningBraceInEnumDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ENUM_DECLARATION);
2214 		if (insertSpaceBeforeOpeningBraceInEnumDeclarationOption != null) {
2215 			this.insert_space_before_opening_brace_in_enum_declaration = JavaCore.INSERT.equals(insertSpaceBeforeOpeningBraceInEnumDeclarationOption);
2216 		}
2217 		final Object insertSpaceBeforeOpeningBraceInEnumConstantOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_ENUM_CONSTANT);
2218 		if (insertSpaceBeforeOpeningBraceInEnumConstantOption != null) {
2219 			this.insert_space_before_opening_brace_in_enum_constant = JavaCore.INSERT.equals(insertSpaceBeforeOpeningBraceInEnumConstantOption);
2220 		}
2221 		final Object insertSpaceBeforeOpeningBraceInMethodDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_METHOD_DECLARATION);
2222 		if (insertSpaceBeforeOpeningBraceInMethodDeclarationOption != null) {
2223 			this.insert_space_before_opening_brace_in_method_declaration = JavaCore.INSERT.equals(insertSpaceBeforeOpeningBraceInMethodDeclarationOption);
2224 		}
2225 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_RECORD_CONSTRUCTOR, JavaCore.INSERT,
2226 				v -> this.insert_space_before_opening_brace_in_record_constructor = v);
2227 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_RECORD_DECLARATION, JavaCore.INSERT,
2228 			v -> this.insert_space_before_opening_brace_in_record_declaration = v);
2229 		final Object insertSpaceBeforeOpeningBraceInTypeDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_TYPE_DECLARATION);
2230 		if (insertSpaceBeforeOpeningBraceInTypeDeclarationOption != null) {
2231 			this.insert_space_before_opening_brace_in_type_declaration = JavaCore.INSERT.equals(insertSpaceBeforeOpeningBraceInTypeDeclarationOption);
2232 		}
2233 		final Object insertSpaceBeforeOpeningBracketInArrayAllocationExpressionOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACKET_IN_ARRAY_ALLOCATION_EXPRESSION);
2234 		if (insertSpaceBeforeOpeningBracketInArrayAllocationExpressionOption != null) {
2235 			this.insert_space_before_opening_bracket_in_array_allocation_expression = JavaCore.INSERT.equals(insertSpaceBeforeOpeningBracketInArrayAllocationExpressionOption);
2236 		}
2237 		final Object insertSpaceBeforeOpeningBracketInArrayReferenceOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACKET_IN_ARRAY_REFERENCE);
2238 		if (insertSpaceBeforeOpeningBracketInArrayReferenceOption != null) {
2239 			this.insert_space_before_opening_bracket_in_array_reference = JavaCore.INSERT.equals(insertSpaceBeforeOpeningBracketInArrayReferenceOption);
2240 		}
2241 		final Object insertSpaceBeforeOpeningBracketInArrayTypeReferenceOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACKET_IN_ARRAY_TYPE_REFERENCE);
2242 		if (insertSpaceBeforeOpeningBracketInArrayTypeReferenceOption != null) {
2243 			this.insert_space_before_opening_bracket_in_array_type_reference = JavaCore.INSERT.equals(insertSpaceBeforeOpeningBracketInArrayTypeReferenceOption);
2244 		}
2245 		final Object insertSpaceBeforeOpeningParenInAnnotationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_ANNOTATION);
2246 		if (insertSpaceBeforeOpeningParenInAnnotationOption != null) {
2247 			this.insert_space_before_opening_paren_in_annotation = JavaCore.INSERT.equals(insertSpaceBeforeOpeningParenInAnnotationOption);
2248 		}
2249 		final Object insertSpaceBeforeOpeningParenInAnnotationTypeMemberDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_ANNOTATION_TYPE_MEMBER_DECLARATION);
2250 		if (insertSpaceBeforeOpeningParenInAnnotationTypeMemberDeclarationOption != null) {
2251 			this.insert_space_before_opening_paren_in_annotation_type_member_declaration = JavaCore.INSERT.equals(insertSpaceBeforeOpeningParenInAnnotationTypeMemberDeclarationOption);
2252 		}
2253 		final Object insertSpaceBeforeOpeningParenInCatchOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_CATCH);
2254 		if (insertSpaceBeforeOpeningParenInCatchOption != null) {
2255 			this.insert_space_before_opening_paren_in_catch = JavaCore.INSERT.equals(insertSpaceBeforeOpeningParenInCatchOption);
2256 		}
2257 		final Object insertSpaceBeforeOpeningParenInConstructorDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_CONSTRUCTOR_DECLARATION);
2258 		if (insertSpaceBeforeOpeningParenInConstructorDeclarationOption != null) {
2259 			this.insert_space_before_opening_paren_in_constructor_declaration = JavaCore.INSERT.equals(insertSpaceBeforeOpeningParenInConstructorDeclarationOption);
2260 		}
2261 		final Object insertSpaceBeforeOpeningParenInEnumConstantOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_ENUM_CONSTANT);
2262 		if (insertSpaceBeforeOpeningParenInEnumConstantOption != null) {
2263 			this.insert_space_before_opening_paren_in_enum_constant = JavaCore.INSERT.equals(insertSpaceBeforeOpeningParenInEnumConstantOption);
2264 		}
2265 		final Object insertSpaceBeforeOpeningParenInForOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_FOR);
2266 		if (insertSpaceBeforeOpeningParenInForOption != null) {
2267 			this.insert_space_before_opening_paren_in_for = JavaCore.INSERT.equals(insertSpaceBeforeOpeningParenInForOption);
2268 		}
2269 		final Object insertSpaceBeforeOpeningParenInIfOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_IF);
2270 		if (insertSpaceBeforeOpeningParenInIfOption != null) {
2271 			this.insert_space_before_opening_paren_in_if = JavaCore.INSERT.equals(insertSpaceBeforeOpeningParenInIfOption);
2272 		}
2273 		final Object insertSpaceBeforeOpeningParenInMethodInvocationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_METHOD_INVOCATION);
2274 		if (insertSpaceBeforeOpeningParenInMethodInvocationOption != null) {
2275 			this.insert_space_before_opening_paren_in_method_invocation = JavaCore.INSERT.equals(insertSpaceBeforeOpeningParenInMethodInvocationOption);
2276 		}
2277 		final Object insertSpaceBeforeOpeningParenInMethodDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_METHOD_DECLARATION);
2278 		if (insertSpaceBeforeOpeningParenInMethodDeclarationOption != null) {
2279 			this.insert_space_before_opening_paren_in_method_declaration = JavaCore.INSERT.equals(insertSpaceBeforeOpeningParenInMethodDeclarationOption);
2280 		}
2281 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_RECORD_DECLARATION, JavaCore.INSERT,
2282 				v -> this.insert_space_before_opening_paren_in_record_declaration = v);
2283 		final Object insertSpaceBeforeOpeningParenInSwitchOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_SWITCH);
2284 		if (insertSpaceBeforeOpeningParenInSwitchOption != null) {
2285 			this.insert_space_before_opening_paren_in_switch = JavaCore.INSERT.equals(insertSpaceBeforeOpeningParenInSwitchOption);
2286 		}
2287 		final Object insertSpaceBeforeOpeningBraceInSwitchOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_BRACE_IN_SWITCH);
2288 		if (insertSpaceBeforeOpeningBraceInSwitchOption != null) {
2289 			this.insert_space_before_opening_brace_in_switch = JavaCore.INSERT.equals(insertSpaceBeforeOpeningBraceInSwitchOption);
2290 		}
2291 		final Object insertSpaceBeforeOpeningParenInSynchronizedOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_SYNCHRONIZED);
2292 		if (insertSpaceBeforeOpeningParenInSynchronizedOption != null) {
2293 			this.insert_space_before_opening_paren_in_synchronized = JavaCore.INSERT.equals(insertSpaceBeforeOpeningParenInSynchronizedOption);
2294 		}
2295 		final Object insertSpaceBeforeOpeningParenInTryOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_TRY);
2296 		if (insertSpaceBeforeOpeningParenInTryOption != null) {
2297 			this.insert_space_before_opening_paren_in_try = JavaCore.INSERT.equals(insertSpaceBeforeOpeningParenInTryOption);
2298 		}
2299 		final Object insertSpaceBeforeOpeningParenInParenthesizedExpressionOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_PARENTHESIZED_EXPRESSION);
2300 		if (insertSpaceBeforeOpeningParenInParenthesizedExpressionOption != null) {
2301 			this.insert_space_before_opening_paren_in_parenthesized_expression = JavaCore.INSERT.equals(insertSpaceBeforeOpeningParenInParenthesizedExpressionOption);
2302 		}
2303 		final Object insertSpaceBeforeOpeningParenInWhileOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_OPENING_PAREN_IN_WHILE);
2304 		if (insertSpaceBeforeOpeningParenInWhileOption != null) {
2305 			this.insert_space_before_opening_paren_in_while = JavaCore.INSERT.equals(insertSpaceBeforeOpeningParenInWhileOption);
2306 		}
2307 		final Object insertSpaceBeforeParenthesizedExpressionInReturnOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_PARENTHESIZED_EXPRESSION_IN_RETURN);
2308 		if (insertSpaceBeforeParenthesizedExpressionInReturnOption != null) {
2309 			this.insert_space_before_parenthesized_expression_in_return = JavaCore.INSERT.equals(insertSpaceBeforeParenthesizedExpressionInReturnOption);
2310 		}
2311 		final Object insertSpaceBeforeParenthesizedExpressionInThrowOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_PARENTHESIZED_EXPRESSION_IN_THROW);
2312 		if (insertSpaceBeforeParenthesizedExpressionInThrowOption != null) {
2313 			this.insert_space_before_parenthesized_expression_in_throw = JavaCore.INSERT.equals(insertSpaceBeforeParenthesizedExpressionInThrowOption);
2314 		}
2315 		final Object insertSpaceBeforePostfixOperatorOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_POSTFIX_OPERATOR);
2316 		if (insertSpaceBeforePostfixOperatorOption != null) {
2317 			this.insert_space_before_postfix_operator = JavaCore.INSERT.equals(insertSpaceBeforePostfixOperatorOption);
2318 		}
2319 		final Object insertSpaceBeforePrefixOperatorOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_PREFIX_OPERATOR);
2320 		if (insertSpaceBeforePrefixOperatorOption != null) {
2321 			this.insert_space_before_prefix_operator = JavaCore.INSERT.equals(insertSpaceBeforePrefixOperatorOption);
2322 		}
2323 		final Object insertSpaceBeforeQuestionInConditionalOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_QUESTION_IN_CONDITIONAL);
2324 		if (insertSpaceBeforeQuestionInConditionalOption != null) {
2325 			this.insert_space_before_question_in_conditional = JavaCore.INSERT.equals(insertSpaceBeforeQuestionInConditionalOption);
2326 		}
2327 		final Object insertSpaceBeforeQuestionInWildcardOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_QUESTION_IN_WILDCARD);
2328 		if (insertSpaceBeforeQuestionInWildcardOption != null) {
2329 			this.insert_space_before_question_in_wilcard = JavaCore.INSERT.equals(insertSpaceBeforeQuestionInWildcardOption);
2330 		}
2331 		final Object insertSpaceBeforeSemicolonOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_SEMICOLON);
2332 		if (insertSpaceBeforeSemicolonOption != null) {
2333 			this.insert_space_before_semicolon = JavaCore.INSERT.equals(insertSpaceBeforeSemicolonOption);
2334 		}
2335 		final Object insertSpaceBeforeSemicolonInForOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_SEMICOLON_IN_FOR);
2336 		if (insertSpaceBeforeSemicolonInForOption != null) {
2337 			this.insert_space_before_semicolon_in_for = JavaCore.INSERT.equals(insertSpaceBeforeSemicolonInForOption);
2338 		}
2339 		final Object insertSpaceBeforeSemicolonInTryOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_SEMICOLON_IN_TRY_RESOURCES);
2340 		if (insertSpaceBeforeSemicolonInTryOption != null) {
2341 			this.insert_space_before_semicolon_in_try_resources = JavaCore.INSERT.equals(insertSpaceBeforeSemicolonInTryOption);
2342 		}
2343 		final Object insertSpaceBeforeUnaryOperatorOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_UNARY_OPERATOR);
2344 		if (insertSpaceBeforeUnaryOperatorOption != null) {
2345 			this.insert_space_before_unary_operator = JavaCore.INSERT.equals(insertSpaceBeforeUnaryOperatorOption);
2346 		}
2347 		final Object insertSpaceBetweenBracketsInArrayTypeReferenceOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_BRACKETS_IN_ARRAY_TYPE_REFERENCE);
2348 		if (insertSpaceBetweenBracketsInArrayTypeReferenceOption != null) {
2349 			this.insert_space_between_brackets_in_array_type_reference = JavaCore.INSERT.equals(insertSpaceBetweenBracketsInArrayTypeReferenceOption);
2350 		}
2351 		final Object insertSpaceBetweenEmptyBracesInArrayInitializerOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_BRACES_IN_ARRAY_INITIALIZER);
2352 		if (insertSpaceBetweenEmptyBracesInArrayInitializerOption != null) {
2353 			this.insert_space_between_empty_braces_in_array_initializer = JavaCore.INSERT.equals(insertSpaceBetweenEmptyBracesInArrayInitializerOption);
2354 		}
2355 		final Object insertSpaceBetweenEmptyBracketsInArrayAllocationExpressionOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_BRACKETS_IN_ARRAY_ALLOCATION_EXPRESSION);
2356 		if (insertSpaceBetweenEmptyBracketsInArrayAllocationExpressionOption != null) {
2357 			this.insert_space_between_empty_brackets_in_array_allocation_expression = JavaCore.INSERT.equals(insertSpaceBetweenEmptyBracketsInArrayAllocationExpressionOption);
2358 		}
2359 		final Object insertSpaceBetweenEmptyParensInConstructorDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_CONSTRUCTOR_DECLARATION);
2360 		if (insertSpaceBetweenEmptyParensInConstructorDeclarationOption != null) {
2361 			this.insert_space_between_empty_parens_in_constructor_declaration = JavaCore.INSERT.equals(insertSpaceBetweenEmptyParensInConstructorDeclarationOption);
2362 		}
2363 		final Object insertSpaceBetweenEmptyParensInAnnotationTypeMemberDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_ANNOTATION_TYPE_MEMBER_DECLARATION);
2364 		if (insertSpaceBetweenEmptyParensInAnnotationTypeMemberDeclarationOption != null) {
2365 			this.insert_space_between_empty_parens_in_annotation_type_member_declaration = JavaCore.INSERT.equals(insertSpaceBetweenEmptyParensInAnnotationTypeMemberDeclarationOption);
2366 		}
2367 		final Object insertSpaceBetweenEmptyParensInEnumConstantOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_ENUM_CONSTANT);
2368 		if (insertSpaceBetweenEmptyParensInEnumConstantOption != null) {
2369 			this.insert_space_between_empty_parens_in_enum_constant = JavaCore.INSERT.equals(insertSpaceBetweenEmptyParensInEnumConstantOption);
2370 		}
2371 		final Object insertSpaceBetweenEmptyParensInMethodDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_METHOD_DECLARATION);
2372 		if (insertSpaceBetweenEmptyParensInMethodDeclarationOption != null) {
2373 			this.insert_space_between_empty_parens_in_method_declaration = JavaCore.INSERT.equals(insertSpaceBetweenEmptyParensInMethodDeclarationOption);
2374 		}
2375 		final Object insertSpaceBetweenEmptyParensInMethodInvocationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BETWEEN_EMPTY_PARENS_IN_METHOD_INVOCATION);
2376 		if (insertSpaceBetweenEmptyParensInMethodInvocationOption != null) {
2377 			this.insert_space_between_empty_parens_in_method_invocation = JavaCore.INSERT.equals(insertSpaceBetweenEmptyParensInMethodInvocationOption);
2378 		}
2379 		final Object compactElseIfOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMPACT_ELSE_IF);
2380 		if (compactElseIfOption != null) {
2381 			this.compact_else_if = DefaultCodeFormatterConstants.TRUE.equals(compactElseIfOption);
2382 		}
2383 		final Object keepGuardianClauseOnOneLineOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_GUARDIAN_CLAUSE_ON_ONE_LINE);
2384 		if (keepGuardianClauseOnOneLineOption != null) {
2385 			this.keep_guardian_clause_on_one_line = DefaultCodeFormatterConstants.TRUE.equals(keepGuardianClauseOnOneLineOption);
2386 		}
2387 		final Object keepElseStatementOnSameLineOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_ELSE_STATEMENT_ON_SAME_LINE);
2388 		if (keepElseStatementOnSameLineOption != null) {
2389 			this.keep_else_statement_on_same_line = DefaultCodeFormatterConstants.TRUE.equals(keepElseStatementOnSameLineOption);
2390 		}
2391 		final Object keepEmptyArrayInitializerOnOneLineOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_EMPTY_ARRAY_INITIALIZER_ON_ONE_LINE);
2392 		if (keepEmptyArrayInitializerOnOneLineOption != null) {
2393 			this.keep_empty_array_initializer_on_one_line = DefaultCodeFormatterConstants.TRUE.equals(keepEmptyArrayInitializerOnOneLineOption);
2394 		}
2395 		final Object keepSimpleIfOnOneLineOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_SIMPLE_IF_ON_ONE_LINE);
2396 		if (keepSimpleIfOnOneLineOption != null) {
2397 			this.keep_simple_if_on_one_line = DefaultCodeFormatterConstants.TRUE.equals(keepSimpleIfOnOneLineOption);
2398 		}
2399 		final Object keepThenStatementOnSameLineOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_THEN_STATEMENT_ON_SAME_LINE);
2400 		if (keepThenStatementOnSameLineOption != null) {
2401 			this.keep_then_statement_on_same_line = DefaultCodeFormatterConstants.TRUE.equals(keepThenStatementOnSameLineOption);
2402 		}
2403 		final Object keepSimpleForBodyOnSameLineOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_SIMPLE_FOR_BODY_ON_SAME_LINE);
2404 		if (keepSimpleForBodyOnSameLineOption != null) {
2405 			this.keep_simple_for_body_on_same_line = DefaultCodeFormatterConstants.TRUE.equals(keepSimpleForBodyOnSameLineOption);
2406 		}
2407 		final Object keepSimpleWhileBodyOnSameLineOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_SIMPLE_WHILE_BODY_ON_SAME_LINE);
2408 		if (keepSimpleWhileBodyOnSameLineOption != null) {
2409 			this.keep_simple_while_body_on_same_line = DefaultCodeFormatterConstants.TRUE.equals(keepSimpleWhileBodyOnSameLineOption);
2410 		}
2411 		final Object keepSimpleDoWhileBodyOnSameLineOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_SIMPLE_DO_WHILE_BODY_ON_SAME_LINE);
2412 		if (keepSimpleDoWhileBodyOnSameLineOption != null) {
2413 			this.keep_simple_do_while_body_on_same_line = DefaultCodeFormatterConstants.TRUE.equals(keepSimpleDoWhileBodyOnSameLineOption);
2414 		}
2415 		final Object neverIndentBlockCommentOnFirstColumnOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_NEVER_INDENT_BLOCK_COMMENTS_ON_FIRST_COLUMN);
2416 		if (neverIndentBlockCommentOnFirstColumnOption != null) {
2417 			this.never_indent_block_comments_on_first_column = DefaultCodeFormatterConstants.TRUE.equals(neverIndentBlockCommentOnFirstColumnOption);
2418 		}
2419 		final Object neverIndentLineCommentOnFirstColumnOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_NEVER_INDENT_LINE_COMMENTS_ON_FIRST_COLUMN);
2420 		if (neverIndentLineCommentOnFirstColumnOption != null) {
2421 			this.never_indent_line_comments_on_first_column = DefaultCodeFormatterConstants.TRUE.equals(neverIndentLineCommentOnFirstColumnOption);
2422 		}
2423 		final Object numberOfEmptyLinesToPreserveOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE);
2424 		if (numberOfEmptyLinesToPreserveOption != null) {
2425 			try {
2426 				this.number_of_empty_lines_to_preserve = Integer.parseInt((String) numberOfEmptyLinesToPreserveOption);
2427 			} catch(NumberFormatException | ClassCastException e) {
2428 				this.number_of_empty_lines_to_preserve = 0;
2429 			}
2430 		}
2431 		final Object joinLinesInCommentsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_JOIN_LINES_IN_COMMENTS);
2432 		if (joinLinesInCommentsOption != null) {
2433 			this.join_lines_in_comments = DefaultCodeFormatterConstants.TRUE.equals(joinLinesInCommentsOption);
2434 		}
2435 		final Object joinWrappedLinesOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_JOIN_WRAPPED_LINES);
2436 		if (joinWrappedLinesOption != null) {
2437 			this.join_wrapped_lines = DefaultCodeFormatterConstants.TRUE.equals(joinWrappedLinesOption);
2438 		}
2439 		final Object putEmptyStatementOnNewLineOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_PUT_EMPTY_STATEMENT_ON_NEW_LINE);
2440 		if (putEmptyStatementOnNewLineOption != null) {
2441 			this.put_empty_statement_on_new_line = DefaultCodeFormatterConstants.TRUE.equals(putEmptyStatementOnNewLineOption);
2442 		}
2443 		final Object tabSizeOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_TAB_SIZE);
2444 		if (tabSizeOption != null) {
2445 			int tabSize = 4;
2446 			try {
2447 				tabSize = Integer.parseInt((String) tabSizeOption);
2448 			} catch(NumberFormatException | ClassCastException e) {
2449 				// keep default
2450 			}
2451 			// reverse values swapping performed by IndentationTabPage
2452 			if (!JavaCore.SPACE.equals(settings.get(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR)))
2453 				this.tab_size = tabSize;
2454 			if (!DefaultCodeFormatterConstants.MIXED.equals(settings.get(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR)))
2455 				this.indentation_size = tabSize;
2456 		}
2457 		final Object useTabsOnlyForLeadingIndentationsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_USE_TABS_ONLY_FOR_LEADING_INDENTATIONS);
2458 		if (useTabsOnlyForLeadingIndentationsOption != null) {
2459 			this.use_tabs_only_for_leading_indentations = DefaultCodeFormatterConstants.TRUE.equals(useTabsOnlyForLeadingIndentationsOption);
2460 		}
2461 		setInt(settings, DefaultCodeFormatterConstants.FORMATTER_TEXT_BLOCK_INDENTATION, v -> {
2462 			if (DefaultCodeFormatterConstants.INDENT_PRESERVE == v) {
2463 				this.text_block_indentation = Alignment.M_INDENT_PRESERVE;
2464 			} else if (DefaultCodeFormatterConstants.INDENT_BY_ONE == v) {
2465 				this.text_block_indentation = Alignment.M_INDENT_BY_ONE;
2466 			} else if (DefaultCodeFormatterConstants.INDENT_DEFAULT == v) {
2467 				this.text_block_indentation = Alignment.M_INDENT_DEFAULT;
2468 			} else if (DefaultCodeFormatterConstants.INDENT_ON_COLUMN == v) {
2469 				this.text_block_indentation = Alignment.M_INDENT_ON_COLUMN;
2470 			} else {
2471 				throw new IllegalArgumentException("invalid text block setting: " + v); //$NON-NLS-1$
2472 			}
2473 		});
2474 		final Object pageWidthOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_LINE_SPLIT);
2475 		if (pageWidthOption != null) {
2476 			try {
2477 				this.page_width = Integer.parseInt((String) pageWidthOption);
2478 			} catch(NumberFormatException | ClassCastException e) {
2479 				this.page_width = 120;
2480 			}
2481 		}
2482 		final Object useTabOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_TAB_CHAR);
2483 		if (useTabOption != null) {
2484 			if (JavaCore.TAB.equals(useTabOption)) {
2485 				this.tab_char = TAB;
2486 			} else if (JavaCore.SPACE.equals(useTabOption)) {
2487 				this.tab_char = SPACE;
2488 			} else {
2489 				this.tab_char = MIXED;
2490 			}
2491 		}
2492 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_MULTIPLICATIVE_OPERATOR, DefaultCodeFormatterConstants.TRUE,
2493 				v -> this.wrap_before_multiplicative_operator = v);
2494 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_ADDITIVE_OPERATOR, DefaultCodeFormatterConstants.TRUE,
2495 				v -> this.wrap_before_additive_operator = v);
2496 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_STRING_CONCATENATION, DefaultCodeFormatterConstants.TRUE,
2497 				v -> this.wrap_before_string_concatenation = v);
2498 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_SHIFT_OPERATOR, DefaultCodeFormatterConstants.TRUE,
2499 				v -> this.wrap_before_shift_operator = v);
2500 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_RELATIONAL_OPERATOR, DefaultCodeFormatterConstants.TRUE,
2501 				v -> this.wrap_before_relational_operator = v);
2502 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_BITWISE_OPERATOR, DefaultCodeFormatterConstants.TRUE,
2503 				v -> this.wrap_before_bitwise_operator = v);
2504 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_LOGICAL_OPERATOR, DefaultCodeFormatterConstants.TRUE,
2505 				v -> this.wrap_before_logical_operator = v);
2506 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_OR_OPERATOR_MULTICATCH, DefaultCodeFormatterConstants.TRUE,
2507 				v -> this.wrap_before_or_operator_multicatch = v);
2508 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_CONDITIONAL_OPERATOR, DefaultCodeFormatterConstants.TRUE,
2509 				v -> this.wrap_before_conditional_operator = v);
2510 		setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_ASSIGNMENT_OPERATOR, DefaultCodeFormatterConstants.TRUE,
2511 				v -> this.wrap_before_assignment_operator = v);
2512 
2513 		final Object wrapBeforeOrOperatorMulticatchOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_OR_OPERATOR_MULTICATCH);
2514 		if (wrapBeforeOrOperatorMulticatchOption != null) {
2515 			this.wrap_before_or_operator_multicatch = DefaultCodeFormatterConstants.TRUE.equals(wrapBeforeOrOperatorMulticatchOption);
2516 		}
2517 		final Object wrapBeforeConditionalOperatorOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_CONDITIONAL_OPERATOR);
2518 		if (wrapBeforeConditionalOperatorOption != null) {
2519 			this.wrap_before_conditional_operator = DefaultCodeFormatterConstants.TRUE.equals(wrapBeforeConditionalOperatorOption);
2520 		}
2521 		final Object wrapBeforeAssignmentOperatorOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_ASSIGNMENT_OPERATOR);
2522 		if (wrapBeforeAssignmentOperatorOption != null) {
2523 			this.wrap_before_assignment_operator= DefaultCodeFormatterConstants.TRUE.equals(wrapBeforeAssignmentOperatorOption);
2524 		}
2525 		final Object useTags = settings.get(DefaultCodeFormatterConstants.FORMATTER_USE_ON_OFF_TAGS);
2526 		if (useTags != null) {
2527 			this.use_tags = DefaultCodeFormatterConstants.TRUE.equals(useTags);
2528 		}
2529 		final Object disableTagOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_DISABLING_TAG);
2530 		if (disableTagOption != null) {
2531 			if (disableTagOption instanceof String) {
2532 				String stringValue = (String) disableTagOption;
2533 				int idx = stringValue.indexOf('\n');
2534 				if (idx == 0) {
2535 					this.disabling_tag = null;
2536 				} else {
2537 					String tag = idx < 0 ? stringValue.trim() : stringValue.substring(0, idx).trim();
2538 					if (tag.length() == 0) {
2539 						this.disabling_tag = null;
2540 					} else {
2541 						this.disabling_tag = tag.toCharArray();
2542 					}
2543 				}
2544 			}
2545 		}
2546 		final Object enableTagOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ENABLING_TAG);
2547 		if (enableTagOption != null) {
2548 			if (enableTagOption instanceof String) {
2549 				String stringValue = (String) enableTagOption;
2550 				int idx = stringValue.indexOf('\n');
2551 				if (idx == 0) {
2552 					this.enabling_tag = null;
2553 				} else {
2554 					String tag = idx < 0 ? stringValue.trim() : stringValue.substring(0, idx).trim();
2555 					if (tag.length() == 0) {
2556 						this.enabling_tag = null;
2557 					} else {
2558 						this.enabling_tag = tag.toCharArray();
2559 					}
2560 				}
2561 			}
2562 		}
2563 		final Object wrapWrapOuterExpressionsWhenNestedOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_WRAP_OUTER_EXPRESSIONS_WHEN_NESTED);
2564 		if (wrapWrapOuterExpressionsWhenNestedOption != null) {
2565 			this.wrap_outer_expressions_when_nested = DefaultCodeFormatterConstants.TRUE.equals(wrapWrapOuterExpressionsWhenNestedOption);
2566 		}
2567 
2568 		setDerivableOptions(settings);
2569 	}
2570 
2571 	private int toInt(Object value, int defaultValue) {
2572 		if (value instanceof String) {
2573 			try {
2574 				return Integer.parseInt((String) value);
2575 			} catch (NumberFormatException e) {
2576 				return defaultValue;
2577 			}
2578 		}
2579 		return defaultValue;
2580 	}
2581 
2582 	private String toString(Object value, String defaultValue) {
2583 		if (value instanceof String)
2584 			return (String) value;
2585 		return defaultValue;
2586 	}
2587 
2588 	private void setInt(Map<String, String> settings, String key, IntConsumer setter) {
2589 		String value = settings.get(key);
2590 		if (value != null) {
2591 			try {
2592 				setter.accept(Integer.parseInt(value));
2593 			} catch (NumberFormatException e) {
2594 				throw new IllegalArgumentException("Expected integer for setting " + key + ", got: " + value); //$NON-NLS-1$ //$NON-NLS-2$
2595 			}
2596 		}
2597 	}
2598 
2599 	private void setString(Map<String, String> settings, String key, List<String> allowedValues, Consumer<String> setter) {
2600 		Object value = settings.get(key);
2601 		if (value != null) {
2602 			if (!allowedValues.contains(value))
2603 				throw new IllegalArgumentException("Unrecognized value for setting " + key + ": " + value); //$NON-NLS-1$ //$NON-NLS-2$
2604 			setter.accept((String) value);
2605 		}
2606 	}
2607 
2608 	private void setBoolean(Map<String, String> settings, String key, String trueValue, Consumer<Boolean> setter) {
2609 		Object value = settings.get(key);
2610 		if (value != null)
2611 			setter.accept(trueValue.equals(value));
2612 	}
2613 
2614 	/**
2615 	 * This method is used to handle deprecated preferences which might be replaced by
2616 	 * one or more preferences.
2617 	 * Depending on deprecated option handling policy, set the new formatting option(s).
2618 	 * <p>
2619 	 * Note: Also add deprecated preference keys in {@link org.eclipse.jdt.internal.core.JavaCorePreferenceInitializer#initializeDeprecatedOptions}
2620 	 * so that the formatter recognizes those deprecated options when used with project specific formatter profiles.
2621 	 * (see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=544776">Bug 544776</a>)
2622 	 * </p>
2623 	 *
2624 	 * @param settings the given map
2625 	 * @deprecated
2626 	 */
2627 	private void setDeprecatedOptions(Map<String, String> settings) {
2628 		// backward compatibility code
2629 		final Object commentClearBlankLinesOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES);
2630 		if (commentClearBlankLinesOption != null) {
2631 			this.comment_clear_blank_lines_in_javadoc_comment = DefaultCodeFormatterConstants.TRUE.equals(commentClearBlankLinesOption);
2632 			this.comment_clear_blank_lines_in_block_comment = DefaultCodeFormatterConstants.TRUE.equals(commentClearBlankLinesOption);
2633 		} else {
2634 			final Object commentClearBlankLinesInJavadocCommentOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_JAVADOC_COMMENT);
2635 			if (commentClearBlankLinesInJavadocCommentOption != null) {
2636 				this.comment_clear_blank_lines_in_javadoc_comment = DefaultCodeFormatterConstants.TRUE.equals(commentClearBlankLinesInJavadocCommentOption);
2637 			}
2638 			final Object commentClearBlankLinesInBlockCommentOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_COMMENT_CLEAR_BLANK_LINES_IN_BLOCK_COMMENT);
2639 			if (commentClearBlankLinesInBlockCommentOption != null) {
2640 				this.comment_clear_blank_lines_in_block_comment = DefaultCodeFormatterConstants.TRUE.equals(commentClearBlankLinesInBlockCommentOption);
2641 			}
2642 		}
2643 
2644 		// New line after annotations
2645 		final Object insertNewLineAfterAnnotationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION);
2646 
2647 		final Object insertNewLineAfterAnnotationOnMemberOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION_ON_MEMBER);
2648 		final Object insertNewLineAfterAnnotationOnTypeOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION_ON_TYPE);
2649 		final Object insertNewLineAfterAnnotationOnEnumConstantOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION_ON_ENUM_CONSTANT);
2650 		final Object insertNewLineAfterAnnotationOnFieldOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION_ON_FIELD);
2651 		final Object insertNewLineAfterAnnotationOnMethodOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION_ON_METHOD);
2652 		final Object insertNewLineAfterAnnotationOnPackageOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION_ON_PACKAGE);
2653 
2654 		final Object insertNewLineAfterAnnotationOnParameterOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION_ON_PARAMETER);
2655 		final Object insertNewLineAfterAnnotationOnLocalVariableOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_AFTER_ANNOTATION_ON_LOCAL_VARIABLE);
2656 
2657 		if (insertNewLineAfterAnnotationOnTypeOption == null
2658 				&& insertNewLineAfterAnnotationOnEnumConstantOption == null
2659 				&& insertNewLineAfterAnnotationOnFieldOption == null
2660 				&& insertNewLineAfterAnnotationOnMethodOption == null
2661 				&& insertNewLineAfterAnnotationOnPackageOption == null) {
2662 			// if none of the new 3.7 options is used, fall back to the deprecated 3.4 option
2663 			if (insertNewLineAfterAnnotationOnMemberOption != null) {
2664 				boolean insert = JavaCore.INSERT.equals(insertNewLineAfterAnnotationOnMemberOption);
2665 				this.insert_new_line_after_annotation_on_type = insert;
2666 				this.insert_new_line_after_annotation_on_enum_constant = insert;
2667 				this.insert_new_line_after_annotation_on_field = insert;
2668 				this.insert_new_line_after_annotation_on_method = insert;
2669 				this.insert_new_line_after_annotation_on_package = insert;
2670 
2671 				// and use the other 3.4 options if available
2672 				if (insertNewLineAfterAnnotationOnParameterOption != null) {
2673 					this.insert_new_line_after_annotation_on_parameter = JavaCore.INSERT.equals(insertNewLineAfterAnnotationOnParameterOption);
2674 				}
2675 				if (insertNewLineAfterAnnotationOnLocalVariableOption != null) {
2676 					this.insert_new_line_after_annotation_on_local_variable = JavaCore.INSERT.equals(insertNewLineAfterAnnotationOnLocalVariableOption);
2677 				}
2678 			} else if (insertNewLineAfterAnnotationOnParameterOption == null
2679 					&& insertNewLineAfterAnnotationOnLocalVariableOption == null) {
2680 				// if none of the new 3.4 options is used, fall back to the deprecated 3.1 option
2681 				if (insertNewLineAfterAnnotationOption != null) {
2682 					boolean insert = JavaCore.INSERT.equals(insertNewLineAfterAnnotationOption);
2683 					this.insert_new_line_after_annotation_on_type = insert;
2684 					this.insert_new_line_after_annotation_on_enum_constant = insert;
2685 					this.insert_new_line_after_annotation_on_field = insert;
2686 					this.insert_new_line_after_annotation_on_method = insert;
2687 					this.insert_new_line_after_annotation_on_package = insert;
2688 					this.insert_new_line_after_annotation_on_parameter = insert;
2689 					this.insert_new_line_after_annotation_on_local_variable = insert;
2690 				}
2691 			}
2692 		} else { // otherwise use new 3.7 options if available
2693 			if (insertNewLineAfterAnnotationOnTypeOption != null) {
2694 				this.insert_new_line_after_annotation_on_type = JavaCore.INSERT.equals(insertNewLineAfterAnnotationOnTypeOption);
2695 			}
2696 			if (insertNewLineAfterAnnotationOnEnumConstantOption != null) {
2697 				this.insert_new_line_after_annotation_on_enum_constant = JavaCore.INSERT.equals(insertNewLineAfterAnnotationOnEnumConstantOption);
2698 			}
2699 			if (insertNewLineAfterAnnotationOnFieldOption != null) {
2700 				this.insert_new_line_after_annotation_on_field = JavaCore.INSERT.equals(insertNewLineAfterAnnotationOnFieldOption);
2701 			}
2702 			if (insertNewLineAfterAnnotationOnMethodOption != null) {
2703 				this.insert_new_line_after_annotation_on_method = JavaCore.INSERT.equals(insertNewLineAfterAnnotationOnMethodOption);
2704 			}
2705 			if (insertNewLineAfterAnnotationOnPackageOption != null) {
2706 				this.insert_new_line_after_annotation_on_package = JavaCore.INSERT.equals(insertNewLineAfterAnnotationOnPackageOption);
2707 			}
2708 			// and the other 3.4 options if available
2709 			if (insertNewLineAfterAnnotationOnParameterOption != null) {
2710 				this.insert_new_line_after_annotation_on_parameter = JavaCore.INSERT.equals(insertNewLineAfterAnnotationOnParameterOption);
2711 			}
2712 			if (insertNewLineAfterAnnotationOnLocalVariableOption != null) {
2713 				this.insert_new_line_after_annotation_on_local_variable = JavaCore.INSERT.equals(insertNewLineAfterAnnotationOnLocalVariableOption);
2714 			}
2715 		}
2716 
2717 		// insert new line between empty braces -> keep braced code on one line
2718 		HashMap<Boolean, String> insertToOneLine = new HashMap<>();
2719 		insertToOneLine.put(true, DefaultCodeFormatterConstants.ONE_LINE_NEVER);
2720 		insertToOneLine.put(false, DefaultCodeFormatterConstants.ONE_LINE_IF_EMPTY);
2721 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_ANNOTATION_DECLARATION_ON_ONE_LINE) == null) {
2722 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_IN_EMPTY_ANNOTATION_DECLARATION, JavaCore.INSERT,
2723 					v -> this.keep_annotation_declaration_on_one_line = insertToOneLine.get(v));
2724 		}
2725 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_ANONYMOUS_TYPE_DECLARATION_ON_ONE_LINE) == null) {
2726 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_IN_EMPTY_ANONYMOUS_TYPE_DECLARATION, JavaCore.INSERT,
2727 					v -> this.keep_anonymous_type_declaration_on_one_line = insertToOneLine.get(v));
2728 		}
2729 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_IF_THEN_BODY_BLOCK_ON_ONE_LINE) == null) {
2730 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_IN_EMPTY_BLOCK, JavaCore.INSERT,
2731 					v -> this.keep_if_then_body_block_on_one_line = insertToOneLine.get(v));
2732 		}
2733 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_LOOP_BODY_BLOCK_ON_ONE_LINE) == null) {
2734 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_IN_EMPTY_BLOCK, JavaCore.INSERT,
2735 					v -> this.keep_loop_body_block_on_one_line = insertToOneLine.get(v));
2736 		}
2737 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_LAMBDA_BODY_BLOCK_ON_ONE_LINE) == null) {
2738 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_IN_EMPTY_BLOCK, JavaCore.INSERT,
2739 					v -> this.keep_lambda_body_block_on_one_line = insertToOneLine.get(v));
2740 		}
2741 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_CODE_BLOCK_ON_ONE_LINE) == null) {
2742 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_IN_EMPTY_BLOCK, JavaCore.INSERT,
2743 					v -> this.keep_code_block_on_one_line = insertToOneLine.get(v));
2744 		}
2745 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_ENUM_CONSTANT_DECLARATION_ON_ONE_LINE) == null) {
2746 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_IN_EMPTY_ENUM_CONSTANT, JavaCore.INSERT,
2747 					v -> this.keep_enum_constant_declaration_on_one_line = insertToOneLine.get(v));
2748 		}
2749 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_ENUM_DECLARATION_ON_ONE_LINE) == null) {
2750 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_IN_EMPTY_ENUM_DECLARATION, JavaCore.INSERT,
2751 					v -> this.keep_enum_declaration_on_one_line = insertToOneLine.get(v));
2752 		}
2753 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_METHOD_BODY_ON_ONE_LINE) == null) {
2754 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_IN_EMPTY_METHOD_BODY, JavaCore.INSERT,
2755 					v -> this.keep_method_body_on_one_line = insertToOneLine.get(v));
2756 		}
2757 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_KEEP_TYPE_DECLARATION_ON_ONE_LINE) == null) {
2758 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_NEW_LINE_IN_EMPTY_TYPE_DECLARATION, JavaCore.INSERT,
2759 					v -> this.keep_type_declaration_on_one_line = insertToOneLine.get(v));
2760 		}
2761 
2762 		// alignment for binary expressions -> more granular settings
2763 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_MULTIPLICATIVE_OPERATOR) == null) {
2764 			setInt(settings, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION,
2765 					v-> this.alignment_for_multiplicative_operator = v);
2766 		}
2767 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ADDITIVE_OPERATOR) == null) {
2768 			setInt(settings, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION,
2769 					v -> this.alignment_for_additive_operator = v);
2770 		}
2771 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_STRING_CONCATENATION) == null) {
2772 			setInt(settings, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION,
2773 					v -> this.alignment_for_string_concatenation = v);
2774 		}
2775 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BITWISE_OPERATOR) == null) {
2776 			setInt(settings, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION,
2777 					v -> this.alignment_for_bitwise_operator = v);
2778 		}
2779 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_LOGICAL_OPERATOR) == null) {
2780 			setInt(settings, DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_BINARY_EXPRESSION,
2781 					v -> this.alignment_for_logical_operator = v);
2782 		}
2783 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_MULTIPLICATIVE_OPERATOR) == null) {
2784 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_BINARY_OPERATOR, DefaultCodeFormatterConstants.TRUE,
2785 					v -> this.wrap_before_multiplicative_operator = v);
2786 		}
2787 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_ADDITIVE_OPERATOR) == null) {
2788 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_BINARY_OPERATOR, DefaultCodeFormatterConstants.TRUE,
2789 					v -> this.wrap_before_additive_operator = v);
2790 		}
2791 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_STRING_CONCATENATION) == null) {
2792 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_BINARY_OPERATOR, DefaultCodeFormatterConstants.TRUE,
2793 					v -> this.wrap_before_string_concatenation = v);
2794 		}
2795 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_BITWISE_OPERATOR) == null) {
2796 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_BINARY_OPERATOR, DefaultCodeFormatterConstants.TRUE,
2797 					v -> this.wrap_before_bitwise_operator = v);
2798 		}
2799 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_LOGICAL_OPERATOR) == null) {
2800 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_WRAP_BEFORE_BINARY_OPERATOR, DefaultCodeFormatterConstants.TRUE,
2801 					v -> this.wrap_before_logical_operator = v);
2802 		}
2803 
2804 		// add space before and after binary operator -> more granular settings
2805 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_MULTIPLICATIVE_OPERATOR) == null) {
2806 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_BINARY_OPERATOR, JavaCore.INSERT,
2807 					v -> this.insert_space_before_multiplicative_operator = v);
2808 		}
2809 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_ADDITIVE_OPERATOR) == null) {
2810 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_BINARY_OPERATOR, JavaCore.INSERT,
2811 					v -> this.insert_space_before_additive_operator = v);
2812 		}
2813 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_STRING_CONCATENATION) == null) {
2814 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_BINARY_OPERATOR, JavaCore.INSERT,
2815 					v -> this.insert_space_before_string_concatenation = v);
2816 		}
2817 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_SHIFT_OPERATOR) == null) {
2818 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_BINARY_OPERATOR, JavaCore.INSERT,
2819 					v -> this.insert_space_before_shift_operator = v);
2820 		}
2821 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_RELATIONAL_OPERATOR) == null) {
2822 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_BINARY_OPERATOR, JavaCore.INSERT,
2823 					v -> this.insert_space_before_relational_operator = v);
2824 		}
2825 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_BITWISE_OPERATOR) == null) {
2826 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_BINARY_OPERATOR, JavaCore.INSERT,
2827 					v -> this.insert_space_before_bitwise_operator = v);
2828 		}
2829 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_LOGICAL_OPERATOR) == null) {
2830 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_BEFORE_BINARY_OPERATOR, JavaCore.INSERT,
2831 					v -> this.insert_space_before_logical_operator = v);
2832 		}
2833 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_MULTIPLICATIVE_OPERATOR) == null) {
2834 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_BINARY_OPERATOR, JavaCore.INSERT,
2835 					v -> this.insert_space_after_multiplicative_operator = v);
2836 		}
2837 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_ADDITIVE_OPERATOR) == null) {
2838 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_BINARY_OPERATOR, JavaCore.INSERT,
2839 					v -> this.insert_space_after_additive_operator = v);
2840 		}
2841 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_STRING_CONCATENATION) == null) {
2842 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_BINARY_OPERATOR, JavaCore.INSERT,
2843 					v -> this.insert_space_after_string_concatenation = v);
2844 		}
2845 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_SHIFT_OPERATOR) == null) {
2846 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_BINARY_OPERATOR, JavaCore.INSERT,
2847 					v -> this.insert_space_after_shift_operator = v);
2848 		}
2849 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_RELATIONAL_OPERATOR) == null) {
2850 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_BINARY_OPERATOR, JavaCore.INSERT,
2851 					v -> this.insert_space_after_relational_operator = v);
2852 		}
2853 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_BITWISE_OPERATOR) == null) {
2854 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_BINARY_OPERATOR, JavaCore.INSERT,
2855 					v -> this.insert_space_after_bitwise_operator = v);
2856 		}
2857 		if (settings.get(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_LOGICAL_OPERATOR) == null) {
2858 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_BINARY_OPERATOR, JavaCore.INSERT,
2859 					v -> this.insert_space_after_logical_operator = v);
2860 		}
2861 	}
2862 
2863 	/**
2864 	 * Handles new settings which may not be defined in an older profile, but are can be easily derived from other
2865 	 * settings to keep the behavior consistent with previous versions.
2866 	 */
setDerivableOptions(Map<String, String> settings)2867 	private void setDerivableOptions(Map<String, String> settings) {
2868 		if (!settings.containsKey(DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_ABSTRACT_METHOD)) {
2869 			setInt(settings, DefaultCodeFormatterConstants.FORMATTER_BLANK_LINES_BEFORE_METHOD,
2870 					v -> this.blank_lines_before_abstract_method = v);
2871 		}
2872 		if (!settings.containsKey(DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_NOT_OPERATOR)) {
2873 			setBoolean(settings, DefaultCodeFormatterConstants.FORMATTER_INSERT_SPACE_AFTER_UNARY_OPERATOR, JavaCore.INSERT,
2874 					v -> this.insert_space_after_not_operator = v);
2875 		}
2876 	}
2877 
setDefaultSettings()2878 	public void setDefaultSettings() {
2879 		this.alignment_for_arguments_in_allocation_expression = Alignment.M_COMPACT_SPLIT;
2880 		this.alignment_for_arguments_in_annotation = Alignment.M_NO_ALIGNMENT;
2881 		this.alignment_for_arguments_in_enum_constant = Alignment.M_COMPACT_SPLIT;
2882 		this.alignment_for_arguments_in_explicit_constructor_call = Alignment.M_COMPACT_SPLIT;
2883 		this.alignment_for_arguments_in_method_invocation = Alignment.M_COMPACT_SPLIT;
2884 		this.alignment_for_arguments_in_qualified_allocation_expression = Alignment.M_COMPACT_SPLIT;
2885 		this.alignment_for_assignment = Alignment.M_NO_ALIGNMENT;
2886 		this.alignment_for_multiplicative_operator = Alignment.M_COMPACT_SPLIT;
2887 		this.alignment_for_additive_operator = Alignment.M_COMPACT_SPLIT;
2888 		this.alignment_for_string_concatenation = Alignment.M_COMPACT_SPLIT;
2889 		this.alignment_for_shift_operator = Alignment.M_NO_ALIGNMENT;
2890 		this.alignment_for_relational_operator = Alignment.M_NO_ALIGNMENT;
2891 		this.alignment_for_bitwise_operator = Alignment.M_COMPACT_SPLIT;
2892 		this.alignment_for_logical_operator = Alignment.M_COMPACT_SPLIT;
2893 		this.alignment_for_compact_if = Alignment.M_ONE_PER_LINE_SPLIT | Alignment.M_INDENT_BY_ONE;
2894 		this.alignment_for_compact_loop = Alignment.M_ONE_PER_LINE_SPLIT | Alignment.M_INDENT_BY_ONE;
2895 		this.alignment_for_conditional_expression = Alignment.M_ONE_PER_LINE_SPLIT;
2896 		this.alignment_for_conditional_expression_chain = Alignment.M_NO_ALIGNMENT;
2897 		this.alignment_for_enum_constants = Alignment.M_NO_ALIGNMENT;
2898 		this.alignment_for_expressions_in_array_initializer = Alignment.M_COMPACT_SPLIT;
2899 		this.alignment_for_expressions_in_for_loop_header = Alignment.M_NO_ALIGNMENT;
2900 		this.alignment_for_method_declaration = Alignment.M_NO_ALIGNMENT;
2901 		this.alignment_for_module_statements = Alignment.M_COMPACT_SPLIT;
2902 		this.alignment_for_multiple_fields = Alignment.M_COMPACT_SPLIT;
2903 		this.alignment_for_parameterized_type_references = Alignment.M_NO_ALIGNMENT;
2904 		this.alignment_for_parameters_in_constructor_declaration = Alignment.M_COMPACT_SPLIT;
2905 		this.alignment_for_parameters_in_method_declaration = Alignment.M_COMPACT_SPLIT;
2906 		this.alignment_for_record_components = Alignment.M_COMPACT_SPLIT;
2907 		this.alignment_for_resources_in_try = Alignment.M_NEXT_PER_LINE_SPLIT;
2908 		this.alignment_for_selector_in_method_invocation = Alignment.M_COMPACT_SPLIT;
2909 		this.alignment_for_superclass_in_type_declaration = Alignment.M_NEXT_SHIFTED_SPLIT;
2910 		this.alignment_for_superinterfaces_in_enum_declaration = Alignment.M_NEXT_SHIFTED_SPLIT;
2911 		this.alignment_for_superinterfaces_in_record_declaration = Alignment.M_NEXT_SHIFTED_SPLIT;
2912 		this.alignment_for_superinterfaces_in_type_declaration = Alignment.M_NEXT_SHIFTED_SPLIT;
2913 		this.alignment_for_throws_clause_in_constructor_declaration = Alignment.M_COMPACT_SPLIT;
2914 		this.alignment_for_throws_clause_in_method_declaration = Alignment.M_COMPACT_SPLIT;
2915 		this.alignment_for_type_arguments = Alignment.M_NO_ALIGNMENT;
2916 		this.alignment_for_type_parameters = Alignment.M_NO_ALIGNMENT;
2917 		this.alignment_for_union_type_in_multicatch = Alignment.M_COMPACT_SPLIT;
2918 		this.align_type_members_on_columns = false;
2919 		this.align_variable_declarations_on_columns = false;
2920 		this.align_assignment_statements_on_columns = false;
2921 		this.align_with_spaces = false;
2922 		this.align_fields_grouping_blank_lines = Integer.MAX_VALUE;
2923 		this.brace_position_for_annotation_type_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
2924 		this.brace_position_for_anonymous_type_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
2925 		this.brace_position_for_array_initializer = DefaultCodeFormatterConstants.END_OF_LINE;
2926 		this.brace_position_for_block = DefaultCodeFormatterConstants.END_OF_LINE;
2927 		this.brace_position_for_block_in_case = DefaultCodeFormatterConstants.END_OF_LINE;
2928 		this.brace_position_for_constructor_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
2929 		this.brace_position_for_enum_constant = DefaultCodeFormatterConstants.END_OF_LINE;
2930 		this.brace_position_for_enum_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
2931 		this.brace_position_for_lambda_body = DefaultCodeFormatterConstants.END_OF_LINE;
2932 		this.brace_position_for_method_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
2933 		this.brace_position_for_type_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
2934 		this.brace_position_for_record_constructor = DefaultCodeFormatterConstants.END_OF_LINE;
2935 		this.brace_position_for_record_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
2936 		this.brace_position_for_switch = DefaultCodeFormatterConstants.END_OF_LINE;
2937 		this.parenthesis_positions_in_method_declaration = DefaultCodeFormatterConstants.COMMON_LINES;
2938 		this.parenthesis_positions_in_method_invocation = DefaultCodeFormatterConstants.COMMON_LINES;
2939 		this.parenthesis_positions_in_enum_constant_declaration = DefaultCodeFormatterConstants.COMMON_LINES;
2940 		this.parenthesis_positions_in_record_declaration = DefaultCodeFormatterConstants.COMMON_LINES;
2941 		this.parenthesis_positions_in_if_while_statement = DefaultCodeFormatterConstants.COMMON_LINES;
2942 		this.parenthesis_positions_in_for_statement = DefaultCodeFormatterConstants.COMMON_LINES;
2943 		this.parenthesis_positions_in_switch_statement = DefaultCodeFormatterConstants.COMMON_LINES;
2944 		this.parenthesis_positions_in_try_clause = DefaultCodeFormatterConstants.COMMON_LINES;
2945 		this.parenthesis_positions_in_catch_clause = DefaultCodeFormatterConstants.COMMON_LINES;
2946 		this.parenthesis_positions_in_annotation = DefaultCodeFormatterConstants.COMMON_LINES;
2947 		this.parenthesis_positions_in_lambda_declaration = DefaultCodeFormatterConstants.COMMON_LINES;
2948 		this.comment_clear_blank_lines_in_block_comment = false;
2949 		this.comment_clear_blank_lines_in_javadoc_comment = false;
2950 		this.comment_format_block_comment = true;
2951 		this.comment_format_javadoc_comment = true;
2952 		this.comment_format_line_comment = true;
2953 		this.comment_format_line_comment_starting_on_first_column = true;
2954 		this.comment_format_header = false;
2955 		this.comment_format_html = true;
2956 		this.comment_format_source = true;
2957 		this.comment_indent_parameter_description = true;
2958 		this.comment_indent_tag_description = false;
2959 		this.comment_indent_root_tags = true;
2960 		this.comment_align_tags_names_descriptions = false;
2961 		this.comment_align_tags_descriptions_grouped = false;
2962 		this.comment_insert_empty_line_before_root_tags = true;
2963 		this.comment_insert_empty_line_between_different_tags = false;
2964 		this.comment_insert_new_line_for_parameter = true;
2965 		this.comment_new_lines_at_block_boundaries = true;
2966 		this.comment_new_lines_at_javadoc_boundaries = true;
2967 		this.comment_line_length = 80;
2968 		this.comment_count_line_length_from_starting_position = true;
2969 		this.comment_preserve_white_space_between_code_and_line_comments= false;
2970 		this.continuation_indentation = 2;
2971 		this.continuation_indentation_for_array_initializer = 2;
2972 		this.blank_lines_after_imports = 0;
2973 		this.blank_lines_after_package = 0;
2974 		this.blank_lines_before_field = 0;
2975 		this.blank_lines_before_first_class_body_declaration = 0;
2976 		this.blank_lines_after_last_class_body_declaration = 0;
2977 		this.blank_lines_before_imports = 0;
2978 		this.blank_lines_before_member_type = 0;
2979 		this.blank_lines_before_abstract_method = 0;
2980 		this.blank_lines_before_method = 0;
2981 		this.blank_lines_before_new_chunk = 0;
2982 		this.blank_lines_before_package = 0;
2983 		this.blank_lines_between_import_groups = 1;
2984 		this.blank_lines_between_type_declarations = 0;
2985 		this.blank_lines_at_beginning_of_method_body = 0;
2986 		this.blank_lines_at_end_of_method_body = 0;
2987 		this.blank_lines_at_beginning_of_code_block = 0;
2988 		this.blank_lines_at_end_of_code_block = 0;
2989 		this.blank_lines_before_code_block = 0;
2990 		this.blank_lines_after_code_block = 0;
2991 		this.blank_lines_between_statement_groups_in_switch = 0;
2992 		this.indent_statements_compare_to_block = true;
2993 		this.indent_statements_compare_to_body = true;
2994 		this.indent_body_declarations_compare_to_annotation_declaration_header = true;
2995 		this.indent_body_declarations_compare_to_enum_constant_header = true;
2996 		this.indent_body_declarations_compare_to_enum_declaration_header = true;
2997 		this.indent_body_declarations_compare_to_record_header = true;
2998 		this.indent_body_declarations_compare_to_type_header = true;
2999 		this.indent_breaks_compare_to_cases = true;
3000 		this.indent_empty_lines = false;
3001 		this.indent_switchstatements_compare_to_cases = true;
3002 		this.indent_switchstatements_compare_to_switch = true;
3003 		this.indentation_size = 4;
3004 		this.insert_new_line_after_annotation_on_type = true;
3005 		this.insert_new_line_after_type_annotation = false;
3006 		this.insert_new_line_after_annotation_on_enum_constant = true;
3007 		this.insert_new_line_after_annotation_on_field = true;
3008 		this.insert_new_line_after_annotation_on_method = true;
3009 		this.insert_new_line_after_annotation_on_package = true;
3010 		this.insert_new_line_after_annotation_on_parameter = false;
3011 		this.insert_new_line_after_annotation_on_local_variable = true;
3012 		this.insert_new_line_after_opening_brace_in_array_initializer = false;
3013 		this.insert_new_line_at_end_of_file_if_missing = false;
3014 		this.insert_new_line_before_catch_in_try_statement = false;
3015 		this.insert_new_line_before_closing_brace_in_array_initializer = false;
3016 		this.insert_new_line_before_else_in_if_statement = false;
3017 		this.insert_new_line_before_finally_in_try_statement = false;
3018 		this.insert_new_line_before_while_in_do_statement = false;
3019 		this.keep_annotation_declaration_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3020 		this.keep_anonymous_type_declaration_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3021 		this.keep_if_then_body_block_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3022 		this.keep_lambda_body_block_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3023 		this.keep_loop_body_block_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3024 		this.keep_code_block_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3025 		this.keep_enum_constant_declaration_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3026 		this.keep_enum_declaration_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3027 		this.keep_method_body_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3028 		this.keep_type_declaration_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3029 		this.keep_record_declaration_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3030 		this.keep_record_constructor_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3031 		this.keep_simple_getter_setter_on_one_line = false;
3032 		this.insert_space_after_and_in_type_parameter = true;
3033 		this.insert_space_after_arrow_in_switch_case = true;
3034 		this.insert_space_after_arrow_in_switch_default = true;
3035 		this.insert_space_after_assignment_operator = true;
3036 		this.insert_space_after_at_in_annotation = false;
3037 		this.insert_space_after_at_in_annotation_type_declaration = false;
3038 		this.insert_space_after_multiplicative_operator = true;
3039 		this.insert_space_after_additive_operator = true;
3040 		this.insert_space_after_string_concatenation = true;
3041 		this.insert_space_after_shift_operator = true;
3042 		this.insert_space_after_relational_operator = true;
3043 		this.insert_space_after_bitwise_operator = true;
3044 		this.insert_space_after_logical_operator = true;
3045 		this.insert_space_after_closing_angle_bracket_in_type_arguments = false;
3046 		this.insert_space_after_closing_angle_bracket_in_type_parameters = true;
3047 		this.insert_space_after_closing_paren_in_cast = true;
3048 		this.insert_space_after_closing_brace_in_block = true;
3049 		this.insert_space_after_colon_in_assert = true;
3050 		this.insert_space_after_colon_in_case = true;
3051 		this.insert_space_after_colon_in_conditional = true;
3052 		this.insert_space_after_colon_in_for = true;
3053 		this.insert_space_after_colon_in_labeled_statement = true;
3054 		this.insert_space_after_comma_in_allocation_expression = true;
3055 		this.insert_space_after_comma_in_annotation = true;
3056 		this.insert_space_after_comma_in_array_initializer = true;
3057 		this.insert_space_after_comma_in_constructor_declaration_parameters = true;
3058 		this.insert_space_after_comma_in_constructor_declaration_throws = true;
3059 		this.insert_space_after_comma_in_enum_constant_arguments = true;
3060 		this.insert_space_after_comma_in_enum_declarations = true;
3061 		this.insert_space_after_comma_in_explicit_constructor_call_arguments = true;
3062 		this.insert_space_after_comma_in_for_increments = true;
3063 		this.insert_space_after_comma_in_for_inits = true;
3064 		this.insert_space_after_comma_in_method_invocation_arguments = true;
3065 		this.insert_space_after_comma_in_method_declaration_parameters = true;
3066 		this.insert_space_after_comma_in_method_declaration_throws = true;
3067 		this.insert_space_after_comma_in_multiple_field_declarations = true;
3068 		this.insert_space_after_comma_in_multiple_local_declarations = true;
3069 		this.insert_space_after_comma_in_parameterized_type_reference = true;
3070 		this.insert_space_after_comma_in_record_components = true;
3071 		this.insert_space_after_comma_in_superinterfaces = true;
3072 		this.insert_space_after_comma_in_switch_case_expressions = true;
3073 		this.insert_space_after_comma_in_type_arguments = true;
3074 		this.insert_space_after_comma_in_type_parameters = true;
3075 		this.insert_space_after_ellipsis = true;
3076 		this.insert_space_after_lambda_arrow = true;
3077 		this.insert_space_after_not_operator = false;
3078 		this.insert_space_after_opening_angle_bracket_in_parameterized_type_reference = false;
3079 		this.insert_space_after_opening_angle_bracket_in_type_arguments = false;
3080 		this.insert_space_after_opening_angle_bracket_in_type_parameters = false;
3081 		this.insert_space_after_opening_bracket_in_array_allocation_expression = false;
3082 		this.insert_space_after_opening_bracket_in_array_reference = false;
3083 		this.insert_space_after_opening_brace_in_array_initializer = false;
3084 		this.insert_space_after_opening_paren_in_annotation = false;
3085 		this.insert_space_after_opening_paren_in_cast = false;
3086 		this.insert_space_after_opening_paren_in_catch = false;
3087 		this.insert_space_after_opening_paren_in_constructor_declaration = false;
3088 		this.insert_space_after_opening_paren_in_enum_constant = false;
3089 		this.insert_space_after_opening_paren_in_for = false;
3090 		this.insert_space_after_opening_paren_in_if = false;
3091 		this.insert_space_after_opening_paren_in_method_declaration = false;
3092 		this.insert_space_after_opening_paren_in_method_invocation = false;
3093 		this.insert_space_after_opening_paren_in_parenthesized_expression = false;
3094 		this.insert_space_after_opening_paren_in_record_declaration = false;
3095 		this.insert_space_after_opening_paren_in_switch = false;
3096 		this.insert_space_after_opening_paren_in_synchronized = false;
3097 		this.insert_space_after_opening_paren_in_try = false;
3098 		this.insert_space_after_opening_paren_in_while = false;
3099 		this.insert_space_after_postfix_operator = false;
3100 		this.insert_space_after_prefix_operator = false;
3101 		this.insert_space_after_question_in_conditional = true;
3102 		this.insert_space_after_question_in_wilcard = false;
3103 		this.insert_space_after_semicolon_in_for = true;
3104 		this.insert_space_after_semicolon_in_try_resources = true;
3105 		this.insert_space_after_unary_operator = false;
3106 		this.insert_space_before_and_in_type_parameter = true;
3107 		this.insert_space_before_arrow_in_switch_case = true;
3108 		this.insert_space_before_arrow_in_switch_default = true;
3109 		this.insert_space_before_at_in_annotation_type_declaration = true;
3110 		this.insert_space_before_assignment_operator = true;
3111 		this.insert_space_before_multiplicative_operator = true;
3112 		this.insert_space_before_additive_operator = true;
3113 		this.insert_space_before_string_concatenation = true;
3114 		this.insert_space_before_shift_operator = true;
3115 		this.insert_space_before_relational_operator = true;
3116 		this.insert_space_before_bitwise_operator = true;
3117 		this.insert_space_before_logical_operator = true;
3118 		this.insert_space_before_closing_angle_bracket_in_parameterized_type_reference = false;
3119 		this.insert_space_before_closing_angle_bracket_in_type_arguments = false;
3120 		this.insert_space_before_closing_angle_bracket_in_type_parameters = false;
3121 		this.insert_space_before_closing_brace_in_array_initializer = false;
3122 		this.insert_space_before_closing_bracket_in_array_allocation_expression = false;
3123 		this.insert_space_before_closing_bracket_in_array_reference = false;
3124 		this.insert_space_before_closing_paren_in_annotation = false;
3125 		this.insert_space_before_closing_paren_in_cast = false;
3126 		this.insert_space_before_closing_paren_in_catch = false;
3127 		this.insert_space_before_closing_paren_in_constructor_declaration = false;
3128 		this.insert_space_before_closing_paren_in_enum_constant = false;
3129 		this.insert_space_before_closing_paren_in_for = false;
3130 		this.insert_space_before_closing_paren_in_if = false;
3131 		this.insert_space_before_closing_paren_in_method_declaration = false;
3132 		this.insert_space_before_closing_paren_in_method_invocation = false;
3133 		this.insert_space_before_closing_paren_in_parenthesized_expression = false;
3134 		this.insert_space_before_closing_paren_in_record_declaration = false;
3135 		this.insert_space_before_closing_paren_in_switch = false;
3136 		this.insert_space_before_closing_paren_in_synchronized = false;
3137 		this.insert_space_before_closing_paren_in_try = false;
3138 		this.insert_space_before_closing_paren_in_while = false;
3139 		this.insert_space_before_colon_in_assert = true;
3140 		this.insert_space_before_colon_in_case = true;
3141 		this.insert_space_before_colon_in_conditional = true;
3142 		this.insert_space_before_colon_in_default = true;
3143 		this.insert_space_before_colon_in_for = true;
3144 		this.insert_space_before_colon_in_labeled_statement = true;
3145 		this.insert_space_before_comma_in_allocation_expression = false;
3146 		this.insert_space_before_comma_in_array_initializer = false;
3147 		this.insert_space_before_comma_in_constructor_declaration_parameters = false;
3148 		this.insert_space_before_comma_in_constructor_declaration_throws = false;
3149 		this.insert_space_before_comma_in_enum_constant_arguments = false;
3150 		this.insert_space_before_comma_in_enum_declarations = false;
3151 		this.insert_space_before_comma_in_explicit_constructor_call_arguments = false;
3152 		this.insert_space_before_comma_in_for_increments = false;
3153 		this.insert_space_before_comma_in_for_inits = false;
3154 		this.insert_space_before_comma_in_method_invocation_arguments = false;
3155 		this.insert_space_before_comma_in_method_declaration_parameters = false;
3156 		this.insert_space_before_comma_in_method_declaration_throws = false;
3157 		this.insert_space_before_comma_in_multiple_field_declarations = false;
3158 		this.insert_space_before_comma_in_multiple_local_declarations = false;
3159 		this.insert_space_before_comma_in_parameterized_type_reference = false;
3160 		this.insert_space_before_comma_in_record_components = false;
3161 		this.insert_space_before_comma_in_superinterfaces = false;
3162 		this.insert_space_before_comma_in_switch_case_expressions = false;
3163 		this.insert_space_before_comma_in_type_arguments = false;
3164 		this.insert_space_before_comma_in_type_parameters = false;
3165 		this.insert_space_before_ellipsis = false;
3166 		this.insert_space_before_lambda_arrow = true;
3167 		this.insert_space_before_parenthesized_expression_in_return = true;
3168 		this.insert_space_before_parenthesized_expression_in_throw = true;
3169 		this.insert_space_before_opening_angle_bracket_in_parameterized_type_reference = false;
3170 		this.insert_space_before_opening_angle_bracket_in_type_arguments = false;
3171 		this.insert_space_before_opening_angle_bracket_in_type_parameters = false;
3172 		this.insert_space_before_opening_brace_in_annotation_type_declaration = true;
3173 		this.insert_space_before_opening_brace_in_anonymous_type_declaration = true;
3174 		this.insert_space_before_opening_brace_in_array_initializer = false;
3175 		this.insert_space_before_opening_brace_in_block = true;
3176 		this.insert_space_before_opening_brace_in_constructor_declaration = true;
3177 		this.insert_space_before_opening_brace_in_enum_constant = true;
3178 		this.insert_space_before_opening_brace_in_enum_declaration = true;
3179 		this.insert_space_before_opening_brace_in_method_declaration = true;
3180 		this.insert_space_before_opening_brace_in_record_constructor = true;
3181 		this.insert_space_before_opening_brace_in_record_declaration = true;
3182 		this.insert_space_before_opening_brace_in_switch = true;
3183 		this.insert_space_before_opening_brace_in_type_declaration = true;
3184 		this.insert_space_before_opening_bracket_in_array_allocation_expression = false;
3185 		this.insert_space_before_opening_bracket_in_array_reference = false;
3186 		this.insert_space_before_opening_bracket_in_array_type_reference = false;
3187 		this.insert_space_before_opening_paren_in_annotation = false;
3188 		this.insert_space_before_opening_paren_in_annotation_type_member_declaration = false;
3189 		this.insert_space_before_opening_paren_in_catch = true;
3190 		this.insert_space_before_opening_paren_in_constructor_declaration = false;
3191 		this.insert_space_before_opening_paren_in_enum_constant = false;
3192 		this.insert_space_before_opening_paren_in_for = true;
3193 		this.insert_space_before_opening_paren_in_if = true;
3194 		this.insert_space_before_opening_paren_in_method_invocation = false;
3195 		this.insert_space_before_opening_paren_in_method_declaration = false;
3196 		this.insert_space_before_opening_paren_in_record_declaration = false;
3197 		this.insert_space_before_opening_paren_in_switch = true;
3198 		this.insert_space_before_opening_paren_in_synchronized = true;
3199 		this.insert_space_before_opening_paren_in_try = true;
3200 		this.insert_space_before_opening_paren_in_parenthesized_expression = false;
3201 		this.insert_space_before_opening_paren_in_while = true;
3202 		this.insert_space_before_postfix_operator = false;
3203 		this.insert_space_before_prefix_operator = false;
3204 		this.insert_space_before_question_in_conditional = true;
3205 		this.insert_space_before_question_in_wilcard = false;
3206 		this.insert_space_before_semicolon = false;
3207 		this.insert_space_before_semicolon_in_for = false;
3208 		this.insert_space_before_semicolon_in_try_resources = false;
3209 		this.insert_space_before_unary_operator = false;
3210 		this.insert_space_between_brackets_in_array_type_reference = false;
3211 		this.insert_space_between_empty_braces_in_array_initializer = false;
3212 		this.insert_space_between_empty_brackets_in_array_allocation_expression = false;
3213 		this.insert_space_between_empty_parens_in_annotation_type_member_declaration = false;
3214 		this.insert_space_between_empty_parens_in_constructor_declaration = false;
3215 		this.insert_space_between_empty_parens_in_enum_constant = false;
3216 		this.insert_space_between_empty_parens_in_method_declaration = false;
3217 		this.insert_space_between_empty_parens_in_method_invocation = false;
3218 		this.compact_else_if = true;
3219 		this.keep_guardian_clause_on_one_line = false;
3220 		this.keep_else_statement_on_same_line = false;
3221 		this.keep_empty_array_initializer_on_one_line = false;
3222 		this.keep_simple_if_on_one_line = false;
3223 		this.keep_then_statement_on_same_line = false;
3224 		this.keep_simple_for_body_on_same_line = false;
3225 		this.keep_simple_while_body_on_same_line = false;
3226 		this.keep_simple_do_while_body_on_same_line = false;
3227 		this.never_indent_block_comments_on_first_column = false;
3228 		this.never_indent_line_comments_on_first_column = false;
3229 		this.number_of_empty_lines_to_preserve = 1;
3230 		this.join_lines_in_comments = true;
3231 		this.join_wrapped_lines = true;
3232 		this.put_empty_statement_on_new_line = false;
3233 		this.tab_size = 4;
3234 		this.page_width = 120;
3235 		this.tab_char = TAB; // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=49081
3236 		this.use_tabs_only_for_leading_indentations = false;
3237 		this.text_block_indentation = Alignment.M_INDENT_DEFAULT;
3238 		this.wrap_before_multiplicative_operator = true;
3239 		this.wrap_before_additive_operator = true;
3240 		this.wrap_before_string_concatenation = true;
3241 		this.wrap_before_shift_operator = true;
3242 		this.wrap_before_relational_operator = true;
3243 		this.wrap_before_bitwise_operator = true;
3244 		this.wrap_before_logical_operator = true;
3245 		this.wrap_before_or_operator_multicatch = true;
3246 		this.wrap_before_conditional_operator = true;
3247 		this.wrap_before_assignment_operator = false;
3248 		this.use_tags = false;
3249 		this.disabling_tag = DEFAULT_DISABLING_TAG;
3250 		this.enabling_tag = DEFAULT_ENABLING_TAG;
3251 		this.wrap_outer_expressions_when_nested = true;
3252 	}
3253 
setEclipseDefaultSettings()3254 	public void setEclipseDefaultSettings() {
3255 		setJavaConventionsSettings();
3256 		this.tab_char = TAB;
3257 		this.tab_size = 4;
3258 	}
3259 
setJavaConventionsSettings()3260 	public void setJavaConventionsSettings() {
3261 		this.alignment_for_arguments_in_allocation_expression = Alignment.M_COMPACT_SPLIT;
3262 		this.alignment_for_arguments_in_annotation = Alignment.M_NO_ALIGNMENT;
3263 		this.alignment_for_arguments_in_enum_constant = Alignment.M_COMPACT_SPLIT;
3264 		this.alignment_for_arguments_in_explicit_constructor_call = Alignment.M_COMPACT_SPLIT;
3265 		this.alignment_for_arguments_in_method_invocation = Alignment.M_COMPACT_SPLIT;
3266 		this.alignment_for_arguments_in_qualified_allocation_expression = Alignment.M_COMPACT_SPLIT;
3267 		this.alignment_for_assignment = Alignment.M_NO_ALIGNMENT;
3268 		this.alignment_for_multiplicative_operator = Alignment.M_COMPACT_SPLIT;
3269 		this.alignment_for_additive_operator = Alignment.M_COMPACT_SPLIT;
3270 		this.alignment_for_string_concatenation = Alignment.M_COMPACT_SPLIT;
3271 		this.alignment_for_shift_operator = Alignment.M_NO_ALIGNMENT;
3272 		this.alignment_for_relational_operator = Alignment.M_NO_ALIGNMENT;
3273 		this.alignment_for_bitwise_operator = Alignment.M_COMPACT_SPLIT;
3274 		this.alignment_for_logical_operator = Alignment.M_COMPACT_SPLIT;
3275 		this.alignment_for_compact_if = Alignment.M_COMPACT_SPLIT;
3276 		this.alignment_for_compact_loop = Alignment.M_COMPACT_SPLIT;
3277 		this.alignment_for_conditional_expression = Alignment.M_NEXT_PER_LINE_SPLIT;
3278 		this.alignment_for_conditional_expression_chain = Alignment.M_NO_ALIGNMENT;
3279 		this.alignment_for_enum_constants = Alignment.M_COMPACT_SPLIT;
3280 		this.alignment_for_expressions_in_array_initializer = Alignment.M_COMPACT_SPLIT;
3281 		this.alignment_for_expressions_in_for_loop_header = Alignment.M_NO_ALIGNMENT;
3282 		this.alignment_for_method_declaration = Alignment.M_NO_ALIGNMENT;
3283 		this.alignment_for_module_statements = Alignment.M_COMPACT_SPLIT;
3284 		this.alignment_for_multiple_fields = Alignment.M_COMPACT_SPLIT;
3285 		this.alignment_for_parameterized_type_references = Alignment.M_NO_ALIGNMENT;
3286 		this.alignment_for_parameters_in_constructor_declaration = Alignment.M_COMPACT_SPLIT;
3287 		this.alignment_for_parameters_in_method_declaration = Alignment.M_COMPACT_SPLIT;
3288 		this.alignment_for_record_components = Alignment.M_COMPACT_SPLIT;
3289 		this.alignment_for_resources_in_try = Alignment.M_NEXT_PER_LINE_SPLIT;
3290 		this.alignment_for_selector_in_method_invocation = Alignment.M_COMPACT_SPLIT;
3291 		this.alignment_for_superclass_in_type_declaration = Alignment.M_COMPACT_SPLIT;
3292 		this.alignment_for_superinterfaces_in_enum_declaration = Alignment.M_COMPACT_SPLIT;
3293 		this.alignment_for_superinterfaces_in_record_declaration = Alignment.M_COMPACT_SPLIT;
3294 		this.alignment_for_superinterfaces_in_type_declaration = Alignment.M_COMPACT_SPLIT;
3295 		this.alignment_for_throws_clause_in_constructor_declaration = Alignment.M_COMPACT_SPLIT;
3296 		this.alignment_for_throws_clause_in_method_declaration = Alignment.M_COMPACT_SPLIT;
3297 		this.alignment_for_type_arguments = Alignment.M_NO_ALIGNMENT;
3298 		this.alignment_for_type_parameters = Alignment.M_NO_ALIGNMENT;
3299 		this.alignment_for_union_type_in_multicatch = Alignment.M_COMPACT_SPLIT;
3300 		this.align_type_members_on_columns = false;
3301 		this.align_variable_declarations_on_columns = false;
3302 		this.align_assignment_statements_on_columns = false;
3303 		this.align_with_spaces = false;
3304 		this.align_fields_grouping_blank_lines = Integer.MAX_VALUE;
3305 		this.brace_position_for_annotation_type_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
3306 		this.brace_position_for_anonymous_type_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
3307 		this.brace_position_for_array_initializer = DefaultCodeFormatterConstants.END_OF_LINE;
3308 		this.brace_position_for_block = DefaultCodeFormatterConstants.END_OF_LINE;
3309 		this.brace_position_for_block_in_case = DefaultCodeFormatterConstants.END_OF_LINE;
3310 		this.brace_position_for_constructor_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
3311 		this.brace_position_for_enum_constant = DefaultCodeFormatterConstants.END_OF_LINE;
3312 		this.brace_position_for_enum_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
3313 		this.brace_position_for_lambda_body = DefaultCodeFormatterConstants.END_OF_LINE;
3314 		this.brace_position_for_method_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
3315 		this.brace_position_for_type_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
3316 		this.brace_position_for_record_constructor = DefaultCodeFormatterConstants.END_OF_LINE;
3317 		this.brace_position_for_record_declaration = DefaultCodeFormatterConstants.END_OF_LINE;
3318 		this.brace_position_for_switch = DefaultCodeFormatterConstants.END_OF_LINE;
3319 		this.parenthesis_positions_in_method_declaration = DefaultCodeFormatterConstants.COMMON_LINES;
3320 		this.parenthesis_positions_in_method_invocation = DefaultCodeFormatterConstants.COMMON_LINES;
3321 		this.parenthesis_positions_in_enum_constant_declaration = DefaultCodeFormatterConstants.COMMON_LINES;
3322 		this.parenthesis_positions_in_record_declaration = DefaultCodeFormatterConstants.COMMON_LINES;
3323 		this.parenthesis_positions_in_if_while_statement = DefaultCodeFormatterConstants.COMMON_LINES;
3324 		this.parenthesis_positions_in_for_statement = DefaultCodeFormatterConstants.COMMON_LINES;
3325 		this.parenthesis_positions_in_switch_statement = DefaultCodeFormatterConstants.COMMON_LINES;
3326 		this.parenthesis_positions_in_try_clause = DefaultCodeFormatterConstants.COMMON_LINES;
3327 		this.parenthesis_positions_in_catch_clause = DefaultCodeFormatterConstants.COMMON_LINES;
3328 		this.parenthesis_positions_in_annotation = DefaultCodeFormatterConstants.COMMON_LINES;
3329 		this.parenthesis_positions_in_lambda_declaration = DefaultCodeFormatterConstants.COMMON_LINES;
3330 		this.comment_clear_blank_lines_in_block_comment = false;
3331 		this.comment_clear_blank_lines_in_javadoc_comment = false;
3332 		this.comment_format_block_comment = true;
3333 		this.comment_format_javadoc_comment = true;
3334 		this.comment_format_line_comment = true;
3335 		this.comment_format_line_comment_starting_on_first_column = false;
3336 		this.comment_format_header = false;
3337 		this.comment_format_html = true;
3338 		this.comment_format_source = true;
3339 		this.comment_indent_parameter_description = false;
3340 		this.comment_indent_tag_description = false;
3341 		this.comment_indent_root_tags = false;
3342 		this.comment_align_tags_names_descriptions = false;
3343 		this.comment_align_tags_descriptions_grouped = true;
3344 		this.comment_insert_empty_line_before_root_tags = true;
3345 		this.comment_insert_empty_line_between_different_tags = false;
3346 		this.comment_insert_new_line_for_parameter = false;
3347 		this.comment_new_lines_at_block_boundaries = true;
3348 		this.comment_new_lines_at_javadoc_boundaries = true;
3349 		this.comment_line_length = 80;
3350 		this.comment_count_line_length_from_starting_position = true;
3351 		this.comment_preserve_white_space_between_code_and_line_comments= false;
3352 		this.continuation_indentation = 2;
3353 		this.continuation_indentation_for_array_initializer = 2;
3354 		this.blank_lines_after_imports = 1;
3355 		this.blank_lines_after_package = 1;
3356 		this.blank_lines_before_field = 0;
3357 		this.blank_lines_before_first_class_body_declaration = 0;
3358 		this.blank_lines_after_last_class_body_declaration = 0;
3359 		this.blank_lines_before_imports = 1;
3360 		this.blank_lines_before_member_type = 1;
3361 		this.blank_lines_before_abstract_method = 1;
3362 		this.blank_lines_before_method = 1;
3363 		this.blank_lines_before_new_chunk = 1;
3364 		this.blank_lines_before_package = 0;
3365 		this.blank_lines_between_import_groups = 1;
3366 		this.blank_lines_between_type_declarations = 1;
3367 		this.blank_lines_at_beginning_of_method_body = 0;
3368 		this.blank_lines_at_end_of_method_body = 0;
3369 		this.blank_lines_at_beginning_of_code_block = 0;
3370 		this.blank_lines_at_end_of_code_block = 0;
3371 		this.blank_lines_before_code_block = 0;
3372 		this.blank_lines_after_code_block = 0;
3373 		this.blank_lines_between_statement_groups_in_switch = 0;
3374 		this.indent_statements_compare_to_block = true;
3375 		this.indent_statements_compare_to_body = true;
3376 		this.indent_body_declarations_compare_to_annotation_declaration_header = true;
3377 		this.indent_body_declarations_compare_to_enum_constant_header = true;
3378 		this.indent_body_declarations_compare_to_enum_declaration_header = true;
3379 		this.indent_body_declarations_compare_to_record_header = true;
3380 		this.indent_body_declarations_compare_to_type_header = true;
3381 		this.indent_breaks_compare_to_cases = true;
3382 		this.indent_empty_lines = false;
3383 		this.indent_switchstatements_compare_to_cases = true;
3384 		this.indent_switchstatements_compare_to_switch = false;
3385 		this.indentation_size = 4;
3386 		this.insert_new_line_after_annotation_on_type = true;
3387 		this.insert_new_line_after_type_annotation = false;
3388 		this.insert_new_line_after_annotation_on_enum_constant = true;
3389 		this.insert_new_line_after_annotation_on_field = true;
3390 		this.insert_new_line_after_annotation_on_method = true;
3391 		this.insert_new_line_after_annotation_on_package = true;
3392 		this.insert_new_line_after_annotation_on_parameter = false;
3393 		this.insert_new_line_after_annotation_on_local_variable = true;
3394 		this.insert_new_line_after_opening_brace_in_array_initializer = false;
3395 		this.insert_new_line_at_end_of_file_if_missing = false;
3396 		this.insert_new_line_before_catch_in_try_statement = false;
3397 		this.insert_new_line_before_closing_brace_in_array_initializer = false;
3398 		this.insert_new_line_before_else_in_if_statement = false;
3399 		this.insert_new_line_before_finally_in_try_statement = false;
3400 		this.insert_new_line_before_while_in_do_statement = false;
3401 		this.keep_annotation_declaration_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3402 		this.keep_anonymous_type_declaration_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3403 		this.keep_if_then_body_block_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3404 		this.keep_lambda_body_block_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3405 		this.keep_loop_body_block_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3406 		this.keep_code_block_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3407 		this.keep_enum_constant_declaration_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3408 		this.keep_enum_declaration_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3409 		this.keep_method_body_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3410 		this.keep_type_declaration_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3411 		this.keep_record_declaration_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3412 		this.keep_record_constructor_on_one_line = DefaultCodeFormatterConstants.ONE_LINE_NEVER;
3413 		this.keep_simple_getter_setter_on_one_line = false;
3414 		this.insert_space_after_and_in_type_parameter = true;
3415 		this.insert_space_after_arrow_in_switch_case = true;
3416 		this.insert_space_after_arrow_in_switch_default = true;
3417 		this.insert_space_after_assignment_operator = true;
3418 		this.insert_space_after_at_in_annotation = false;
3419 		this.insert_space_after_at_in_annotation_type_declaration = false;
3420 		this.insert_space_after_multiplicative_operator = true;
3421 		this.insert_space_after_additive_operator = true;
3422 		this.insert_space_after_string_concatenation = true;
3423 		this.insert_space_after_shift_operator = true;
3424 		this.insert_space_after_relational_operator = true;
3425 		this.insert_space_after_bitwise_operator = true;
3426 		this.insert_space_after_logical_operator = true;
3427 		this.insert_space_after_closing_angle_bracket_in_type_arguments = false;
3428 		this.insert_space_after_closing_angle_bracket_in_type_parameters = true;
3429 		this.insert_space_after_closing_paren_in_cast = true;
3430 		this.insert_space_after_closing_brace_in_block = true;
3431 		this.insert_space_after_colon_in_assert = true;
3432 		this.insert_space_after_colon_in_case = true;
3433 		this.insert_space_after_colon_in_conditional = true;
3434 		this.insert_space_after_colon_in_for = true;
3435 		this.insert_space_after_colon_in_labeled_statement = true;
3436 		this.insert_space_after_comma_in_allocation_expression = true;
3437 		this.insert_space_after_comma_in_annotation = true;
3438 		this.insert_space_after_comma_in_array_initializer = true;
3439 		this.insert_space_after_comma_in_constructor_declaration_parameters = true;
3440 		this.insert_space_after_comma_in_constructor_declaration_throws = true;
3441 		this.insert_space_after_comma_in_enum_constant_arguments = true;
3442 		this.insert_space_after_comma_in_enum_declarations = true;
3443 		this.insert_space_after_comma_in_explicit_constructor_call_arguments = true;
3444 		this.insert_space_after_comma_in_for_increments = true;
3445 		this.insert_space_after_comma_in_for_inits = true;
3446 		this.insert_space_after_comma_in_method_invocation_arguments = true;
3447 		this.insert_space_after_comma_in_method_declaration_parameters = true;
3448 		this.insert_space_after_comma_in_method_declaration_throws = true;
3449 		this.insert_space_after_comma_in_multiple_field_declarations = true;
3450 		this.insert_space_after_comma_in_multiple_local_declarations = true;
3451 		this.insert_space_after_comma_in_parameterized_type_reference = true;
3452 		this.insert_space_after_comma_in_record_components = true;
3453 		this.insert_space_after_comma_in_superinterfaces = true;
3454 		this.insert_space_after_comma_in_switch_case_expressions = true;
3455 		this.insert_space_after_comma_in_type_arguments = true;
3456 		this.insert_space_after_comma_in_type_parameters = true;
3457 		this.insert_space_after_ellipsis = true;
3458 		this.insert_space_after_lambda_arrow = true;
3459 		this.insert_space_after_not_operator = false;
3460 		this.insert_space_after_opening_angle_bracket_in_parameterized_type_reference = false;
3461 		this.insert_space_after_opening_angle_bracket_in_type_arguments = false;
3462 		this.insert_space_after_opening_angle_bracket_in_type_parameters = false;
3463 		this.insert_space_after_opening_bracket_in_array_allocation_expression = false;
3464 		this.insert_space_after_opening_bracket_in_array_reference = false;
3465 		this.insert_space_after_opening_brace_in_array_initializer = true;
3466 		this.insert_space_after_opening_paren_in_annotation = false;
3467 		this.insert_space_after_opening_paren_in_cast = false;
3468 		this.insert_space_after_opening_paren_in_catch = false;
3469 		this.insert_space_after_opening_paren_in_constructor_declaration = false;
3470 		this.insert_space_after_opening_paren_in_enum_constant = false;
3471 		this.insert_space_after_opening_paren_in_for = false;
3472 		this.insert_space_after_opening_paren_in_if = false;
3473 		this.insert_space_after_opening_paren_in_method_declaration = false;
3474 		this.insert_space_after_opening_paren_in_method_invocation = false;
3475 		this.insert_space_after_opening_paren_in_parenthesized_expression = false;
3476 		this.insert_space_after_opening_paren_in_record_declaration = false;
3477 		this.insert_space_after_opening_paren_in_switch = false;
3478 		this.insert_space_after_opening_paren_in_synchronized = false;
3479 		this.insert_space_after_opening_paren_in_try = false;
3480 		this.insert_space_after_opening_paren_in_while = false;
3481 		this.insert_space_after_postfix_operator = false;
3482 		this.insert_space_after_prefix_operator = false;
3483 		this.insert_space_after_question_in_conditional = true;
3484 		this.insert_space_after_question_in_wilcard = false;
3485 		this.insert_space_after_semicolon_in_for = true;
3486 		this.insert_space_after_semicolon_in_try_resources = true;
3487 		this.insert_space_after_unary_operator = false;
3488 		this.insert_space_before_and_in_type_parameter = true;
3489 		this.insert_space_before_arrow_in_switch_case = true;
3490 		this.insert_space_before_arrow_in_switch_default = true;
3491 		this.insert_space_before_at_in_annotation_type_declaration = true;
3492 		this.insert_space_before_assignment_operator = true;
3493 		this.insert_space_before_multiplicative_operator = true;
3494 		this.insert_space_before_additive_operator = true;
3495 		this.insert_space_before_string_concatenation = true;
3496 		this.insert_space_before_shift_operator = true;
3497 		this.insert_space_before_relational_operator = true;
3498 		this.insert_space_before_bitwise_operator = true;
3499 		this.insert_space_before_logical_operator = true;
3500 		this.insert_space_before_closing_angle_bracket_in_parameterized_type_reference = false;
3501 		this.insert_space_before_closing_angle_bracket_in_type_arguments = false;
3502 		this.insert_space_before_closing_angle_bracket_in_type_parameters = false;
3503 		this.insert_space_before_closing_brace_in_array_initializer = true;
3504 		this.insert_space_before_closing_bracket_in_array_allocation_expression = false;
3505 		this.insert_space_before_closing_bracket_in_array_reference = false;
3506 		this.insert_space_before_closing_paren_in_annotation = false;
3507 		this.insert_space_before_closing_paren_in_cast = false;
3508 		this.insert_space_before_closing_paren_in_catch = false;
3509 		this.insert_space_before_closing_paren_in_constructor_declaration = false;
3510 		this.insert_space_before_closing_paren_in_enum_constant = false;
3511 		this.insert_space_before_closing_paren_in_for = false;
3512 		this.insert_space_before_closing_paren_in_if = false;
3513 		this.insert_space_before_closing_paren_in_method_declaration = false;
3514 		this.insert_space_before_closing_paren_in_method_invocation = false;
3515 		this.insert_space_before_closing_paren_in_parenthesized_expression = false;
3516 		this.insert_space_before_closing_paren_in_record_declaration = false;
3517 		this.insert_space_before_closing_paren_in_switch = false;
3518 		this.insert_space_before_closing_paren_in_synchronized = false;
3519 		this.insert_space_before_closing_paren_in_try = false;
3520 		this.insert_space_before_closing_paren_in_while = false;
3521 		this.insert_space_before_colon_in_assert = true;
3522 		this.insert_space_before_colon_in_case = false;
3523 		this.insert_space_before_colon_in_conditional = true;
3524 		this.insert_space_before_colon_in_default = false;
3525 		this.insert_space_before_colon_in_for = true;
3526 		this.insert_space_before_colon_in_labeled_statement = false;
3527 		this.insert_space_before_comma_in_allocation_expression = false;
3528 		this.insert_space_before_comma_in_array_initializer = false;
3529 		this.insert_space_before_comma_in_constructor_declaration_parameters = false;
3530 		this.insert_space_before_comma_in_constructor_declaration_throws = false;
3531 		this.insert_space_before_comma_in_enum_constant_arguments = false;
3532 		this.insert_space_before_comma_in_enum_declarations = false;
3533 		this.insert_space_before_comma_in_explicit_constructor_call_arguments = false;
3534 		this.insert_space_before_comma_in_for_increments = false;
3535 		this.insert_space_before_comma_in_for_inits = false;
3536 		this.insert_space_before_comma_in_method_invocation_arguments = false;
3537 		this.insert_space_before_comma_in_method_declaration_parameters = false;
3538 		this.insert_space_before_comma_in_method_declaration_throws = false;
3539 		this.insert_space_before_comma_in_multiple_field_declarations = false;
3540 		this.insert_space_before_comma_in_multiple_local_declarations = false;
3541 		this.insert_space_before_comma_in_parameterized_type_reference = false;
3542 		this.insert_space_before_comma_in_record_components = false;
3543 		this.insert_space_before_comma_in_superinterfaces = false;
3544 		this.insert_space_before_comma_in_switch_case_expressions = false;
3545 		this.insert_space_before_comma_in_type_arguments = false;
3546 		this.insert_space_before_comma_in_type_parameters = false;
3547 		this.insert_space_before_ellipsis = false;
3548 		this.insert_space_before_lambda_arrow = true;
3549 		this.insert_space_before_parenthesized_expression_in_return = true;
3550 		this.insert_space_before_parenthesized_expression_in_throw = true;
3551 		this.insert_space_before_opening_angle_bracket_in_parameterized_type_reference = false;
3552 		this.insert_space_before_opening_angle_bracket_in_type_arguments = false;
3553 		this.insert_space_before_opening_angle_bracket_in_type_parameters = false;
3554 		this.insert_space_before_opening_brace_in_annotation_type_declaration = true;
3555 		this.insert_space_before_opening_brace_in_anonymous_type_declaration = true;
3556 		this.insert_space_before_opening_brace_in_array_initializer = true;
3557 		this.insert_space_before_opening_brace_in_block = true;
3558 		this.insert_space_before_opening_brace_in_constructor_declaration = true;
3559 		this.insert_space_before_opening_brace_in_enum_constant = true;
3560 		this.insert_space_before_opening_brace_in_enum_declaration = true;
3561 		this.insert_space_before_opening_brace_in_method_declaration = true;
3562 		this.insert_space_before_opening_brace_in_record_constructor = true;
3563 		this.insert_space_before_opening_brace_in_record_declaration = true;
3564 		this.insert_space_before_opening_brace_in_switch = true;
3565 		this.insert_space_before_opening_brace_in_type_declaration = true;
3566 		this.insert_space_before_opening_bracket_in_array_allocation_expression = false;
3567 		this.insert_space_before_opening_bracket_in_array_reference = false;
3568 		this.insert_space_before_opening_bracket_in_array_type_reference = false;
3569 		this.insert_space_before_opening_paren_in_annotation = false;
3570 		this.insert_space_before_opening_paren_in_annotation_type_member_declaration = false;
3571 		this.insert_space_before_opening_paren_in_catch = true;
3572 		this.insert_space_before_opening_paren_in_constructor_declaration = false;
3573 		this.insert_space_before_opening_paren_in_enum_constant = false;
3574 		this.insert_space_before_opening_paren_in_for = true;
3575 		this.insert_space_before_opening_paren_in_if = true;
3576 		this.insert_space_before_opening_paren_in_method_invocation = false;
3577 		this.insert_space_before_opening_paren_in_method_declaration = false;
3578 		this.insert_space_before_opening_paren_in_record_declaration = false;
3579 		this.insert_space_before_opening_paren_in_switch = true;
3580 		this.insert_space_before_opening_paren_in_synchronized = true;
3581 		this.insert_space_before_opening_paren_in_try = true;
3582 		this.insert_space_before_opening_paren_in_parenthesized_expression = false;
3583 		this.insert_space_before_opening_paren_in_while = true;
3584 		this.insert_space_before_postfix_operator = false;
3585 		this.insert_space_before_prefix_operator = false;
3586 		this.insert_space_before_question_in_conditional = true;
3587 		this.insert_space_before_question_in_wilcard = false;
3588 		this.insert_space_before_semicolon = false;
3589 		this.insert_space_before_semicolon_in_for = false;
3590 		this.insert_space_before_semicolon_in_try_resources = false;
3591 		this.insert_space_before_unary_operator = false;
3592 		this.insert_space_between_brackets_in_array_type_reference = false;
3593 		this.insert_space_between_empty_braces_in_array_initializer = false;
3594 		this.insert_space_between_empty_brackets_in_array_allocation_expression = false;
3595 		this.insert_space_between_empty_parens_in_annotation_type_member_declaration = false;
3596 		this.insert_space_between_empty_parens_in_constructor_declaration = false;
3597 		this.insert_space_between_empty_parens_in_enum_constant = false;
3598 		this.insert_space_between_empty_parens_in_method_declaration = false;
3599 		this.insert_space_between_empty_parens_in_method_invocation = false;
3600 		this.compact_else_if = true;
3601 		this.keep_guardian_clause_on_one_line = false;
3602 		this.keep_else_statement_on_same_line = false;
3603 		this.keep_empty_array_initializer_on_one_line = false;
3604 		this.keep_simple_if_on_one_line = false;
3605 		this.keep_then_statement_on_same_line = false;
3606 		this.keep_simple_for_body_on_same_line = false;
3607 		this.keep_simple_while_body_on_same_line = false;
3608 		this.keep_simple_do_while_body_on_same_line = false;
3609 		this.never_indent_block_comments_on_first_column = false;
3610 		this.never_indent_line_comments_on_first_column = false;
3611 		this.number_of_empty_lines_to_preserve = 1;
3612 		this.join_lines_in_comments = true;
3613 		this.join_wrapped_lines = true;
3614 		this.put_empty_statement_on_new_line = true;
3615 		this.tab_size = 8;
3616 		this.page_width = 120;
3617 		this.tab_char = MIXED;
3618 		this.use_tabs_only_for_leading_indentations = false;
3619 		this.text_block_indentation = Alignment.M_INDENT_DEFAULT;
3620 		this.wrap_before_multiplicative_operator = true;
3621 		this.wrap_before_additive_operator = true;
3622 		this.wrap_before_string_concatenation = true;
3623 		this.wrap_before_shift_operator = true;
3624 		this.wrap_before_relational_operator = true;
3625 		this.wrap_before_bitwise_operator = true;
3626 		this.wrap_before_logical_operator = true;
3627 		this.wrap_before_or_operator_multicatch = true;
3628 		this.wrap_before_conditional_operator = true;
3629 		this.wrap_before_assignment_operator = false;
3630 		this.use_tags = false;
3631 		this.disabling_tag = DEFAULT_DISABLING_TAG;
3632 		this.enabling_tag = DEFAULT_ENABLING_TAG;
3633 		this.wrap_outer_expressions_when_nested = true;
3634 	}
3635 }
3636