View | Details | Raw Unified | Return to bug 202490 | Differences between
and this patch

Collapse All | Expand All

(-)model/org/eclipse/jdt/core/JavaCore.java (-1387 / +1318 lines)
Lines 194-1240 Link Here
194
	 */
194
	 */
195
	public static final String USER_LIBRARY_CONTAINER_ID= "org.eclipse.jdt.USER_LIBRARY"; //$NON-NLS-1$
195
	public static final String USER_LIBRARY_CONTAINER_ID= "org.eclipse.jdt.USER_LIBRARY"; //$NON-NLS-1$
196
196
197
	// *************** Possible IDs for configurable options. ********************
197
	// Begin configurable option IDs {
198
198
199
	/**
199
	/**
200
	 * Possible  configurable option ID.
200
	 * Compiler option ID: Generating Local Variable Debug Attribute.
201
	 * @see #getDefaultOptions()
201
	 * <p>When generated, this attribute will enable local variable names
202
	 *    to be displayed in debugger, only in place where variables are
203
	 *    definitely assigned (.class file is then bigger).
204
	 * <dl>
205
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.debug.localVariable"</code></dd>
206
	 * <dt>Possible values:</dt><dd><code>{ "generate", "do not generate" }</code></dd>
207
	 * <dt>Default:</dt><dd><code>"generate"</code></dd>
208
	 * </dl>
209
	 * @category CompilerOptionID
202
	 */
210
	 */
203
	public static final String COMPILER_LOCAL_VARIABLE_ATTR = PLUGIN_ID + ".compiler.debug.localVariable"; //$NON-NLS-1$
211
	public static final String COMPILER_LOCAL_VARIABLE_ATTR = PLUGIN_ID + ".compiler.debug.localVariable"; //$NON-NLS-1$
204
	/**
212
	/**
205
	 * Possible  configurable option ID.
213
	 * Compiler option ID: Generating Line Number Debug Attribute.
206
	 * @see #getDefaultOptions()
214
	 * <p>When generated, this attribute will enable source code highlighting in debugger
215
	 *    (.class file is then bigger).
216
     * <dl>
217
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.debug.lineNumber"</code></dd>
218
	 * <dt>Possible values:</dt><dd><code>{ "generate", "do not generate" }</code></dd>
219
	 * <dt>Default:</dt><dd><code>"generate"</code></dd>
220
     * </dl>
221
	 * @category CompilerOptionID
207
	 */
222
	 */
208
	public static final String COMPILER_LINE_NUMBER_ATTR = PLUGIN_ID + ".compiler.debug.lineNumber"; //$NON-NLS-1$
223
	public static final String COMPILER_LINE_NUMBER_ATTR = PLUGIN_ID + ".compiler.debug.lineNumber"; //$NON-NLS-1$
209
	/**
224
	/**
210
	 * Possible  configurable option ID.
225
     * Compiler option ID: Generating Source Debug Attribute.
211
	 * @see #getDefaultOptions()
226
     * <p>When generated, this attribute will enable the debugger to present the
227
	 *    corresponding source code.
228
     * <dl>
229
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.debug.sourceFile"</code></dd>
230
	 * <dt>Possible values:</dt><dd><code>{ "generate", "do not generate" }</code></dd>
231
	 * <dt>Default:</dt><dd><code>"generate"</code></dd>
232
     * </dl>
233
	 * @category CompilerOptionID
212
	 */
234
	 */
213
	public static final String COMPILER_SOURCE_FILE_ATTR = PLUGIN_ID + ".compiler.debug.sourceFile"; //$NON-NLS-1$
235
	public static final String COMPILER_SOURCE_FILE_ATTR = PLUGIN_ID + ".compiler.debug.sourceFile"; //$NON-NLS-1$
214
	/**
236
	/**
215
	 * Possible  configurable option ID.
237
     * Compiler option ID: Preserving Unused Local Variables.
216
	 * @see #getDefaultOptions()
238
     * <p>Unless requested to preserve unused local variables (that is, never read), the
239
	 *    compiler will optimize them out, potentially altering debugging.
240
     * <dl>
241
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.codegen.unusedLocal"</code></dd>
242
	 * <dt>Possible values:</dt><dd><code>{ "preserve", "optimize out" }</code></dd>
243
	 * <dt>Default:</dt><dd><code>"preserve"</code></dd>
244
     * </dl>
245
	 * @category CompilerOptionID
217
	 */
246
	 */
218
	public static final String COMPILER_CODEGEN_UNUSED_LOCAL = PLUGIN_ID + ".compiler.codegen.unusedLocal"; //$NON-NLS-1$
247
	public static final String COMPILER_CODEGEN_UNUSED_LOCAL = PLUGIN_ID + ".compiler.codegen.unusedLocal"; //$NON-NLS-1$
219
	/**
248
	/**
220
	 * Possible  configurable option ID.
249
     * Compiler option ID: Defining Target Java Platform.
221
	 * @see #getDefaultOptions()
250
     * <p>For binary compatibility reason, .class files can be tagged to with certain VM versions and later.
251
	 * <p>Note that <code>"1.4"</code> target requires to toggle compliance mode to <code>"1.4"</code>, <code>"1.5"</code> target requires
252
	 *    to toggle compliance mode to <code>"1.5"</code>, <code>"1.6"</code> target requires to toggle compliance mode to <code>"1.6"</code> and
253
	 *    <code>"1.7"</code> target requires to toggle compliance mode to <code>"1.7"</code>.
254
	 *    <code>"cldc1.1"</code> requires the source version to be <code>"1.3"</code> and the compliance version to be <code>"1.4"</code> or lower.
255
     * <dl>
256
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.codegen.targetPlatform"</code></dd>
257
	 * <dt>Possible values:</dt><dd><code>{ "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "cldc1.1" }</code></dd>
258
	 * <dt>Default:</dt><dd><code>"1.2"</code></dd>
259
     * </dl>
260
	 * @category CompilerOptionID
222
	 */
261
	 */
223
	public static final String COMPILER_CODEGEN_TARGET_PLATFORM = PLUGIN_ID + ".compiler.codegen.targetPlatform"; //$NON-NLS-1$
262
	public static final String COMPILER_CODEGEN_TARGET_PLATFORM = PLUGIN_ID + ".compiler.codegen.targetPlatform"; //$NON-NLS-1$
224
	/**
263
	/**
225
	 * Possible  configurable option ID.
264
     * Compiler option ID: Inline JSR Bytecode Instruction.
226
	 * @see #getDefaultOptions()
265
     * <p>When enabled, the compiler will no longer generate JSR instructions, but rather inline corresponding
266
	 *    subroutine code sequences (mostly corresponding to try finally blocks). The generated code will thus
267
	 *    get bigger, but will load faster on virtual machines since the verification process is then much simpler.
268
	 * <p>This mode is anticipating support for the Java Specification Request 202.
269
	 * <p>Note that JSR inlining is optional only for target platform lesser than 1.5. From 1.5 on, the JSR
270
	 *    inlining is mandatory (also see related setting {@link #COMPILER_CODEGEN_TARGET_PLATFORM}).
271
     * <dl>
272
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode"</code></dd>
273
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
274
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
275
     * </dl>
227
	 * @since 3.0
276
	 * @since 3.0
277
	 * @category CompilerOptionID
228
	 */
278
	 */
229
	public static final String COMPILER_CODEGEN_INLINE_JSR_BYTECODE = PLUGIN_ID + ".compiler.codegen.inlineJsrBytecode"; //$NON-NLS-1$
279
	public static final String COMPILER_CODEGEN_INLINE_JSR_BYTECODE = PLUGIN_ID + ".compiler.codegen.inlineJsrBytecode"; //$NON-NLS-1$
230
	/**
280
	/**
231
	 * Possible  configurable option ID.
281
     * Compiler option ID: Javadoc Comment Support.
232
	 * @see #getDefaultOptions()
282
     * <p>When this support is disabled, the compiler will ignore all javadoc problems options settings
283
	 *    and will not report any javadoc problem. It will also not find any reference in javadoc comment and
284
	 *    DOM AST Javadoc node will be only a flat text instead of having structured tag elements.
285
     * <dl>
286
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.doc.comment.support"</code></dd>
287
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
288
	 * <dt>Default:</dt><dd><code>"enabled"</code></dd>
289
     * </dl>
233
	 * @since 3.0
290
	 * @since 3.0
291
	 * @category CompilerOptionID
234
	 */
292
	 */
235
	public static final String COMPILER_DOC_COMMENT_SUPPORT = PLUGIN_ID + ".compiler.doc.comment.support"; //$NON-NLS-1$
293
	public static final String COMPILER_DOC_COMMENT_SUPPORT = PLUGIN_ID + ".compiler.doc.comment.support"; //$NON-NLS-1$
236
	/**
294
	/**
237
	 * Possible  configurable option ID.
295
	 * @deprecated Discontinued since turning off would violate language specs.
238
	 * @see #getDefaultOptions()
296
	 * @category DeprecatedOptionID
239
	 * @deprecated - discontinued since turning off would violate language specs
240
	 */
297
	 */
241
	public static final String COMPILER_PB_UNREACHABLE_CODE = PLUGIN_ID + ".compiler.problem.unreachableCode"; //$NON-NLS-1$
298
	public static final String COMPILER_PB_UNREACHABLE_CODE = PLUGIN_ID + ".compiler.problem.unreachableCode"; //$NON-NLS-1$
242
	/**
299
	/**
243
	 * Possible  configurable option ID.
300
	 * @deprecated Discontinued since turning off would violate language specs.
244
	 * @see #getDefaultOptions()
301
	 * @category DeprecatedOptionID
245
	 * @deprecated - discontinued since turning off would violate language specs
246
	 */
302
	 */
247
	public static final String COMPILER_PB_INVALID_IMPORT = PLUGIN_ID + ".compiler.problem.invalidImport"; //$NON-NLS-1$
303
	public static final String COMPILER_PB_INVALID_IMPORT = PLUGIN_ID + ".compiler.problem.invalidImport"; //$NON-NLS-1$
248
	/**
304
	/**
249
	 * Possible  configurable option ID.
305
     * Compiler option ID: Reporting Attempt to Override Package Visible Method.
250
	 * @see #getDefaultOptions()
306
     * <p>A package visible method, which is any method that is not explicitly 
307
	 *    declared as public, protected or private, is not visible from other 
308
	 *    packages, and thus cannot be overridden from another package. 
309
	 *    Attempting to override a package visible method from another package 
310
	 *    introduces a new method that is unrelated to the original one. When 
311
	 *    enabling this option, the compiler will signal such situations as an 
312
	 *    error or a warning.
313
     * <dl>
314
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod"</code></dd>
315
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
316
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
317
     * </dl>
318
	 * @category CompilerOptionID
251
	 */
319
	 */
252
	public static final String COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD = PLUGIN_ID + ".compiler.problem.overridingPackageDefaultMethod"; //$NON-NLS-1$
320
	public static final String COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD = PLUGIN_ID + ".compiler.problem.overridingPackageDefaultMethod"; //$NON-NLS-1$
253
	/**
321
	/**
254
	 * Possible  configurable option ID.
322
     * Compiler option ID: Reporting Method With Constructor Name.
255
	 * @see #getDefaultOptions()
323
     * <p>Naming a method with a constructor name is generally considered poor
324
	 *    style programming. When enabling this option, the compiler will signal such
325
	 *    scenarii either as an error or a warning.
326
     * <dl>
327
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.methodWithConstructorName"</code></dd>
328
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
329
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
330
     * </dl>
331
	 * @category CompilerOptionID
256
	 */
332
	 */
257
	public static final String COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME = PLUGIN_ID + ".compiler.problem.methodWithConstructorName"; //$NON-NLS-1$
333
	public static final String COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME = PLUGIN_ID + ".compiler.problem.methodWithConstructorName"; //$NON-NLS-1$
258
	/**
334
	/**
259
	 * Possible  configurable option ID.
335
     * Compiler option ID: Reporting Deprecation.
260
	 * @see #getDefaultOptions()
336
     * <p>When enabled, the compiler will signal use of deprecated API either as an
337
	 *    error or a warning.
338
     * <dl>
339
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.deprecation"</code></dd>
340
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
341
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
342
     * </dl>
343
	 * @category CompilerOptionID
261
	 */
344
	 */
262
	public static final String COMPILER_PB_DEPRECATION = PLUGIN_ID + ".compiler.problem.deprecation"; //$NON-NLS-1$
345
	public static final String COMPILER_PB_DEPRECATION = PLUGIN_ID + ".compiler.problem.deprecation"; //$NON-NLS-1$
263
	/**
346
	/**
264
	 * Possible  configurable option ID.
347
     * Compiler option ID: Reporting Deprecation Inside Deprecated Code.
265
	 * @see #getDefaultOptions()
348
     * <p>When enabled, the compiler will signal use of deprecated API inside deprecated code.
349
	 * <p>The severity of the problem is controlled with option {@link #COMPILER_PB_DEPRECATION}.
350
     * <dl>
351
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode"</code></dd>
352
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
353
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
354
     * </dl>
266
	 * @since 2.1
355
	 * @since 2.1
356
	 * @category CompilerOptionID
267
	 */
357
	 */
268
	public static final String COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE = PLUGIN_ID + ".compiler.problem.deprecationInDeprecatedCode"; //$NON-NLS-1$
358
	public static final String COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE = PLUGIN_ID + ".compiler.problem.deprecationInDeprecatedCode"; //$NON-NLS-1$
269
	/**
359
	/**
270
	 * Possible  configurable option ID.
360
     * Compiler option ID: Reporting Deprecation In Non Deprecated Code.
271
	 * @see #getDefaultOptions()
361
     * <p>When enabled, the compiler will signal use of deprecated API in non 
362
	 *    deprecated code.
363
	 * <p>The severity of the problem is controlled with option {@link #COMPILER_PB_DEPRECATION}.
364
     * <dl>
365
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.deprecationInNonDeprecatedCode"</code></dd>
366
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
367
	 * <dt>Default:</dt><dd><code>"enabled"</code></dd>
368
     * </dl>
272
	 * @since 3.4
369
	 * @since 3.4
370
	 * @category CompilerOptionID
273
	 */
371
	 */
274
	public static final String COMPILER_PB_DEPRECATION_IN_NON_DEPRECATED_CODE = PLUGIN_ID + ".compiler.problem.deprecationInNonDeprecatedCode"; //$NON-NLS-1$
372
	public static final String COMPILER_PB_DEPRECATION_IN_NON_DEPRECATED_CODE = PLUGIN_ID + ".compiler.problem.deprecationInNonDeprecatedCode"; //$NON-NLS-1$
275
	/**
373
	/**
276
	 * Possible  configurable option ID.
374
     * Compiler option ID: Reporting Deprecation When Overriding Deprecated Method.
277
	 * @see #getDefaultOptions()
375
     * <p>When enabled, the compiler will signal the declaration of a method overriding a deprecated one.
376
	 * <p>The severity of the problem is controlled with option {@link #COMPILER_PB_DEPRECATION}.
377
     * <dl>
378
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod"</code></dd>
379
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
380
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
381
     * </dl>
278
	 * @since 3.0
382
	 * @since 3.0
383
	 * @category CompilerOptionID
279
	 */
384
	 */
280
	public static final String COMPILER_PB_DEPRECATION_WHEN_OVERRIDING_DEPRECATED_METHOD = "org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod"; //$NON-NLS-1$
385
	public static final String COMPILER_PB_DEPRECATION_WHEN_OVERRIDING_DEPRECATED_METHOD = "org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod"; //$NON-NLS-1$
281
	/**
386
	/**
282
	 * Possible  configurable option ID.
387
     * Compiler option ID: Reporting Hidden Catch Block.
283
	 * @see #getDefaultOptions()
388
     * <p>
389
	 *    Locally to a try statement, some catch blocks may hide others. For example,
390
	 *    <pre>
391
	 *      try {  throw new java.io.CharConversionException();
392
	 *      } catch (java.io.CharConversionException e) {
393
	 *      } catch (java.io.IOException e) {}.
394
	 *    </pre>
395
	 *    When enabling this option, the compiler will issue an error or a warning for hidden
396
	 *    catch blocks corresponding to checked exceptions.
397
     * <dl>
398
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock"</code></dd>
399
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
400
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
401
     * </dl>
402
	 * @category CompilerOptionID
284
	 */
403
	 */
285
	public static final String COMPILER_PB_HIDDEN_CATCH_BLOCK = PLUGIN_ID + ".compiler.problem.hiddenCatchBlock"; //$NON-NLS-1$
404
	public static final String COMPILER_PB_HIDDEN_CATCH_BLOCK = PLUGIN_ID + ".compiler.problem.hiddenCatchBlock"; //$NON-NLS-1$
286
	/**
405
	/**
287
	 * Possible  configurable option ID.
406
     * Compiler option ID: Reporting Unused Local.
288
	 * @see #getDefaultOptions()
407
     * <p>When enabled, the compiler will issue an error or a warning for unused local
408
	 *    variables (that is, variables never read from).
409
     * <dl>
410
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unusedLocal"</code></dd>
411
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
412
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
413
     * </dl>
414
	 * @category CompilerOptionID
289
	 */
415
	 */
290
	public static final String COMPILER_PB_UNUSED_LOCAL = PLUGIN_ID + ".compiler.problem.unusedLocal"; //$NON-NLS-1$
416
	public static final String COMPILER_PB_UNUSED_LOCAL = PLUGIN_ID + ".compiler.problem.unusedLocal"; //$NON-NLS-1$
291
	/**
417
	/**
292
	 * Possible  configurable option ID.
418
     * Compiler option ID: Reporting Unused Parameter.
293
	 * @see #getDefaultOptions()
419
     * <p>When enabled, the compiler will issue an error or a warning for unused method
420
	 *    parameters (that is, parameters never read from).
421
     * <dl>
422
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unusedParameter"</code></dd>
423
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
424
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
425
     * </dl>
426
	 * @category CompilerOptionID
294
	 */
427
	 */
295
	public static final String COMPILER_PB_UNUSED_PARAMETER = PLUGIN_ID + ".compiler.problem.unusedParameter"; //$NON-NLS-1$
428
	public static final String COMPILER_PB_UNUSED_PARAMETER = PLUGIN_ID + ".compiler.problem.unusedParameter"; //$NON-NLS-1$
296
	/**
429
	/**
297
	 * Possible  configurable option ID.
430
     * Compiler option ID: Reporting Unused Parameter if Implementing Abstract Method.
298
	 * @see #getDefaultOptions()
431
     * <p>When enabled, the compiler will signal unused parameters in abstract method implementations.
432
	 * <p>The severity of the problem is controlled with option {@link #COMPILER_PB_UNUSED_PARAMETER}.
433
     * <dl>
434
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract"</code></dd>
435
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
436
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
437
     * </dl>
299
	 * @since 2.1
438
	 * @since 2.1
439
	 * @category CompilerOptionID
300
	 */
440
	 */
301
	public static final String COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT = PLUGIN_ID + ".compiler.problem.unusedParameterWhenImplementingAbstract"; //$NON-NLS-1$
441
	public static final String COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT = PLUGIN_ID + ".compiler.problem.unusedParameterWhenImplementingAbstract"; //$NON-NLS-1$
302
	/**
442
	/**
303
	 * Possible  configurable option ID.
443
     * Compiler option ID: Reporting Unused Parameter if Overriding Concrete Method.
304
	 * @see #getDefaultOptions()
444
     * <p>When enabled, the compiler will signal unused parameters in methods overriding concrete ones.
445
	 * <p>The severity of the problem is controlled with option {@link #COMPILER_PB_UNUSED_PARAMETER}.
446
     * <dl>
447
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete"</code></dd>
448
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
449
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
450
     * </dl>
305
	 * @since 2.1
451
	 * @since 2.1
452
	 * @category CompilerOptionID
306
	 */
453
	 */
307
	public static final String COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE = PLUGIN_ID + ".compiler.problem.unusedParameterWhenOverridingConcrete"; //$NON-NLS-1$
454
	public static final String COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE = PLUGIN_ID + ".compiler.problem.unusedParameterWhenOverridingConcrete"; //$NON-NLS-1$
308
	/**
455
	/**
309
	 * Possible  configurable option ID.
456
     * Compiler option ID: Consider Reference in Doc Comment for Unused Parameter Check.
310
	 * @see #getDefaultOptions()
457
     * <p>When enabled, the compiler will consider doc comment references to parameters (i.e. <code>@param</code> clauses) for the unused
458
	 *    parameter check. Thus, documented parameters will be considered as mandated as per doc contract.
459
	 * <p>The severity of the unused parameter problem is controlled with option {@link #COMPILER_PB_UNUSED_PARAMETER}.
460
	 * <p>Note: this option has no effect until the doc comment support is enabled according to the 
461
	 *    option {@link #COMPILER_DOC_COMMENT_SUPPORT}.
462
     * <dl>
463
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference"</code></dd>
464
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
465
	 * <dt>Default:</dt><dd><code>"enabled"</code></dd>
466
     * </dl>
311
	 * @since 3.3
467
	 * @since 3.3
468
	 * @category CompilerOptionID
312
	 */
469
	 */
313
	public static final String COMPILER_PB_UNUSED_PARAMETER_INCLUDE_DOC_COMMENT_REFERENCE = PLUGIN_ID + ".compiler.problem.unusedParameterIncludeDocCommentReference"; //$NON-NLS-1$
470
	public static final String COMPILER_PB_UNUSED_PARAMETER_INCLUDE_DOC_COMMENT_REFERENCE = PLUGIN_ID + ".compiler.problem.unusedParameterIncludeDocCommentReference"; //$NON-NLS-1$
314
	/**
471
	/**
315
	 * Possible  configurable option ID.
472
     * Compiler option ID: Reporting Unused Import.
316
	 * @see #getDefaultOptions()
473
     * <p>When enabled, the compiler will issue an error or a warning for unused import
474
	 *    reference.
475
     * <dl>
476
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unusedImport"</code></dd>
477
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
478
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
479
     * </dl>
317
	 * @since 2.0
480
	 * @since 2.0
481
	 * @category CompilerOptionID
318
	 */
482
	 */
319
	public static final String COMPILER_PB_UNUSED_IMPORT = PLUGIN_ID + ".compiler.problem.unusedImport"; //$NON-NLS-1$
483
	public static final String COMPILER_PB_UNUSED_IMPORT = PLUGIN_ID + ".compiler.problem.unusedImport"; //$NON-NLS-1$
320
	/**
484
	/**
321
	 * Possible  configurable option ID.
485
     * Compiler option ID: Reporting Presence of Type Arguments for a Non-Generic Method Invocation.
322
	 * @see #getDefaultOptions()
486
     * <p>When enabled, the compiler will issue an error or a warning whenever type arguments are encountered for a
487
	 *    non-generic method invocation. Note that prior to compliance level is <code>"1.7"</code>, this situation would automatically result
488
	 *    in an error. From Java7 on, unused type arguments are being tolerated, and optionally warned against.
489
     * <dl>
490
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unusedTypeArgumentsForMethodInvocation"</code></dd>
491
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
492
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
493
     * </dl>
323
	 * @since 3.4
494
	 * @since 3.4
495
	 * @category CompilerOptionID
324
	 */
496
	 */
325
	public static final String COMPILER_PB_UNUSED_TYPE_ARGUMENTS_FOR_METHOD_INVOCATION = PLUGIN_ID + ".compiler.problem.unusedTypeArgumentsForMethodInvocation"; //$NON-NLS-1$
497
	public static final String COMPILER_PB_UNUSED_TYPE_ARGUMENTS_FOR_METHOD_INVOCATION = PLUGIN_ID + ".compiler.problem.unusedTypeArgumentsForMethodInvocation"; //$NON-NLS-1$
326
	/**
498
	/**
327
	 * Possible  configurable option ID.
499
     * Compiler option ID: Reporting Synthetic Access Emulation.
328
	 * @see #getDefaultOptions()
500
     * <p>When enabled, the compiler will issue an error or a warning whenever it emulates
501
	 *    access to a non-accessible member of an enclosing type. Such access can have
502
	 *    performance implications.
503
     * <dl>
504
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation"</code></dd>
505
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
506
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
507
     * </dl>
508
	 * @category CompilerOptionID
329
	 */
509
	 */
330
	public static final String COMPILER_PB_SYNTHETIC_ACCESS_EMULATION = PLUGIN_ID + ".compiler.problem.syntheticAccessEmulation"; //$NON-NLS-1$
510
	public static final String COMPILER_PB_SYNTHETIC_ACCESS_EMULATION = PLUGIN_ID + ".compiler.problem.syntheticAccessEmulation"; //$NON-NLS-1$
331
	/**
511
	/**
332
	 * Possible  configurable option ID.
512
     * Compiler option ID: Reporting Non-Externalized String Literal.
333
	 * @see #getDefaultOptions()
513
     * <p>When enabled, the compiler will issue an error or a warning for non externalized
514
	 *    String literal (that is, not tagged with <code>//$NON-NLS-&lt;n&gt;$</code>).
515
     * <dl>
516
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral"</code></dd>
517
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
518
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
519
     * </dl>
334
	 * @since 2.0
520
	 * @since 2.0
521
	 * @category CompilerOptionID
335
	 */
522
	 */
336
	public static final String COMPILER_PB_NON_NLS_STRING_LITERAL = PLUGIN_ID + ".compiler.problem.nonExternalizedStringLiteral"; //$NON-NLS-1$
523
	public static final String COMPILER_PB_NON_NLS_STRING_LITERAL = PLUGIN_ID + ".compiler.problem.nonExternalizedStringLiteral"; //$NON-NLS-1$
337
	/**
524
	/**
338
	 * Possible  configurable option ID.
525
     * Compiler option ID: Reporting Usage of <code>'assert'</code> Identifier.
339
	 * @see #getDefaultOptions()
526
     * <p>When enabled, the compiler will issue an error or a warning whenever <code>'assert'</code> is
527
	 *    used as an identifier (reserved keyword in 1.4).
528
     * <dl>
529
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.assertIdentifier"</code></dd>
530
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
531
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
532
     * </dl>
340
	 * @since 2.0
533
	 * @since 2.0
534
	 * @category CompilerOptionID
341
	 */
535
	 */
342
	public static final String COMPILER_PB_ASSERT_IDENTIFIER = PLUGIN_ID + ".compiler.problem.assertIdentifier"; //$NON-NLS-1$
536
	public static final String COMPILER_PB_ASSERT_IDENTIFIER = PLUGIN_ID + ".compiler.problem.assertIdentifier"; //$NON-NLS-1$
343
	/**
537
	/**
344
	 * Possible  configurable option ID.
538
     * Compiler option ID: Reporting Usage of <code>'enum'</code> Identifier.
345
	 * @see #getDefaultOptions()
539
     * <p>When enabled, the compiler will issue an error or a warning whenever <code>'enum'</code> is
540
	 *    used as an identifier (reserved keyword in 1.5).
541
     * <dl>
542
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.enumIdentifier"</code></dd>
543
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
544
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
545
     * </dl>
346
	 * @since 3.1
546
	 * @since 3.1
547
	 * @category CompilerOptionID
347
	 */
548
	 */
348
	public static final String COMPILER_PB_ENUM_IDENTIFIER = PLUGIN_ID + ".compiler.problem.enumIdentifier"; //$NON-NLS-1$
549
	public static final String COMPILER_PB_ENUM_IDENTIFIER = PLUGIN_ID + ".compiler.problem.enumIdentifier"; //$NON-NLS-1$
349
	/**
550
	/**
350
	 * Possible  configurable option ID.
551
     * Compiler option ID: Reporting Non-Static Reference to a Static Member.
351
	 * @see #getDefaultOptions()
552
     * <p>When enabled, the compiler will issue an error or a warning whenever a static field
553
	 *    or method is accessed with an expression receiver. A reference to a static member should
554
	 *    be qualified with a type name.
555
     * <dl>
556
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.staticAccessReceiver"</code></dd>
557
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
558
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
559
     * </dl>
352
	 * @since 2.1
560
	 * @since 2.1
561
	 * @category CompilerOptionID
353
	 */
562
	 */
354
	public static final String COMPILER_PB_STATIC_ACCESS_RECEIVER = PLUGIN_ID + ".compiler.problem.staticAccessReceiver"; //$NON-NLS-1$
563
	public static final String COMPILER_PB_STATIC_ACCESS_RECEIVER = PLUGIN_ID + ".compiler.problem.staticAccessReceiver"; //$NON-NLS-1$
355
	/**
564
	/**
356
	 * Possible  configurable option ID.
565
     * Compiler option ID: Reporting Indirect Reference to a Static Member.
357
	 * @see #getDefaultOptions()
566
     * <p>When enabled, the compiler will issue an error or a warning whenever a static field
567
	 *    or method is accessed in an indirect way. A reference to a static member should
568
	 *    preferably be qualified with its declaring type name.
569
     * <dl>
570
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.indirectStaticAccess"</code></dd>
571
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
572
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
573
     * </dl>
358
	 * @since 3.0
574
	 * @since 3.0
575
	 * @category CompilerOptionID
359
	 */
576
	 */
360
	public static final String COMPILER_PB_INDIRECT_STATIC_ACCESS = PLUGIN_ID + ".compiler.problem.indirectStaticAccess"; //$NON-NLS-1$
577
	public static final String COMPILER_PB_INDIRECT_STATIC_ACCESS = PLUGIN_ID + ".compiler.problem.indirectStaticAccess"; //$NON-NLS-1$
361
	/**
578
	/**
362
	 * Possible  configurable option ID.
579
     * Compiler option ID: Reporting Assignment with no Effect.
363
	 * @see #getDefaultOptions()
580
     * <p>When enabled, the compiler will issue an error or a warning whenever an assignment
581
	 *    has no effect (e.g <code>'x = x'</code>).
582
     * <dl>
583
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.noEffectAssignment"</code></dd>
584
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
585
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
586
     * </dl>
364
	 * @since 2.1
587
	 * @since 2.1
588
	 * @category CompilerOptionID
365
	 */
589
	 */
366
	public static final String COMPILER_PB_NO_EFFECT_ASSIGNMENT = PLUGIN_ID + ".compiler.problem.noEffectAssignment"; //$NON-NLS-1$
590
	public static final String COMPILER_PB_NO_EFFECT_ASSIGNMENT = PLUGIN_ID + ".compiler.problem.noEffectAssignment"; //$NON-NLS-1$
367
	/**
591
	/**
368
	 * Possible  configurable option ID.
592
     * Compiler option ID: Reporting Interface Method not Compatible with non-Inherited Methods.
369
	 * @see #getDefaultOptions()
593
     * <p>When enabled, the compiler will issue an error or a warning whenever an interface
594
	 *    defines a method incompatible with a non-inherited <code>Object</code> method. Until this conflict
595
	 *    is resolved, such an interface cannot be implemented, For example,
596
	 *    <pre>
597
	 *      interface I {
598
	 *         int clone();
599
	 *      }
600
	 *    </pre>
601
     * <dl>
602
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod"</code></dd>
603
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
604
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
605
     * </dl>
370
	 * @since 2.1
606
	 * @since 2.1
607
	 * @category CompilerOptionID
371
	 */
608
	 */
372
	public static final String COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD = PLUGIN_ID + ".compiler.problem.incompatibleNonInheritedInterfaceMethod"; //$NON-NLS-1$
609
	public static final String COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD = PLUGIN_ID + ".compiler.problem.incompatibleNonInheritedInterfaceMethod"; //$NON-NLS-1$
373
	/**
610
	/**
374
	 * Possible  configurable option ID.
611
     * Compiler option ID: Reporting Unused Private Members.
375
	 * @see #getDefaultOptions()
612
     * <p>When enabled, the compiler will issue an error or a warning whenever a private
613
	 *    method or field is declared but never used within the same unit.
614
     * <dl>
615
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unusedPrivateMember"</code></dd>
616
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
617
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
618
     * </dl>
376
	 * @since 2.1
619
	 * @since 2.1
620
	 * @category CompilerOptionID
377
	 */
621
	 */
378
	public static final String COMPILER_PB_UNUSED_PRIVATE_MEMBER = PLUGIN_ID + ".compiler.problem.unusedPrivateMember"; //$NON-NLS-1$
622
	public static final String COMPILER_PB_UNUSED_PRIVATE_MEMBER = PLUGIN_ID + ".compiler.problem.unusedPrivateMember"; //$NON-NLS-1$
379
	/**
623
	/**
380
	 * Possible  configurable option ID.
624
     * Compiler option ID: Reporting Local Variable Declaration Hiding another Variable.
381
	 * @see #getDefaultOptions()
625
     * <p>When enabled, the compiler will issue an error or a warning whenever a local variable
626
	 *    declaration is hiding some field or local variable (either locally, inherited or defined in enclosing type).
627
     * <dl>
628
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.localVariableHiding"</code></dd>
629
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
630
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
631
     * </dl>
382
	 * @since 3.0
632
	 * @since 3.0
633
	 * @category CompilerOptionID
383
	 */
634
	 */
384
	public static final String COMPILER_PB_LOCAL_VARIABLE_HIDING = PLUGIN_ID + ".compiler.problem.localVariableHiding"; //$NON-NLS-1$
635
	public static final String COMPILER_PB_LOCAL_VARIABLE_HIDING = PLUGIN_ID + ".compiler.problem.localVariableHiding"; //$NON-NLS-1$
385
	/**
636
	/**
386
	 * Possible  configurable option ID.
637
     * Compiler option ID: Reporting Special Parameter Hiding another Field.
387
	 * @see #getDefaultOptions()
638
     * <p>When enabled, the compiler will signal cases where a constructor or setter method parameter declaration
639
	 *    is hiding some field (either locally, inherited or defined in enclosing type).
640
	 * <p>The severity of the problem is controlled with option {@link #COMPILER_PB_LOCAL_VARIABLE_HIDING}.
641
     * <dl>
642
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.specialParameterHidingField"</code></dd>
643
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
644
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
645
     * </dl>
388
	 * @since 3.0
646
	 * @since 3.0
647
	 * @category CompilerOptionID
389
	 */
648
	 */
390
	public static final String COMPILER_PB_SPECIAL_PARAMETER_HIDING_FIELD = PLUGIN_ID + ".compiler.problem.specialParameterHidingField"; //$NON-NLS-1$
649
	public static final String COMPILER_PB_SPECIAL_PARAMETER_HIDING_FIELD = PLUGIN_ID + ".compiler.problem.specialParameterHidingField"; //$NON-NLS-1$
391
	/**
650
	/**
392
	 * Possible  configurable option ID.
651
     * Compiler option ID: Reporting Field Declaration Hiding another Variable.
393
	 * @see #getDefaultOptions()
652
     * <p>When enabled, the compiler will issue an error or a warning whenever a field
653
	 *    declaration is hiding some field or local variable (either locally, inherited or defined in enclosing type).
654
     * <dl>
655
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.fieldHiding"</code></dd>
656
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
657
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
658
     * </dl>
394
	 * @since 3.0
659
	 * @since 3.0
660
	 * @category CompilerOptionID
395
	 */
661
	 */
396
	public static final String COMPILER_PB_FIELD_HIDING = PLUGIN_ID + ".compiler.problem.fieldHiding"; //$NON-NLS-1$
662
	public static final String COMPILER_PB_FIELD_HIDING = PLUGIN_ID + ".compiler.problem.fieldHiding"; //$NON-NLS-1$
397
	/**
663
	/**
398
	 * Possible  configurable option ID.
664
     * Compiler option ID: Reporting Type Declaration Hiding another Type.
399
	 * @see #getDefaultOptions()
665
     * <p>When enabled, the compiler will issue an error or a warning in situations where a type parameter
666
	 *    declaration is hiding some type, when a nested type is hiding some type parameter, or when
667
	 *    a nested type is hiding another nested type defined in same unit.
668
     * <dl>
669
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.typeParameterHiding"</code></dd>
670
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
671
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
672
     * </dl>
400
	 * @since 3.1
673
	 * @since 3.1
674
	 * @category CompilerOptionID
401
	 */
675
	 */
402
	public static final String COMPILER_PB_TYPE_PARAMETER_HIDING = PLUGIN_ID + ".compiler.problem.typeParameterHiding"; //$NON-NLS-1$
676
	public static final String COMPILER_PB_TYPE_PARAMETER_HIDING = PLUGIN_ID + ".compiler.problem.typeParameterHiding"; //$NON-NLS-1$
403
	/**
677
	/**
404
	 * Possible  configurable option ID.
678
     * Compiler option ID: Reporting Possible Accidental Boolean Assignment.
405
	 * @see #getDefaultOptions()
679
     * <p>When enabled, the compiler will issue an error or a warning if a boolean assignment is acting as the condition
680
	 *    of a control statement  (where it probably was meant to be a boolean comparison).
681
     * <dl>
682
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment"</code></dd>
683
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
684
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
685
     * </dl>
406
	 * @since 3.0
686
	 * @since 3.0
687
	 * @category CompilerOptionID
407
	 */
688
	 */
408
	public static final String COMPILER_PB_POSSIBLE_ACCIDENTAL_BOOLEAN_ASSIGNMENT = PLUGIN_ID + ".compiler.problem.possibleAccidentalBooleanAssignment"; //$NON-NLS-1$
689
	public static final String COMPILER_PB_POSSIBLE_ACCIDENTAL_BOOLEAN_ASSIGNMENT = PLUGIN_ID + ".compiler.problem.possibleAccidentalBooleanAssignment"; //$NON-NLS-1$
409
	/**
690
	/**
410
	 * Possible  configurable option ID.
691
     * Compiler option ID: Reporting Switch Fall-Through Case.
411
	 * @see #getDefaultOptions()
692
     * <p>When enabled, the compiler will issue an error or a warning if a case may be
693
	 *    entered by falling through previous case. Empty cases are allowed.
694
     * <dl>
695
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.fallthroughCase"</code></dd>
696
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
697
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
698
     * </dl>
412
	 * @since 3.2
699
	 * @since 3.2
700
	 * @category CompilerOptionID
413
	 */
701
	 */
414
	public static final String COMPILER_PB_FALLTHROUGH_CASE = PLUGIN_ID + ".compiler.problem.fallthroughCase"; //$NON-NLS-1$
702
	public static final String COMPILER_PB_FALLTHROUGH_CASE = PLUGIN_ID + ".compiler.problem.fallthroughCase"; //$NON-NLS-1$
415
	/**
703
	/**
416
	 * Possible  configurable option ID.
704
     * Compiler option ID: Reporting Empty Statements and Unnecessary Semicolons.
417
	 * @see #getDefaultOptions()
705
     * <p>When enabled, the compiler will issue an error or a warning if an empty statement or a
706
	 *    unnecessary semicolon is encountered.
707
     * <dl>
708
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.emptyStatement"</code></dd>
709
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
710
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
711
     * </dl>
418
	 * @since 3.0
712
	 * @since 3.0
713
	 * @category CompilerOptionID
419
	 */
714
	 */
420
	public static final String COMPILER_PB_EMPTY_STATEMENT = PLUGIN_ID + ".compiler.problem.emptyStatement"; //$NON-NLS-1$
715
	public static final String COMPILER_PB_EMPTY_STATEMENT = PLUGIN_ID + ".compiler.problem.emptyStatement"; //$NON-NLS-1$
421
	/**
716
	/**
422
	 * Possible  configurable option ID.
717
     * Compiler option ID.
423
	 * @see #getDefaultOptions()
718
     * @since 3.0
424
	 * @since 3.0
719
     * @category CompilerOptionID
425
	 */
720
	 */
426
	public static final String COMPILER_PB_BOOLEAN_METHOD_THROWING_EXCEPTION = PLUGIN_ID + ".compiler.problem.booleanMethodThrowingException"; //$NON-NLS-1$
721
	public static final String COMPILER_PB_BOOLEAN_METHOD_THROWING_EXCEPTION = PLUGIN_ID + ".compiler.problem.booleanMethodThrowingException"; //$NON-NLS-1$
427
	/**
722
	/**
428
	 * Possible  configurable option ID.
723
     * Compiler option ID: Reporting Unnecessary Type Check.
429
	 * @see #getDefaultOptions()
724
     * <p>When enabled, the compiler will issue an error or a warning when a cast or an <code>instanceof</code> operation
725
	 *    is unnecessary.
726
     * <dl>
727
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck"</code></dd>
728
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
729
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
730
     * </dl>
430
	 * @since 3.0
731
	 * @since 3.0
732
	 * @category CompilerOptionID
431
	 */
733
	 */
432
	public static final String COMPILER_PB_UNNECESSARY_TYPE_CHECK = PLUGIN_ID + ".compiler.problem.unnecessaryTypeCheck"; //$NON-NLS-1$
734
	public static final String COMPILER_PB_UNNECESSARY_TYPE_CHECK = PLUGIN_ID + ".compiler.problem.unnecessaryTypeCheck"; //$NON-NLS-1$
433
	/**
735
	/**
434
	 * Possible  configurable option ID.
736
     * Compiler option ID: Reporting Unnecessary Else.
435
	 * @see #getDefaultOptions()
737
     * <p>When enabled, the compiler will issue an error or a warning when a statement is unnecessarily
738
	 *    nested within an <code>else</code> clause (in situation where then clause is not completing normally).
739
     * <dl>
740
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unnecessaryElse"</code></dd>
741
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
742
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
743
     * </dl>
436
	 * @since 3.0
744
	 * @since 3.0
745
	 * @category CompilerOptionID
437
	 */
746
	 */
438
	public static final String COMPILER_PB_UNNECESSARY_ELSE = PLUGIN_ID + ".compiler.problem.unnecessaryElse"; //$NON-NLS-1$
747
	public static final String COMPILER_PB_UNNECESSARY_ELSE = PLUGIN_ID + ".compiler.problem.unnecessaryElse"; //$NON-NLS-1$
439
	/**
748
	/**
440
	 * Possible  configurable option ID.
749
     * Compiler option ID: Reporting Undocumented Empty Block.
441
	 * @see #getDefaultOptions()
750
     * <p>When enabled, the compiler will issue an error or a warning when an empty block is detected and it is not
751
	 *    documented with any comment.
752
     * <dl>
753
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock"</code></dd>
754
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
755
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
756
     * </dl>
442
	 * @since 3.0
757
	 * @since 3.0
758
	 * @category CompilerOptionID
443
	 */
759
	 */
444
	public static final String COMPILER_PB_UNDOCUMENTED_EMPTY_BLOCK = PLUGIN_ID + ".compiler.problem.undocumentedEmptyBlock"; //$NON-NLS-1$
760
	public static final String COMPILER_PB_UNDOCUMENTED_EMPTY_BLOCK = PLUGIN_ID + ".compiler.problem.undocumentedEmptyBlock"; //$NON-NLS-1$
445
	/**
761
	/**
446
	 * Possible  configurable option ID.
762
     * Compiler option ID: Reporting Finally Blocks Not Completing Normally.
447
	 * @see #getDefaultOptions()
763
     * <p>When enabled, the compiler will issue an error or a warning when a finally block does not complete normally.
764
     * <dl>
765
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally"</code></dd>
766
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
767
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
768
     * </dl>
448
	 * @since 3.0
769
	 * @since 3.0
770
	 * @category CompilerOptionID
449
	 */
771
	 */
450
	public static final String COMPILER_PB_FINALLY_BLOCK_NOT_COMPLETING = PLUGIN_ID + ".compiler.problem.finallyBlockNotCompletingNormally"; //$NON-NLS-1$
772
	public static final String COMPILER_PB_FINALLY_BLOCK_NOT_COMPLETING = PLUGIN_ID + ".compiler.problem.finallyBlockNotCompletingNormally"; //$NON-NLS-1$
451
	/**
773
	/**
452
	 * Possible  configurable option ID.
774
     * Compiler option ID: Reporting Unused Declared Thrown Exception.
453
	 * @see #getDefaultOptions()
775
     * <p>When enabled, the compiler will issue an error or a warning when a 
776
	 *    method or a constructor is declaring a thrown exception, but never 
777
	 *    actually raises it in its body. Depending on
778
	 *    {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_INCLUDE_UNCHECKED_EXCEPTIONS},
779
	 *    only checked exceptions will be considered (default), or all 
780
	 *    exceptions, including unchecked ones, will be considered. 
781
     * <dl>
782
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException"</code></dd>
783
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
784
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
785
     * </dl>
454
	 * @since 3.0
786
	 * @since 3.0
787
	 * @category CompilerOptionID
455
	 */
788
	 */
456
	public static final String COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION = PLUGIN_ID + ".compiler.problem.unusedDeclaredThrownException"; //$NON-NLS-1$
789
	public static final String COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION = PLUGIN_ID + ".compiler.problem.unusedDeclaredThrownException"; //$NON-NLS-1$
457
	/**
790
	/**
458
	 * Possible  configurable option ID.
791
     * Compiler option ID: Reporting Unused Declared Thrown Exception in Overriding Method.
459
	 * @see #getDefaultOptions()
792
     * <p>When disabled, the compiler will report unused declared thrown
793
	 *    exceptions neither on overriding methods nor on implementing methods.
794
	 * <p>The severity of the problem is controlled with option {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION}.
795
     * <dl>
796
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding"</code></dd>
797
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
798
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
799
     * </dl>
460
	 * @since 3.0
800
	 * @since 3.0
801
	 * @category CompilerOptionID
461
	 */
802
	 */
462
	public static final String COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_WHEN_OVERRIDING = PLUGIN_ID + ".compiler.problem.unusedDeclaredThrownExceptionWhenOverriding"; //$NON-NLS-1$
803
	public static final String COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_WHEN_OVERRIDING = PLUGIN_ID + ".compiler.problem.unusedDeclaredThrownExceptionWhenOverriding"; //$NON-NLS-1$
463
	/**
804
	/**
464
	 * Possible  configurable option ID.
805
     * Compiler option ID: Consider Reference in Doc Comment for Unused Declared Thrown Exception Check.
465
	 * @see #getDefaultOptions()
806
     * <p>When enabled, the compiler will consider doc comment references to exceptions (i.e. <code>@throws</code> clauses) for the unused
807
	 *    declared thrown exception check. Thus, documented exceptions will be considered as mandated as per doc contract.
808
	 * <p>The severity of the unused declared thrown exception problem is controlled with option {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION}.
809
	 * <p>Note: this option has no effect until the doc comment support is enabled according to the 
810
	 *    option {@link #COMPILER_DOC_COMMENT_SUPPORT}.
811
     * <dl>
812
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference"</code></dd>
813
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
814
	 * <dt>Default:</dt><dd><code>"enabled"</code></dd>
815
     * </dl>
466
	 * @since 3.4
816
	 * @since 3.4
817
	 * @category CompilerOptionID
467
	 */
818
	 */
468
	public static final String COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_INCLUDE_DOC_COMMENT_REFERENCE = PLUGIN_ID + ".compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference"; //$NON-NLS-1$
819
	public static final String COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_INCLUDE_DOC_COMMENT_REFERENCE = PLUGIN_ID + ".compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference"; //$NON-NLS-1$
469
	/**
820
	/**
470
	 * Possible  configurable option ID.
821
     * Compiler option ID: Reporting Unused Declared Thrown Unchecked Exceptions.
471
	 * @see #getDefaultOptions()
822
     * <p>When enabled, the compiler will report unused declared thrown 
823
	 *    exceptions for all exceptions, including unchecked ones. When 
824
	 *    disabled, only checked exceptions will be considered.
825
	 * <p>The severity of the problem is controlled with option 
826
	 *    {@link #COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION}.
827
     * <dl>
828
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeUncheckedExceptions"</code></dd>
829
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
830
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
831
     * </dl>
472
	 * @since 3.4
832
	 * @since 3.4
833
	 * @category CompilerOptionID
473
	 */
834
	 */
474
	public static final String COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_INCLUDE_UNCHECKED_EXCEPTIONS = PLUGIN_ID + ".compiler.problem.unusedDeclaredThrownExceptionIncludeUncheckedExceptions"; //$NON-NLS-1$
835
	public static final String COMPILER_PB_UNUSED_DECLARED_THROWN_EXCEPTION_INCLUDE_UNCHECKED_EXCEPTIONS = PLUGIN_ID + ".compiler.problem.unusedDeclaredThrownExceptionIncludeUncheckedExceptions"; //$NON-NLS-1$
475
	/**
836
	/**
476
	 * Possible  configurable option ID.
837
     * Compiler option ID: Reporting Unqualified Access to Field.
477
	 * @see #getDefaultOptions()
838
     * <p>When enabled, the compiler will issue an error or a warning when a field is access without any qualification.
839
	 *    In order to improve code readability, it should be qualified, e.g. <code>'x'</code> should rather be written <code>'this.x'</code>.
840
     * <dl>
841
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess"</code></dd>
842
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
843
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
844
     * </dl>
478
	 * @since 3.0
845
	 * @since 3.0
846
	 * @category CompilerOptionID
479
	 */
847
	 */
480
	public static final String COMPILER_PB_UNQUALIFIED_FIELD_ACCESS = PLUGIN_ID + ".compiler.problem.unqualifiedFieldAccess"; //$NON-NLS-1$
848
	public static final String COMPILER_PB_UNQUALIFIED_FIELD_ACCESS = PLUGIN_ID + ".compiler.problem.unqualifiedFieldAccess"; //$NON-NLS-1$
481
	/**
849
	/**
482
	 * Possible  configurable option ID.
850
     * @deprecated Use {@link #COMPILER_PB_UNCHECKED_TYPE_OPERATION} instead.
483
	 * @see #getDefaultOptions()
484
	 * @deprecated - got renamed into {@link #COMPILER_PB_UNCHECKED_TYPE_OPERATION}
485
	 * @since 3.1
851
	 * @since 3.1
852
	 * @category DeprecatedOptionID
486
	 */
853
	 */
487
	public static final String COMPILER_PB_UNSAFE_TYPE_OPERATION = PLUGIN_ID + ".compiler.problem.uncheckedTypeOperation"; //$NON-NLS-1$
854
	public static final String COMPILER_PB_UNSAFE_TYPE_OPERATION = PLUGIN_ID + ".compiler.problem.uncheckedTypeOperation"; //$NON-NLS-1$
488
	/**
855
	/**
489
	 * Possible  configurable option ID.
856
     * Compiler option ID: Reporting Unchecked Type Operation.
490
	 * @see #getDefaultOptions()
857
     * <p>When enabled, the compiler will issue an error or a warning whenever an operation involves generic types, and potentially
858
	 *    invalidates type safety since involving raw types (e.g. invoking <code>#foo(X&lt;String&gt;)</code> with arguments <code>(X)</code>).
859
     * <dl>
860
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation"</code></dd>
861
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
862
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
863
     * </dl>
491
	 * @since 3.1
864
	 * @since 3.1
865
	 * @category CompilerOptionID
492
	 */
866
	 */
493
	public static final String COMPILER_PB_UNCHECKED_TYPE_OPERATION = PLUGIN_ID + ".compiler.problem.uncheckedTypeOperation"; //$NON-NLS-1$
867
	public static final String COMPILER_PB_UNCHECKED_TYPE_OPERATION = PLUGIN_ID + ".compiler.problem.uncheckedTypeOperation"; //$NON-NLS-1$
494
	/**
868
	/**
495
	 * Possible  configurable option ID.
869
     * Compiler option ID: Reporting Raw Type Reference.
496
	 * @see #getDefaultOptions()
870
     * <p>When enabled, the compiler will issue an error or a warning when detecting references to raw types. Raw types are
871
	 *    discouraged, and are intended to help interfacing with legacy code. In the future, the language specification may
872
	 *    reject raw references to generic types.
873
     * <dl>
874
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.rawTypeReference"</code></dd>
875
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
876
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
877
     * </dl>
497
	 * @since 3.2
878
	 * @since 3.2
879
	 * @category CompilerOptionID
498
	 */
880
	 */
499
	public static final String COMPILER_PB_RAW_TYPE_REFERENCE = PLUGIN_ID + ".compiler.problem.rawTypeReference"; //$NON-NLS-1$
881
	public static final String COMPILER_PB_RAW_TYPE_REFERENCE = PLUGIN_ID + ".compiler.problem.rawTypeReference"; //$NON-NLS-1$
500
	/**
882
	/**
501
	 * Possible  configurable option ID.
883
     * Compiler option ID: Reporting final Bound for Type Parameter.
502
	 * @see #getDefaultOptions()
884
     * <p>When enabled, the compiler will issue an error or a warning whenever a generic type parameter is associated with a
885
	 *    bound corresponding to a final type; since final types cannot be further extended, the parameter is pretty useless.
886
     * <dl>
887
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.finalParameterBound"</code></dd>
888
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
889
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
890
     * </dl>
503
	 * @since 3.1
891
	 * @since 3.1
892
	 * @category CompilerOptionID
504
	 */
893
	 */
505
	public static final String COMPILER_PB_FINAL_PARAMETER_BOUND = PLUGIN_ID + ".compiler.problem.finalParameterBound"; //$NON-NLS-1$
894
	public static final String COMPILER_PB_FINAL_PARAMETER_BOUND = PLUGIN_ID + ".compiler.problem.finalParameterBound"; //$NON-NLS-1$
506
	/**
895
	/**
507
	 * Possible  configurable option ID.
896
     * Compiler option ID: Reporting Missing Declaration of serialVersionUID Field on Serializable Class.
508
	 * @see #getDefaultOptions()
897
     * <p>When enabled, the compiler will issue an error or a warning whenever a serializable class is missing a local declaration
898
	 *    of a <code>serialVersionUID</code> field. This field must be declared as static final and be of type <code>long</code>.
899
     * <dl>
900
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.missingSerialVersion"</code></dd>
901
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
902
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
903
     * </dl>
509
	 * @since 3.1
904
	 * @since 3.1
905
	 * @category CompilerOptionID
510
	 */
906
	 */
511
	public static final String COMPILER_PB_MISSING_SERIAL_VERSION = PLUGIN_ID + ".compiler.problem.missingSerialVersion"; //$NON-NLS-1$
907
	public static final String COMPILER_PB_MISSING_SERIAL_VERSION = PLUGIN_ID + ".compiler.problem.missingSerialVersion"; //$NON-NLS-1$
512
	/**
908
	/**
513
	 * Possible  configurable option ID.
909
     * Compiler option ID: Reporting Varargs Argument Needing a Cast in Method/Constructor Invocation.
514
	 * @see #getDefaultOptions()
910
     * <p>When enabled, the compiler will issue an error or a warning whenever a varargs arguments should be cast
911
	 *    when passed to a method/constructor invocation. (e.g. <code>Class.getMethod(String name, Class ... args )</code>
912
	 *    invoked with arguments <code>("foo", null)</code>).
913
     * <dl>
914
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast"</code></dd>
915
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
916
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
917
     * </dl>
515
	 * @since 3.1
918
	 * @since 3.1
919
	 * @category CompilerOptionID
516
	 */
920
	 */
517
	public static final String COMPILER_PB_VARARGS_ARGUMENT_NEED_CAST = PLUGIN_ID + ".compiler.problem.varargsArgumentNeedCast"; //$NON-NLS-1$
921
	public static final String COMPILER_PB_VARARGS_ARGUMENT_NEED_CAST = PLUGIN_ID + ".compiler.problem.varargsArgumentNeedCast"; //$NON-NLS-1$
518
	/**
922
	/**
519
	 * Possible  configurable option ID.
923
     * Compiler option ID: Reporting Boxing/Unboxing Conversion.
520
	 * @see #getDefaultOptions()
924
     * <p>When enabled, the compiler will issue an error or a warning whenever a boxing or an unboxing
925
	 *    conversion is performed.
926
     * <dl>
927
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.autoboxing"</code></dd>
928
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
929
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
930
     * </dl>
521
	 * @since 3.1
931
	 * @since 3.1
932
	 * @category CompilerOptionID
522
	 */
933
	 */
523
	public static final String COMPILER_PB_AUTOBOXING = PLUGIN_ID + ".compiler.problem.autoboxing"; //$NON-NLS-1$
934
	public static final String COMPILER_PB_AUTOBOXING = PLUGIN_ID + ".compiler.problem.autoboxing"; //$NON-NLS-1$
524
	/**
935
	/**
525
	 * Possible  configurable option ID.
936
     * Compiler option ID: Reporting Use of Annotation Type as Super Interface.
526
	 * @see #getDefaultOptions()
937
     * <p>When enabled, the compiler will issue an error or a warning whenever an annotation type is used
938
	 *    as a super-interface. Though legal, this is discouraged.
939
     * <dl>
940
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.annotationSuperInterface"</code></dd>
941
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
942
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
943
     * </dl>
527
	 * @since 3.1
944
	 * @since 3.1
945
	 * @category CompilerOptionID
528
	 */
946
	 */
529
	public static final String COMPILER_PB_ANNOTATION_SUPER_INTERFACE = PLUGIN_ID + ".compiler.problem.annotationSuperInterface"; //$NON-NLS-1$
947
	public static final String COMPILER_PB_ANNOTATION_SUPER_INTERFACE = PLUGIN_ID + ".compiler.problem.annotationSuperInterface"; //$NON-NLS-1$
530
	/**
948
	/**
531
	 * Possible  configurable option ID.
949
     * Compiler option ID: Reporting Missing <code>@Override</code> Annotation.
532
	 * @see #getDefaultOptions()
950
     * <p>When enabled, the compiler will issue an error or a warning whenever encountering a method
951
	 *    declaration which overrides a superclass method but has no <code>@Override</code> annotation.
952
     * <dl>
953
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation"</code></dd>
954
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
955
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
956
     * </dl>
533
	 * @since 3.1
957
	 * @since 3.1
958
	 * @category CompilerOptionID
534
	 */
959
	 */
535
	public static final String COMPILER_PB_MISSING_OVERRIDE_ANNOTATION = PLUGIN_ID + ".compiler.problem.missingOverrideAnnotation"; //$NON-NLS-1$
960
	public static final String COMPILER_PB_MISSING_OVERRIDE_ANNOTATION = PLUGIN_ID + ".compiler.problem.missingOverrideAnnotation"; //$NON-NLS-1$
536
	/**
961
	/**
537
	 * Possible  configurable option ID.
962
     * Compiler option ID: Reporting Missing <code>@Deprecated</code> Annotation.
538
	 * @see #getDefaultOptions()
963
     * <p>When enabled, the compiler will issue an error or a warning whenever encountering a declaration
964
	 *    carrying a <code>@deprecated</code> doc tag but having no corresponding <code>@Deprecated</code> annotation.
965
     * <dl>
966
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation"</code></dd>
967
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
968
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
969
     * </dl>
539
	 * @since 3.1
970
	 * @since 3.1
971
	 * @category CompilerOptionID
540
	 */
972
	 */
541
	public static final String COMPILER_PB_MISSING_DEPRECATED_ANNOTATION = PLUGIN_ID + ".compiler.problem.missingDeprecatedAnnotation"; //$NON-NLS-1$
973
	public static final String COMPILER_PB_MISSING_DEPRECATED_ANNOTATION = PLUGIN_ID + ".compiler.problem.missingDeprecatedAnnotation"; //$NON-NLS-1$
542
	/**
974
	/**
543
	 * Possible  configurable option ID.
975
     * Compiler option ID: Reporting Incomplete Enum Switch.
544
	 * @see #getDefaultOptions()
976
     * <p>When enabled, the compiler will issue an error or a warning whenever
977
	 *    an enum constant has no corresponding case label in an enum switch
978
	 *    statement.
979
     * <dl>
980
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch"</code></dd>
981
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
982
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
983
     * </dl>
545
	 * @since 3.1
984
	 * @since 3.1
985
	 * @category CompilerOptionID
546
	 */
986
	 */
547
	public static final String COMPILER_PB_INCOMPLETE_ENUM_SWITCH = PLUGIN_ID + ".compiler.problem.incompleteEnumSwitch"; //$NON-NLS-1$
987
	public static final String COMPILER_PB_INCOMPLETE_ENUM_SWITCH = PLUGIN_ID + ".compiler.problem.incompleteEnumSwitch"; //$NON-NLS-1$
548
	/**
988
	/**
549
	 * Possible  configurable option ID.
989
     * @since 3.1
550
	 * @since 3.1
990
	 * @deprecated Use {@link #COMPILER_PB_NULL_REFERENCE} instead.
551
	 * @deprecated use {@link #COMPILER_PB_NULL_REFERENCE} instead
991
	 * @category DeprecatedOptionID
552
	 */
992
	 */
553
	public static final String COMPILER_PB_INCONSISTENT_NULL_CHECK = PLUGIN_ID + ".compiler.problem.inconsistentNullCheck"; //$NON-NLS-1$
993
	public static final String COMPILER_PB_INCONSISTENT_NULL_CHECK = PLUGIN_ID + ".compiler.problem.inconsistentNullCheck"; //$NON-NLS-1$
554
	/**
994
	/**
555
	 * Possible  configurable option ID.
995
     * Compiler option ID: Reporting Unreferenced Label.
556
	 * @see #getDefaultOptions()
996
     * <p>When enabled, the compiler will issue an error or a warning when encountering a labeled statement which label
997
	 *    is never explicitly referenced. A label is considered to be referenced if its name explicitly appears behind a break
998
	 *    or continue statement; for instance the following label would be considered unreferenced:
999
	 *    <code>LABEL: { break; }</code>
1000
     * <dl>
1001
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unusedLabel"</code></dd>
1002
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
1003
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
1004
     * </dl>
557
	 * @since 3.2
1005
	 * @since 3.2
1006
	 * @category CompilerOptionID
558
	 */
1007
	 */
559
	public static final String COMPILER_PB_UNUSED_LABEL = PLUGIN_ID + ".compiler.problem.unusedLabel"; //$NON-NLS-1$
1008
	public static final String COMPILER_PB_UNUSED_LABEL = PLUGIN_ID + ".compiler.problem.unusedLabel"; //$NON-NLS-1$
560
	/**
1009
	/**
561
	 * Possible  configurable option ID.
1010
     * Compiler option ID: Reporting Invalid Javadoc Comment.
562
	 * @see #getDefaultOptions()
1011
     * <p>This is the generic control for the severity of Javadoc problems.
1012
	 *    When enabled, the compiler will issue an error or a warning for a problem in Javadoc.
1013
     * <dl>
1014
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.invalidJavadoc"</code></dd>
1015
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
1016
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
1017
     * </dl>
563
	 * @since 3.0
1018
	 * @since 3.0
1019
	 * @category CompilerOptionID
564
	 */
1020
	 */
565
	public static final String COMPILER_PB_INVALID_JAVADOC = PLUGIN_ID + ".compiler.problem.invalidJavadoc"; //$NON-NLS-1$
1021
	public static final String COMPILER_PB_INVALID_JAVADOC = PLUGIN_ID + ".compiler.problem.invalidJavadoc"; //$NON-NLS-1$
566
	/**
1022
	/**
567
	 * Possible  configurable option ID.
1023
     * Compiler option ID: Reporting Invalid Javadoc Tags.
568
	 * @see #getDefaultOptions()
1024
     * <p>When enabled, the compiler will signal unbound or unexpected reference tags in Javadoc.
1025
	 *    A <code>@throws</code> tag referencing an undeclared exception would be considered as unexpected.
1026
	 * <p>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
1027
	 *    also see the setting {@link #COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY}.
1028
     * </dl>
569
	 * @since 3.0
1029
	 * @since 3.0
1030
	 * @category CompilerOptionID
570
	 */
1031
	 */
571
	public static final String COMPILER_PB_INVALID_JAVADOC_TAGS = PLUGIN_ID + ".compiler.problem.invalidJavadocTags"; //$NON-NLS-1$
1032
	public static final String COMPILER_PB_INVALID_JAVADOC_TAGS = PLUGIN_ID + ".compiler.problem.invalidJavadocTags"; //$NON-NLS-1$
572
	/**
1033
	/**
573
	 * Possible  configurable option ID.
1034
     * Compiler option ID: Reporting Invalid Javadoc Tags with Deprecated References.
574
	 * @see #getDefaultOptions()
1035
     * <p>Specify whether the compiler will report deprecated references used in Javadoc tags.
1036
	 * <p>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
1037
	 *    also see the setting {@link #COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY}.
1038
     * <dl>
1039
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef"</code></dd>
1040
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1041
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
1042
     * </dl>
575
	 * @since 3.1
1043
	 * @since 3.1
1044
	 * @category CompilerOptionID
576
	 */
1045
	 */
577
	public static final String COMPILER_PB_INVALID_JAVADOC_TAGS__DEPRECATED_REF = PLUGIN_ID + ".compiler.problem.invalidJavadocTagsDeprecatedRef"; //$NON-NLS-1$
1046
	public static final String COMPILER_PB_INVALID_JAVADOC_TAGS__DEPRECATED_REF = PLUGIN_ID + ".compiler.problem.invalidJavadocTagsDeprecatedRef"; //$NON-NLS-1$
578
	/**
1047
	/**
579
	 * Possible  configurable option ID.
1048
     * Compiler option ID: Reporting Invalid Javadoc Tags with Not Visible References.
580
	 * @see #getDefaultOptions()
1049
     * <p>Specify whether the compiler will report non-visible references used in Javadoc tags.
1050
	 * <p>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
1051
	 *    also see the setting {@link #COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY}.
1052
     * <dl>
1053
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef"</code></dd>
1054
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1055
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
1056
     * </dl>
581
	 * @since 3.1
1057
	 * @since 3.1
1058
	 * @category CompilerOptionID
582
	 */
1059
	 */
583
	public static final String COMPILER_PB_INVALID_JAVADOC_TAGS__NOT_VISIBLE_REF = PLUGIN_ID + ".compiler.problem.invalidJavadocTagsNotVisibleRef"; //$NON-NLS-1$
1060
	public static final String COMPILER_PB_INVALID_JAVADOC_TAGS__NOT_VISIBLE_REF = PLUGIN_ID + ".compiler.problem.invalidJavadocTagsNotVisibleRef"; //$NON-NLS-1$
584
	/**
1061
	/**
585
	 * Possible  configurable option ID.
1062
     * Compiler option ID: Visibility Level For Invalid Javadoc Tags.
586
	 * @see #getDefaultOptions()
1063
     * <p>Set the minimum visibility level for Javadoc tag problems. Below this level problems will be ignored.
1064
     * <dl>
1065
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility"</code></dd>
1066
	 * <dt>Possible values:</dt><dd><code>{ "public", "protected", "default", "private" }</code></dd>
1067
	 * <dt>Default:</dt><dd><code>"public"</code></dd>
1068
     * </dl>
587
	 * @since 3.0
1069
	 * @since 3.0
1070
	 * @category CompilerOptionID
588
	 */
1071
	 */
589
	public static final String COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY = PLUGIN_ID + ".compiler.problem.invalidJavadocTagsVisibility"; //$NON-NLS-1$
1072
	public static final String COMPILER_PB_INVALID_JAVADOC_TAGS_VISIBILITY = PLUGIN_ID + ".compiler.problem.invalidJavadocTagsVisibility"; //$NON-NLS-1$
590
	/**
1073
	/**
591
	 * Possible configurable option ID.
1074
     * Compiler option ID: Reporting missing tag description.
592
	 * @see #getDefaultOptions()
1075
     * <p>When enabled, the compiler will report a warning or an error for any Javadoc missing a required description.
1076
	 * <p>The severity of the problem is controlled with option {@link #COMPILER_PB_INVALID_JAVADOC}.
1077
	 * <p>This option is NOT dependent from the Report errors in tags option.
1078
     * <dl>
1079
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription"</code></dd>
1080
	 * <dt>Possible values:</dt><dd><code>{ "return_tag", "all_tags", "no_tag" }</code></dd>
1081
	 * <dt>Default:</dt><dd><code>"return_tag"</code></dd>
1082
     * </dl>
593
	 * @since 3.4
1083
	 * @since 3.4
1084
	 * @category CompilerOptionID
594
	 */
1085
	 */
595
	public static final String COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION = PLUGIN_ID + ".compiler.problem.missingJavadocTagDescription"; //$NON-NLS-1$
1086
	public static final String COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION = PLUGIN_ID + ".compiler.problem.missingJavadocTagDescription"; //$NON-NLS-1$
596
	/**
1087
	/**
597
	 * Possible configurable option value.
1088
     * Compiler option ID: Reporting Missing Javadoc Tags.
598
	 * @see #getDefaultOptions()
1089
     * <p>This is the generic control for the severity of Javadoc missing tag problems.
599
	 * @since 3.4
1090
	 *    When enabled, the compiler will issue an error or a warning when tags are missing in Javadoc comments.
600
	 */
1091
	 * <p>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
601
	public static final String COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_NO_TAG = CompilerOptions.NO_TAG;
1092
	 *    also see the setting {@link #COMPILER_PB_MISSING_JAVADOC_TAGS_VISIBILITY}.
602
	/**
1093
     * <dl>
603
	 * Possible configurable option value.
1094
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.missingJavadocTags"</code></dd>
604
	 * @see #getDefaultOptions()
1095
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
605
	 * @since 3.4
1096
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
606
	 */
1097
     * </dl>
607
	public static final String COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_RETURN_TAG = CompilerOptions.RETURN_TAG;
608
	/**
609
	 * Possible configurable option value.
610
	 * @see #getDefaultOptions()
611
	 * @since 3.4
612
	 */
613
	public static final String COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_ALL_TAGS = CompilerOptions.ALL_TAGS;
614
	/**
615
	 * Possible  configurable option ID.
616
	 * @see #getDefaultOptions()
617
	 * @since 3.0
1098
	 * @since 3.0
1099
	 * @category CompilerOptionID
618
	 */
1100
	 */
619
	public static final String COMPILER_PB_MISSING_JAVADOC_TAGS = PLUGIN_ID + ".compiler.problem.missingJavadocTags"; //$NON-NLS-1$
1101
	public static final String COMPILER_PB_MISSING_JAVADOC_TAGS = PLUGIN_ID + ".compiler.problem.missingJavadocTags"; //$NON-NLS-1$
620
	/**
1102
	/**
621
	 * Possible  configurable option ID.
1103
     * Compiler option ID: Visibility Level For Missing Javadoc Tags.
622
	 * @see #getDefaultOptions()
1104
     * <p>Set the minimum visibility level for Javadoc missing tag problems. Below this level problems will be ignored.
1105
     * <dl>
1106
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility"</code></dd>
1107
	 * <dt>Possible values:</dt><dd><code>{ "public", "protected", "default", "private" }</code></dd>
1108
	 * <dt>Default:</dt><dd><code>"public"</code></dd>
1109
     * </dl>
623
	 * @since 3.0
1110
	 * @since 3.0
1111
	 * @category CompilerOptionID
624
	 */
1112
	 */
625
	public static final String COMPILER_PB_MISSING_JAVADOC_TAGS_VISIBILITY = PLUGIN_ID + ".compiler.problem.missingJavadocTagsVisibility"; //$NON-NLS-1$
1113
	public static final String COMPILER_PB_MISSING_JAVADOC_TAGS_VISIBILITY = PLUGIN_ID + ".compiler.problem.missingJavadocTagsVisibility"; //$NON-NLS-1$
626
	/**
1114
	/**
627
	 * Possible  configurable option ID.
1115
     * Compiler option ID: Reporting Missing Javadoc Tags on Overriding Methods.
628
	 * @see #getDefaultOptions()
1116
     * <p>Specify whether the compiler will verify overriding methods in order to report Javadoc missing tag problems.
1117
     * <dl>
1118
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding"</code></dd>
1119
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1120
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
1121
     * </dl>
629
	 * @since 3.0
1122
	 * @since 3.0
1123
	 * @category CompilerOptionID
630
	 */
1124
	 */
631
	public static final String COMPILER_PB_MISSING_JAVADOC_TAGS_OVERRIDING = PLUGIN_ID + ".compiler.problem.missingJavadocTagsOverriding"; //$NON-NLS-1$
1125
	public static final String COMPILER_PB_MISSING_JAVADOC_TAGS_OVERRIDING = PLUGIN_ID + ".compiler.problem.missingJavadocTagsOverriding"; //$NON-NLS-1$
632
	/**
1126
	/**
633
	 * Possible  configurable option ID.
1127
     * Compiler option ID: Reporting Missing Javadoc Comments.
634
	 * @see #getDefaultOptions()
1128
     * <p>This is the generic control for the severity of missing Javadoc comment problems.
1129
	 *    When enabled, the compiler will issue an error or a warning when Javadoc comments are missing.
1130
	 * <p>Note that this diagnosis can be enabled based on the visibility of the construct associated with the expected Javadoc;
1131
	 *    also see the setting {@link #COMPILER_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY}.
1132
     * <dl>
1133
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.missingJavadocComments"</code></dd>
1134
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
1135
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
1136
     * </dl>
635
	 * @since 3.0
1137
	 * @since 3.0
1138
	 * @category CompilerOptionID
636
	 */
1139
	 */
637
	public static final String COMPILER_PB_MISSING_JAVADOC_COMMENTS = PLUGIN_ID + ".compiler.problem.missingJavadocComments"; //$NON-NLS-1$
1140
	public static final String COMPILER_PB_MISSING_JAVADOC_COMMENTS = PLUGIN_ID + ".compiler.problem.missingJavadocComments"; //$NON-NLS-1$
638
	/**
1141
	/**
639
	 * Possible  configurable option ID.
1142
     * Compiler option ID: Visibility Level For Missing Javadoc Comments.
640
	 * @see #getDefaultOptions()
1143
     * <p>Set the minimum visibility level for missing Javadoc problems. Below this level problems will be ignored.
1144
     * <dl>
1145
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility"</code></dd>
1146
	 * <dt>Possible values:</dt><dd><code>{ "public", "protected", "default", "private" }</code></dd>
1147
	 * <dt>Default:</dt><dd><code>"public"</code></dd>
1148
     * </dl>
641
	 * @since 3.0
1149
	 * @since 3.0
1150
	 * @category CompilerOptionID
642
	 */
1151
	 */
643
	public static final String COMPILER_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY = PLUGIN_ID + ".compiler.problem.missingJavadocCommentsVisibility"; //$NON-NLS-1$
1152
	public static final String COMPILER_PB_MISSING_JAVADOC_COMMENTS_VISIBILITY = PLUGIN_ID + ".compiler.problem.missingJavadocCommentsVisibility"; //$NON-NLS-1$
644
	/**
1153
	/**
645
	 * Possible  configurable option ID.
1154
     * Compiler option ID: Reporting Missing Javadoc Comments on Overriding Methods.
646
	 * @see #getDefaultOptions()
1155
     * <p>Specify whether the compiler will verify overriding methods in order to report missing Javadoc comment problems.
1156
     * <dl>
1157
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding"</code></dd>
1158
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1159
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
1160
     * </dl>
647
	 * @since 3.0
1161
	 * @since 3.0
1162
	 * @category CompilerOptionID
648
	 */
1163
	 */
649
	public static final String COMPILER_PB_MISSING_JAVADOC_COMMENTS_OVERRIDING = PLUGIN_ID + ".compiler.problem.missingJavadocCommentsOverriding"; //$NON-NLS-1$
1164
	public static final String COMPILER_PB_MISSING_JAVADOC_COMMENTS_OVERRIDING = PLUGIN_ID + ".compiler.problem.missingJavadocCommentsOverriding"; //$NON-NLS-1$
650
	/**
1165
	/**
651
	 * Possible  configurable option ID.
1166
     * Compiler option ID: Reporting Usage of <code>char[]</code> Expressions in String Concatenations.
652
	 * @see #getDefaultOptions()
1167
     * <p>When enabled, the compiler will issue an error or a warning whenever a <code>char[]</code> expression
1168
	 *    is used in String concatenations (for example, <code>"hello" + new char[]{'w','o','r','l','d'}</code>).
1169
     * <dl>
1170
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion"</code></dd>
1171
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
1172
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
1173
     * </dl>
653
	 * @since 2.1
1174
	 * @since 2.1
1175
	 * @category CompilerOptionID
654
	 */
1176
	 */
655
	public static final String COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION = PLUGIN_ID + ".compiler.problem.noImplicitStringConversion"; //$NON-NLS-1$
1177
	public static final String COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION = PLUGIN_ID + ".compiler.problem.noImplicitStringConversion"; //$NON-NLS-1$
656
	/**
1178
	/**
657
	 * Possible  configurable option ID.
1179
     * Compiler option ID: Maximum Number of Problems Reported per Compilation Unit.
658
	 * @see #getDefaultOptions()
1180
     * <p>Specify the maximum number of problems reported on each compilation unit.
1181
     * <dl>
1182
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.maxProblemPerUnit"</code></dd>
1183
	 * <dt>Possible values:</dt><dd><code>"&lt;n&gt;"</code> where <code>&lt;n&gt;</code> is zero or a positive integer (if zero then all problems are reported).</dd>
1184
	 * <dt>Default:</dt><dd><code>"100"</code></dd>
1185
     * </dl>
659
	 * @since 2.0
1186
	 * @since 2.0
1187
	 * @category CompilerOptionID
660
	 */
1188
	 */
661
	public static final String COMPILER_PB_MAX_PER_UNIT = PLUGIN_ID + ".compiler.maxProblemPerUnit"; //$NON-NLS-1$
1189
	public static final String COMPILER_PB_MAX_PER_UNIT = PLUGIN_ID + ".compiler.maxProblemPerUnit"; //$NON-NLS-1$
662
	/**
1190
	/**
663
	 * Possible  configurable option ID.
1191
     * Compiler option ID: Treating Optional Error as Fatal.
664
	 * @see #getDefaultOptions()
1192
     * <p>When enabled, optional errors (i.e. optional problems which severity is set to <code>"error"</code>) will be treated as standard
1193
	 *    compiler errors, yielding problem methods/types preventing from running offending code until the issue got resolved.
1194
	 * <p>When disabled, optional errors are only considered as warnings, still carrying an error indication to make them more
1195
	 *    severe. Note that by default, errors are fatal, whether they are optional or not.
1196
     * <dl>
1197
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.fatalOptionalError"</code></dd>
1198
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1199
	 * <dt>Default:</dt><dd><code>"enabled"</code></dd>
1200
     * </dl>
665
	 * @since 3.2
1201
	 * @since 3.2
1202
	 * @category CompilerOptionID
666
	 */
1203
	 */
667
	public static final String COMPILER_PB_FATAL_OPTIONAL_ERROR = PLUGIN_ID + ".compiler.problem.fatalOptionalError"; //$NON-NLS-1$
1204
	public static final String COMPILER_PB_FATAL_OPTIONAL_ERROR = PLUGIN_ID + ".compiler.problem.fatalOptionalError"; //$NON-NLS-1$
668
	/**
1205
	/**
669
	 * Possible configurable option ID.
1206
     * Compiler option ID: Reporting Parameter Assignment.
670
	 * @see #getDefaultOptions()
1207
     * <p>When enabled, the compiler will issue an error or a warning if a parameter is
1208
	 *    assigned to.
1209
     * <dl>
1210
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.parameterAssignment"</code></dd>
1211
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
1212
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
1213
     * </dl>
671
	 * @since 3.2
1214
	 * @since 3.2
1215
	 * @category CompilerOptionID
672
	 */
1216
	 */
673
	public static final String COMPILER_PB_PARAMETER_ASSIGNMENT = PLUGIN_ID + ".compiler.problem.parameterAssignment"; //$NON-NLS-1$
1217
	public static final String COMPILER_PB_PARAMETER_ASSIGNMENT = PLUGIN_ID + ".compiler.problem.parameterAssignment"; //$NON-NLS-1$
674
	/**
1218
	/**
675
	 * Possible  configurable option ID.
1219
     * Compiler option ID: Setting Source Compatibility Mode.
676
	 * @see #getDefaultOptions()
1220
     * <p>Specify whether which source level compatibility is used. From 1.4 on, <code>'assert'</code> is a keyword
1221
	 *    reserved for assertion support. Also note, than when toggling to 1.4 mode, the target VM
1222
	 *    level should be set to <code>"1.4"</code> and the compliance mode should be <code>"1.4"</code>.
1223
	 * <p>Source level 1.5 is necessary to enable generics, autoboxing, covariance, annotations, enumerations
1224
	 *    enhanced for loop, static imports and varargs. Once toggled, the target VM level should be set to <code>"1.5"</code>
1225
	 *    and the compliance mode should be <code>"1.5"</code>.
1226
	 * <p>Source level 1.6 is necessary to enable the computation of stack map tables. Once toggled, the target
1227
	 *    VM level should be set to <code>"1.6"</code> and the compliance mode should be <code>"1.6"</code>.
1228
	 * <p>Once the source level 1.7 is toggled, the target VM level should be set to <code>"1.7"</code> and the compliance mode
1229
	 *    should be <code>"1.7"</code>.
1230
     * <dl>
1231
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.source"</code></dd>
1232
	 * <dt>Possible values:</dt><dd><code>{ "1.3", "1.4", "1.5", "1.6", "1.7" }</code></dd>
1233
	 * <dt>Default:</dt><dd><code>"1.3"</code></dd>
1234
     * </dl>
677
	 * @since 2.0
1235
	 * @since 2.0
1236
	 * @category CompilerOptionID
678
	 */
1237
	 */
679
	public static final String COMPILER_SOURCE = PLUGIN_ID + ".compiler.source"; //$NON-NLS-1$
1238
	public static final String COMPILER_SOURCE = PLUGIN_ID + ".compiler.source"; //$NON-NLS-1$
680
	/**
1239
	/**
681
	 * Possible  configurable option ID.
1240
     * Compiler option ID: Setting Compliance Level.
682
	 * @see #getDefaultOptions()
1241
     * <p>Select the compliance level for the compiler. In <code>"1.3"</code> mode, source and target settings
1242
	 *    should not go beyond <code>"1.3"</code> level.
1243
     * <dl>
1244
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.compliance"</code></dd>
1245
	 * <dt>Possible values:</dt><dd><code>{ "1.3", "1.4", "1.5", "1.6", "1.7" }</code></dd>
1246
	 * <dt>Default:</dt><dd><code>"1.4"</code></dd>	 
1247
     * </dl>
683
	 * @since 2.0
1248
	 * @since 2.0
1249
	 * @category CompilerOptionID
684
	 */
1250
	 */
685
	public static final String COMPILER_COMPLIANCE = PLUGIN_ID + ".compiler.compliance"; //$NON-NLS-1$
1251
	public static final String COMPILER_COMPLIANCE = PLUGIN_ID + ".compiler.compliance"; //$NON-NLS-1$
686
	/**
1252
	/**
687
	 * Possible  configurable option ID.
1253
     * Compiler option ID: Defining the Automatic Task Priorities.
688
	 * @see #getDefaultOptions()
1254
     * <p>In parallel with the Automatic Task Tags, this list defines the priorities (high, normal or low)
1255
	 *    of the task markers issued by the compiler.
1256
	 *    If the default is specified, the priority of each task marker is <code>"NORMAL"</code>.
1257
     * <dl>
1258
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.taskPriorities"</code></dd>
1259
	 * <dt>Possible values:</dt><dd><code>{ "&lt;priority&gt;[,&lt;priority&gt;]*" }</code> where <code>&lt;priority&gt;</code> is one of <code>"HIGH"</code>, <code>"NORMAL"</code> or <code>"LOW"</code></dd>
1260
	 * <dt>Default:</dt><dd><code>"NORMAL,HIGH,NORMAL"</code></dd>
1261
     * </dl>
689
	 * @since 2.1
1262
	 * @since 2.1
1263
	 * @category CompilerOptionID
690
	 */
1264
	 */
691
	public static final String COMPILER_TASK_PRIORITIES = PLUGIN_ID + ".compiler.taskPriorities"; //$NON-NLS-1$
1265
	public static final String COMPILER_TASK_PRIORITIES = PLUGIN_ID + ".compiler.taskPriorities"; //$NON-NLS-1$
692
	/**
1266
	/**
693
	 * Possible  configurable option value for COMPILER_TASK_PRIORITIES.
1267
     * Compiler option ID: Defining the Automatic Task Tags.
694
	 * @see #getDefaultOptions()
1268
     * <p>When the tag list is not empty, the compiler will issue a task marker whenever it encounters
695
	 * @since 2.1
1269
	 *    one of the corresponding tags inside any comment in Java source code.
696
	 */
1270
	 * <p>Generated task messages will start with the tag, and range until the next line separator,
697
	public static final String COMPILER_TASK_PRIORITY_HIGH = "HIGH"; //$NON-NLS-1$
1271
	 *    comment ending, or tag.
698
	/**
1272
	 * <p>When a given line of code bears multiple tags, each tag will be reported separately.
699
	 * Possible  configurable option value for COMPILER_TASK_PRIORITIES.
1273
	 *    Moreover, a tag immediately followed by another tag will be reported using the contents of the
700
	 * @see #getDefaultOptions()
1274
	 *    next non-empty tag of the line, if any.
701
	 * @since 2.1
1275
	 * <p>Note that tasks messages are trimmed. If a tag is starting with a letter or digit, then it cannot be leaded by
702
	 */
1276
	 *    another letter or digit to be recognized (<code>"fooToDo"</code> will not be recognized as a task for tag <code>"ToDo"</code>, but <code>"foo#ToDo"</code>
703
	public static final String COMPILER_TASK_PRIORITY_LOW = "LOW"; //$NON-NLS-1$
1277
	 *    will be detected for either tag <code>"ToDo"</code> or <code>"#ToDo"</code>). Respectively, a tag ending with a letter or digit cannot be followed
704
	/**
1278
	 *    by a letter or digit to be recognized (<code>"ToDofoo"</code> will not be recognized as a task for tag <code>"ToDo"</code>, but <code>"ToDo:foo"</code> will
705
	 * Possible  configurable option value for COMPILER_TASK_PRIORITIES.
1279
	 *    be detected either for tag <code>"ToDo"</code> or <code>"ToDo:"</code>).
706
	 * @see #getDefaultOptions()
1280
     * <dl>
707
	 * @since 2.1
1281
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.taskTags"</code></dd>
708
	 */
1282
	 * <dt>Possible values:</dt><dd><code>{ "&lt;tag&gt;[,&lt;tag&gt;]*" }</code> where <code>&lt;tag&gt;</code> is a String without any wild-card or leading/trailing spaces</dd>
709
	public static final String COMPILER_TASK_PRIORITY_NORMAL = "NORMAL"; //$NON-NLS-1$
1283
	 * <dt>Default:</dt><dd><code>"TODO,FIXME,XXX"</code></dd>
710
	/**
1284
     * </dl>
711
	 * Possible  configurable option ID.
712
	 * @see #getDefaultOptions()
713
	 * @since 2.1
1285
	 * @since 2.1
1286
	 * @category CompilerOptionID
714
	 */
1287
	 */
715
	public static final String COMPILER_TASK_TAGS = PLUGIN_ID + ".compiler.taskTags"; //$NON-NLS-1$
1288
	public static final String COMPILER_TASK_TAGS = PLUGIN_ID + ".compiler.taskTags"; //$NON-NLS-1$
716
	/**
1289
	/**
717
	 * Possible  configurable option ID.
1290
     * Compiler option ID: Determining whether task tags are case-sensitive.
718
	 * @see #getDefaultOptions()
1291
     * <p>When enabled, task tags are considered in a case-sensitive way.
1292
     * <dl>
1293
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.taskCaseSensitive"</code></dd>
1294
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1295
	 * <dt>Default:</dt><dd><code>"enabled"</code></dd>
1296
     * </dl>
719
	 * @since 3.0
1297
	 * @since 3.0
1298
	 * @category CompilerOptionID
720
	 */
1299
	 */
721
	public static final String COMPILER_TASK_CASE_SENSITIVE = PLUGIN_ID + ".compiler.taskCaseSensitive"; //$NON-NLS-1$
1300
	public static final String COMPILER_TASK_CASE_SENSITIVE = PLUGIN_ID + ".compiler.taskCaseSensitive"; //$NON-NLS-1$
722
	/**
1301
	/**
723
	 * Possible  configurable option ID.
1302
     * Compiler option ID: Reporting Forbidden Reference to Type with Restricted Access.
724
	 * @see #getDefaultOptions()
1303
     * <p>When enabled, the compiler will issue an error or a warning when referring to a type that is non accessible, as defined according
1304
	 *    to the access rule specifications.
1305
     * <dl>
1306
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.forbiddenReference"</code></dd>
1307
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
1308
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
1309
     * </dl>
725
	 * @since 3.1
1310
	 * @since 3.1
1311
	 * @category CompilerOptionID
726
	 */
1312
	 */
727
	public static final String COMPILER_PB_FORBIDDEN_REFERENCE = PLUGIN_ID + ".compiler.problem.forbiddenReference"; //$NON-NLS-1$
1313
	public static final String COMPILER_PB_FORBIDDEN_REFERENCE = PLUGIN_ID + ".compiler.problem.forbiddenReference"; //$NON-NLS-1$
728
	/**
1314
	/**
729
	 * Possible  configurable option ID.
1315
     * Compiler option ID: Reporting Discouraged Reference to Type with Restricted Access.
730
	 * @see #getDefaultOptions()
1316
     * <p>When enabled, the compiler will issue an error or a warning when referring to a type with discouraged access, as defined according
1317
	 *    to the access rule specifications.
1318
     * <dl>
1319
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.discouragedReference"</code></dd>
1320
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
1321
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
1322
     * </dl>
731
	 * @since 3.1
1323
	 * @since 3.1
1324
	 * @category CompilerOptionID
732
	 */
1325
	 */
733
	public static final String COMPILER_PB_DISCOURAGED_REFERENCE = PLUGIN_ID + ".compiler.problem.discouragedReference"; //$NON-NLS-1$
1326
	public static final String COMPILER_PB_DISCOURAGED_REFERENCE = PLUGIN_ID + ".compiler.problem.discouragedReference"; //$NON-NLS-1$
734
	/**
1327
	/**
735
	 * Possible  configurable option ID.
1328
     * Compiler option ID: Determining Effect of <code>@SuppressWarnings</code>.
736
	 * @see #getDefaultOptions()
1329
     * <p>When enabled, the <code>@SuppressWarnings</code> annotation can be used to suppress some compiler warnings.
1330
	 * <p>When disabled, all <code>@SupressWarnings</code> annotations are ignored; i.e., warnings are reported.
1331
     * <dl>
1332
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.suppressWarnings"</code></dd>
1333
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1334
	 * <dt>Default:</dt><dd><code>"enabled"</code></dd>
1335
     * </dl>
737
	 * @since 3.1
1336
	 * @since 3.1
1337
	 * @category CompilerOptionID
738
	 */
1338
	 */
739
	public static final String COMPILER_PB_SUPPRESS_WARNINGS = PLUGIN_ID + ".compiler.problem.suppressWarnings"; //$NON-NLS-1$
1339
	public static final String COMPILER_PB_SUPPRESS_WARNINGS = PLUGIN_ID + ".compiler.problem.suppressWarnings"; //$NON-NLS-1$
740
	/**
1340
	/**
741
	 * Possible  configurable option ID.
1341
     * Compiler option ID: Reporting Unhandled Warning Token for <code>@SuppressWarnings</code>.
742
	 * @see #getDefaultOptions()
1342
     * <p>When enabled, the compiler will issue an error or a warning when encountering a token
1343
	 *    it cannot handle inside a <code>@SuppressWarnings</code> annotation.
1344
     * <dl>
1345
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unhandledWarningToken"</code></dd>
1346
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
1347
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
1348
     * </dl>
743
	 * @since 3.1
1349
	 * @since 3.1
1350
	 * @category CompilerOptionID
744
	 */
1351
	 */
745
	public static final String COMPILER_PB_UNHANDLED_WARNING_TOKEN = PLUGIN_ID + ".compiler.problem.unhandledWarningToken"; //$NON-NLS-1$
1352
	public static final String COMPILER_PB_UNHANDLED_WARNING_TOKEN = PLUGIN_ID + ".compiler.problem.unhandledWarningToken"; //$NON-NLS-1$
746
	/**
1353
	/**
747
	 * Possible  configurable option ID.
1354
     * Compiler option ID: Reporting Unnecessary <code>@SuppressWarnings</code>.
748
	 * @see #getDefaultOptions()
1355
     * <p>When enabled, the compiler will issue an error or a warning when encountering <code>@SuppressWarnings</code> annotation 
1356
	 *    for which no corresponding warning got detected in the code. This diagnostic is provided to help developers to get
1357
	 *    rid of transient <code>@SuppressWarnings</code> no longer needed. Note that <code>@SuppressWarnings("all")</code> is still 
1358
	 *    silencing the warning for unnecessary <code>@SuppressWarnings</code>, as it is the master switch to silence ALL warnings.
1359
     * <dl>
1360
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.unusedWarningToken"</code></dd>
1361
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
1362
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
1363
     * </dl>
749
	 * @since 3.4
1364
	 * @since 3.4
1365
	 * @category CompilerOptionID
750
	 */
1366
	 */
751
	public static final String COMPILER_PB_UNUSED_WARNING_TOKEN = PLUGIN_ID + ".compiler.problem.unusedWarningToken"; //$NON-NLS-1$
1367
	public static final String COMPILER_PB_UNUSED_WARNING_TOKEN = PLUGIN_ID + ".compiler.problem.unusedWarningToken"; //$NON-NLS-1$
752
	/**
1368
	/**
753
	 * Possible  configurable option ID.
1369
     * Compiler option ID: Reporting Null Dereference.
754
	 * @see #getDefaultOptions()
1370
     * <p>When enabled, the compiler will issue an error or a warning whenever a
1371
	 *    variable that is statically known to hold a null value is used to
1372
	 *    access a field or method.
1373
     * <dl>
1374
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.nullReference"</code></dd>
1375
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
1376
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
1377
     * </dl>
755
	 * @since 3.2
1378
	 * @since 3.2
1379
	 * @category CompilerOptionID
756
	 */
1380
	 */
757
	public static final String COMPILER_PB_NULL_REFERENCE = PLUGIN_ID + ".compiler.problem.nullReference"; //$NON-NLS-1$
1381
	public static final String COMPILER_PB_NULL_REFERENCE = PLUGIN_ID + ".compiler.problem.nullReference"; //$NON-NLS-1$
758
	/**
1382
	/**
759
	 * Possible  configurable option ID.
1383
     * Compiler option ID: Reporting Potential Null Dereference.
760
	 * @see #getDefaultOptions()
1384
     * <p>When enabled, the compiler will issue an error or a warning whenever a
1385
	 *    variable that has formerly been tested against null but is not (no more)
1386
	 *    statically known to hold a non-null value is used to access a field or
1387
	 *    method.
1388
     * <dl>
1389
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.potentialNullReference"</code></dd>
1390
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
1391
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
1392
     * </dl>
761
	 * @since 3.3
1393
	 * @since 3.3
1394
	 * @category CompilerOptionID
762
	 */
1395
	 */
763
	public static final String COMPILER_PB_POTENTIAL_NULL_REFERENCE = PLUGIN_ID + ".compiler.problem.potentialNullReference"; //$NON-NLS-1$
1396
	public static final String COMPILER_PB_POTENTIAL_NULL_REFERENCE = PLUGIN_ID + ".compiler.problem.potentialNullReference"; //$NON-NLS-1$
764
	/**
1397
	/**
765
	 * Possible  configurable option ID.
1398
     * Compiler option ID: Reporting Redundant Null Check.
766
	 * @see #getDefaultOptions()
1399
     * <p>When enabled, the compiler will issue an error or a warning whenever a
1400
	 *    variable that is statically known to hold a null or a non-null value
1401
	 *    is tested against null.
1402
     * <dl>
1403
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.redundantNullCheck"</code></dd>
1404
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
1405
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
1406
     * </dl>
767
	 * @since 3.3
1407
	 * @since 3.3
1408
	 * @category CompilerOptionID
768
	 */
1409
	 */
769
	public static final String COMPILER_PB_REDUNDANT_NULL_CHECK = PLUGIN_ID + ".compiler.problem.redundantNullCheck"; //$NON-NLS-1$
1410
	public static final String COMPILER_PB_REDUNDANT_NULL_CHECK = PLUGIN_ID + ".compiler.problem.redundantNullCheck"; //$NON-NLS-1$
770
	/**
1411
	/**
771
	 * Possible  configurable option ID.
1412
     * Compiler option ID: Reporting Overriding method that doesn't call the super method invocation.
772
	 * @see #getDefaultOptions()
1413
     * <p>When enabled, the compiler will issue an error or a warning if a method is overriding a method without calling
1414
	 *    the super invocation.
1415
     * <dl>
1416
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.overridingMethodWithoutSuperInvocation"</code></dd>
1417
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
1418
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
1419
     * </dl>
773
	 * @since 3.3
1420
	 * @since 3.3
1421
	 * @category CompilerOptionID
774
	 */
1422
	 */
775
	public static final String COMPILER_PB_OVERRIDING_METHOD_WITHOUT_SUPER_INVOCATION = PLUGIN_ID + ".compiler.problem.overridingMethodWithoutSuperInvocation"; //$NON-NLS-1$
1423
	public static final String COMPILER_PB_OVERRIDING_METHOD_WITHOUT_SUPER_INVOCATION = PLUGIN_ID + ".compiler.problem.overridingMethodWithoutSuperInvocation"; //$NON-NLS-1$
776
	/**
1424
	/**
777
	 * Possible  configurable option ID.
1425
     * Compiler option ID: Reporting Redundant Superinterface.
778
	 * @see #getDefaultOptions()
1426
     * <p>When enabled, the compiler will issue an error or a warning if a type
1427
	 *    explicitly implements an interface that is already implemented by any 
1428
	 *    of its supertypes.
1429
     * <dl>
1430
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.compiler.problem.redundantSuperinterface"</code></dd>
1431
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
1432
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
1433
     * </dl>
779
	 * @since 3.4
1434
	 * @since 3.4
1435
	 * @category CompilerOptionID
780
	 */
1436
	 */
781
	public static final String COMPILER_PB_REDUNDANT_SUPERINTERFACE = PLUGIN_ID + ".compiler.problem.redundantSuperinterface"; //$NON-NLS-1$
1437
	public static final String COMPILER_PB_REDUNDANT_SUPERINTERFACE = PLUGIN_ID + ".compiler.problem.redundantSuperinterface"; //$NON-NLS-1$
782
	/**
1438
	/**
783
	 * Possible  configurable option ID.
1439
     * Core option ID: Computing Project Build Order.
784
	 * @see #getDefaultOptions()
1440
     * <p>Indicate whether JavaCore should enforce the project build order to be based on
1441
	 *    the classpath prerequisite chain. When requesting to compute, this takes over
1442
	 *    the platform default order (based on project references).
1443
     * <dl>
1444
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.computeJavaBuildOrder"</code></dd>
1445
	 * <dt>Possible values:</dt><dd><code>{ "compute", "ignore" }</code></dd>
1446
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
1447
     * </dl>
1448
	 * @category CoreOptionID
785
	 */
1449
	 */
786
	public static final String CORE_JAVA_BUILD_ORDER = PLUGIN_ID + ".computeJavaBuildOrder"; //$NON-NLS-1$
1450
	public static final String CORE_JAVA_BUILD_ORDER = PLUGIN_ID + ".computeJavaBuildOrder"; //$NON-NLS-1$
787
	/**
1451
	/**
788
	 * Possible  configurable option ID.
1452
     * Core option ID: Specifying Filters for Resource Copying Control.
789
	 * @see #getDefaultOptions()
1453
     * <p>Allow to specify some filters to control the resource copy process.
1454
     * <dl>
1455
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.builder.resourceCopyExclusionFilter"</code></dd>
1456
	 * <dt>Possible values:</dt><dd><code>{ "&lt;name&gt;[,&lt;name&gt;]* }</code> where <code>&lt;name&gt;</code> is a file name pattern (* and ? wild-cards allowed)
1457
	 *       or the name of a folder which ends with <code>'/'</code></dd>
1458
	 * <dt>Default:</dt><dd><code>""</code></dd>
1459
     * </dl>
790
	 * @since 2.0
1460
	 * @since 2.0
1461
	 * @category CoreOptionID
791
	 */
1462
	 */
792
	public static final String CORE_JAVA_BUILD_RESOURCE_COPY_FILTER = PLUGIN_ID + ".builder.resourceCopyExclusionFilter"; //$NON-NLS-1$
1463
	public static final String CORE_JAVA_BUILD_RESOURCE_COPY_FILTER = PLUGIN_ID + ".builder.resourceCopyExclusionFilter"; //$NON-NLS-1$
793
	/**
1464
	/**
794
	 * Possible  configurable option ID.
1465
     * Core option ID: Reporting Duplicate Resources.
795
	 * @see #getDefaultOptions()
1466
     * <p>Indicate the severity of the problem reported when more than one occurrence
1467
	 *    of a resource is to be copied into the output location.
1468
     * <dl>
1469
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.builder.duplicateResourceTask"</code></dd>
1470
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning" }</code></dd>
1471
	 * <dt>Default:</dt><dd><code>"warning"</code></dd>
1472
     * </dl>
796
	 * @since 2.1
1473
	 * @since 2.1
1474
	 * @category CoreOptionID
797
	 */
1475
	 */
798
	public static final String CORE_JAVA_BUILD_DUPLICATE_RESOURCE = PLUGIN_ID + ".builder.duplicateResourceTask"; //$NON-NLS-1$
1476
	public static final String CORE_JAVA_BUILD_DUPLICATE_RESOURCE = PLUGIN_ID + ".builder.duplicateResourceTask"; //$NON-NLS-1$
799
	/**
1477
	/**
800
	 * Possible  configurable option ID.
1478
     * Core option ID: Cleaning Output Folder(s).
801
	 * @see #getDefaultOptions()
1479
     * <p>Indicate whether the JavaBuilder is allowed to clean the output folders
1480
	 *    when performing full build operations.
1481
     * <dl>
1482
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.builder.cleanOutputFolder"</code></dd>
1483
	 * <dt>Possible values:</dt><dd><code>{ "clean", "ignore" }</code></dd>
1484
	 * <dt>Default:</dt><dd><code>"clean"</code></dd>
1485
     * </dl>
802
	 * @since 2.1
1486
	 * @since 2.1
1487
	 * @category CoreOptionID
803
	 */
1488
	 */
804
	public static final String CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER = PLUGIN_ID + ".builder.cleanOutputFolder"; //$NON-NLS-1$
1489
	public static final String CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER = PLUGIN_ID + ".builder.cleanOutputFolder"; //$NON-NLS-1$
805
	/**
1490
	/**
806
	 * Possible  configurable option ID.
1491
     * Core option ID: Recreate Modified class files in Output Folder.
807
	 * @see #getDefaultOptions()
1492
     * <p>Indicate whether the JavaBuilder should check for any changes to .class files
1493
	 *    in the output folders while performing incremental build operations. If changes
1494
	 *    are detected to managed .class files, then a full build is performed, otherwise
1495
	 *    the changes are left as is. Tools further altering generated .class files, like optimizers,
1496
	 *    should ensure this option remains set in its default state of ignore.
1497
     * <dl>
1498
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder"</code></dd>
1499
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "ignore" }</code></dd>
1500
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
1501
     * </dl>
808
	 * @since 3.2
1502
	 * @since 3.2
1503
	 * @category CoreOptionID
809
	 */
1504
	 */
810
	public static final String CORE_JAVA_BUILD_RECREATE_MODIFIED_CLASS_FILES_IN_OUTPUT_FOLDER = PLUGIN_ID + ".builder.recreateModifiedClassFileInOutputFolder"; //$NON-NLS-1$
1505
	public static final String CORE_JAVA_BUILD_RECREATE_MODIFIED_CLASS_FILES_IN_OUTPUT_FOLDER = PLUGIN_ID + ".builder.recreateModifiedClassFileInOutputFolder"; //$NON-NLS-1$
811
	/**
1506
	/**
812
	 * Possible  configurable option ID.
1507
     * Core option ID: Reporting Incomplete Classpath.
813
	 * @see #getDefaultOptions()
1508
     * <p>Indicate the severity of the problem reported when an entry on the classpath does not exist,
1509
	 *    is not legite or is not visible (for example, a referenced project is closed).
1510
     * <dl>
1511
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.incompleteClasspath"</code></dd>
1512
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning"}</code></dd>
1513
	 * <dt>Default:</dt><dd><code>"error"</code></dd>
1514
     * </dl>
814
	 * @since 2.1
1515
	 * @since 2.1
1516
	 * @category CoreOptionID
815
	 */
1517
	 */
816
	public static final String CORE_INCOMPLETE_CLASSPATH = PLUGIN_ID + ".incompleteClasspath"; //$NON-NLS-1$
1518
	public static final String CORE_INCOMPLETE_CLASSPATH = PLUGIN_ID + ".incompleteClasspath"; //$NON-NLS-1$
817
	/**
1519
	/**
818
	 * Possible  configurable option ID.
1520
     * Core option ID: Reporting Classpath Cycle.
819
	 * @see #getDefaultOptions()
1521
     * <p>Indicate the severity of the problem reported when a project is involved in a cycle.
1522
     * <dl>
1523
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.circularClasspath"</code></dd>
1524
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning" }</code></dd>
1525
	 * <dt>Default:</dt><dd><code>"error"</code></dd>
1526
     * </dl>
820
	 * @since 2.1
1527
	 * @since 2.1
1528
	 * @category CoreOptionID
821
	 */
1529
	 */
822
	public static final String CORE_CIRCULAR_CLASSPATH = PLUGIN_ID + ".circularClasspath"; //$NON-NLS-1$
1530
	public static final String CORE_CIRCULAR_CLASSPATH = PLUGIN_ID + ".circularClasspath"; //$NON-NLS-1$
823
	/**
1531
	/**
824
	 * Possible  configurable option ID.
1532
     * Core option ID: Reporting Incompatible JDK Level for Required Binaries.
825
	 * @see #getDefaultOptions()
1533
     * <p>Indicate the severity of the problem reported when a project prerequisites another project
1534
	 *    or library with an incompatible target JDK level (e.g. project targeting 1.1 vm, but compiled against 1.4 libraries).
1535
     * <dl>
1536
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.incompatibleJDKLevel"</code></dd>
1537
	 * <dt>Possible values:</dt><dd><code>{ "error", "warning", "ignore" }</code></dd>
1538
	 * <dt>Default:</dt><dd><code>"ignore"</code></dd>
1539
     * </dl>
826
	 * @since 3.0
1540
	 * @since 3.0
1541
	 * @category CoreOptionID
827
	 */
1542
	 */
828
	public static final String CORE_INCOMPATIBLE_JDK_LEVEL = PLUGIN_ID + ".incompatibleJDKLevel"; //$NON-NLS-1$
1543
	public static final String CORE_INCOMPATIBLE_JDK_LEVEL = PLUGIN_ID + ".incompatibleJDKLevel"; //$NON-NLS-1$
829
	/**
1544
	/**
830
	 * Possible  configurable option ID.
1545
     * Core option ID: Abort if Invalid Classpath.
831
	 * @see #getDefaultOptions()
1546
     * <p>Allow to toggle the builder to abort if the classpath is invalid.
1547
     * <dl>
1548
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.builder.invalidClasspath"</code></dd>
1549
	 * <dt>Possible values:</dt><dd><code>{ "abort", "ignore" }</code></dd>
1550
	 * <dt>Default:</dt><dd><code>"abort"</code></dd>
1551
     * </dl>
832
	 * @since 2.0
1552
	 * @since 2.0
1553
	 * @category CoreOptionID
833
	 */
1554
	 */
834
	public static final String CORE_JAVA_BUILD_INVALID_CLASSPATH = PLUGIN_ID + ".builder.invalidClasspath"; //$NON-NLS-1$
1555
	public static final String CORE_JAVA_BUILD_INVALID_CLASSPATH = PLUGIN_ID + ".builder.invalidClasspath"; //$NON-NLS-1$
835
	/**
1556
	/**
836
	 * Possible  configurable option ID.
1557
     * Core option ID: Default Source Encoding Format.
837
	 * @see #getDefaultOptions()
1558
     * <p>Get the default encoding format of source files. This value is
1559
	 *    immutable and preset to the result of <code>ResourcesPlugin.getEncoding()</code>.
1560
	 * <p>It is offered as a convenience shortcut only.
1561
     * <dl>
1562
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.encoding"</code></dd>
1563
	 * <dt>value:</dt><dd><code>&lt;immutable, platform default value&gt;</code></dd>
1564
	 * </dl>
838
	 * @since 2.0
1565
	 * @since 2.0
1566
	 * @category CoreOptionID
839
	 */
1567
	 */
840
	public static final String CORE_ENCODING = PLUGIN_ID + ".encoding"; //$NON-NLS-1$
1568
	public static final String CORE_ENCODING = PLUGIN_ID + ".encoding"; //$NON-NLS-1$
841
	/**
1569
	/**
842
	 * Possible  configurable option ID.
1570
     * Core option ID: Enabling Usage of Classpath Exclusion Patterns.
843
	 * @see #getDefaultOptions()
1571
     * <p>When disabled, no entry on a project classpath can be associated with
1572
	 *    an exclusion pattern.
1573
     * <dl>
1574
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.classpath.exclusionPatterns"</code></dd>
1575
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1576
	 * <dt>Default:</dt><dd><code>"enabled"</code></dd>
1577
     * </dl>
844
	 * @since 2.1
1578
	 * @since 2.1
1579
	 * @category CoreOptionID
845
	 */
1580
	 */
846
	public static final String CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS = PLUGIN_ID + ".classpath.exclusionPatterns"; //$NON-NLS-1$
1581
	public static final String CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS = PLUGIN_ID + ".classpath.exclusionPatterns"; //$NON-NLS-1$
847
	/**
1582
	/**
848
	 * Possible  configurable option ID.
1583
     * Core option ID: Enabling Usage of Classpath Multiple Output Locations.
849
	 * @see #getDefaultOptions()
1584
     * <p>When disabled, no entry on a project classpath can be associated with
1585
	 *    a specific output location, preventing thus usage of multiple output locations.
1586
     * <dl>
1587
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.classpath.multipleOutputLocations"</code></dd>
1588
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1589
	 * <dt>Default:</dt><dd><code>"enabled"</code></dd>
1590
     * </dl>
850
	 * @since 2.1
1591
	 * @since 2.1
1592
	 * @category CoreOptionID
851
	 */
1593
	 */
852
	public static final String CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS = PLUGIN_ID + ".classpath.multipleOutputLocations"; //$NON-NLS-1$
1594
	public static final String CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT_LOCATIONS = PLUGIN_ID + ".classpath.multipleOutputLocations"; //$NON-NLS-1$
853
	/**
1595
	/**
854
	 * Default task tag
1596
     * Core option ID: Set the timeout value for retrieving the method's parameter names from javadoc.
855
	 * @deprecated Use {@link #DEFAULT_TASK_TAGS} instead
1597
     * <p>Timeout in milliseconds to retrieve the method's parameter names from javadoc.
856
	 * @since 2.1
1598
	 * <p>If the value is <code>0</code>, the parameter names are not fetched and the raw names are returned.
857
	 */
1599
     * <dl>
858
	public static final String DEFAULT_TASK_TAG = "TODO"; //$NON-NLS-1$
1600
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.timeoutForParameterNameFromAttachedJavadoc"</code></dd>
859
	/**
1601
	 * <dt>Possible values:</dt><dd><code>"&lt;n&gt;"</code>, where <code>n</code> is an integer greater than or equal to <code>0</code></dd>
860
	 * Default task priority
1602
	 * <dt>Default:</dt><dd><code>"50"</code></dd>
861
	 * @deprecated Use {@link #DEFAULT_TASK_PRIORITIES} instead
1603
     * </dl>
862
	 * @since 2.1
1604
	 * @since 3.2
863
	 */
1605
	 * @category CoreOptionID
864
	public static final String DEFAULT_TASK_PRIORITY = "NORMAL"; //$NON-NLS-1$
865
	/**
866
	 * Default task tag
867
	 * @since 3.0
868
	 */
869
	public static final String DEFAULT_TASK_TAGS = "TODO,FIXME,XXX"; //$NON-NLS-1$
870
	/**
871
	 * Default task priority
872
	 * @since 3.0
873
	 */
1606
	 */
874
	public static final String DEFAULT_TASK_PRIORITIES = "NORMAL,HIGH,NORMAL"; //$NON-NLS-1$
1607
	public static final String TIMEOUT_FOR_PARAMETER_NAME_FROM_ATTACHED_JAVADOC = PLUGIN_ID + ".timeoutForParameterNameFromAttachedJavadoc"; //$NON-NLS-1$
1608
875
	/**
1609
	/**
876
	 * Possible  configurable option ID.
1610
     * @since 2.0
877
	 * @see #getDefaultOptions()
878
	 * @since 2.0
879
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION},
1611
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_ANONYMOUS_TYPE_DECLARATION},
880
	 * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_BLOCK} ,
1612
	 * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_BLOCK} ,
881
	 * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION},
1613
	 * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_CONSTRUCTOR_DECLARATION},
882
	 * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION},
1614
	 * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_METHOD_DECLARATION},
883
	 * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_SWITCH},
1615
	 * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_SWITCH},
884
	 * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION} instead
1616
	 * {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_BRACE_POSITION_FOR_TYPE_DECLARATION} instead.
1617
	 * @category DeprecatedOptionID
885
	 */
1618
	 */
886
	public static final String FORMATTER_NEWLINE_OPENING_BRACE = PLUGIN_ID + ".formatter.newline.openingBrace"; //$NON-NLS-1$
1619
	public static final String FORMATTER_NEWLINE_OPENING_BRACE = PLUGIN_ID + ".formatter.newline.openingBrace"; //$NON-NLS-1$
887
	/**
1620
	/**
888
	 * Possible  configurable option ID.
1621
     * @since 2.0
889
	 * @see #getDefaultOptions()
890
	 * @since 2.0
891
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT},
1622
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_CATCH_IN_TRY_STATEMENT},
892
	 *  {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT},
1623
	 *  {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_ELSE_IN_IF_STATEMENT},
893
	 *  {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT},
1624
	 *  {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_FINALLY_IN_TRY_STATEMENT},
894
	 *  {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT} instead.
1625
	 *  {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_BEFORE_WHILE_IN_DO_STATEMENT} instead.
1626
	 * @category DeprecatedOptionID
895
	 */
1627
	 */
896
	public static final String FORMATTER_NEWLINE_CONTROL = PLUGIN_ID + ".formatter.newline.controlStatement"; //$NON-NLS-1$
1628
	public static final String FORMATTER_NEWLINE_CONTROL = PLUGIN_ID + ".formatter.newline.controlStatement"; //$NON-NLS-1$
897
	/**
1629
	/**
898
	 * Possible  configurable option ID.
899
	 * @see #getDefaultOptions()
900
	 * @since 2.0
1630
	 * @since 2.0
901
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_COMPACT_ELSE_IF} instead
1631
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_COMPACT_ELSE_IF} instead.
1632
	 * @category DeprecatedOptionID
902
	 */
1633
	 */
903
	public static final String FORMATTER_NEWLINE_ELSE_IF = PLUGIN_ID + ".formatter.newline.elseIf"; //$NON-NLS-1$
1634
	public static final String FORMATTER_NEWLINE_ELSE_IF = PLUGIN_ID + ".formatter.newline.elseIf"; //$NON-NLS-1$
904
	/**
1635
	/**
905
	 * Possible  configurable option ID.
906
	 * @see #getDefaultOptions()
907
	 * @since 2.0
1636
	 * @since 2.0
908
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_IN_EMPTY_BLOCK} instead
1637
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_NEW_LINE_IN_EMPTY_BLOCK} instead.
1638
	 * @category DeprecatedOptionID
909
	 */
1639
	 */
910
	public static final String FORMATTER_NEWLINE_EMPTY_BLOCK = PLUGIN_ID + ".formatter.newline.emptyBlock"; //$NON-NLS-1$
1640
	public static final String FORMATTER_NEWLINE_EMPTY_BLOCK = PLUGIN_ID + ".formatter.newline.emptyBlock"; //$NON-NLS-1$
911
	/**
1641
	/**
912
	 * Possible  configurable option ID.
913
	 * @see #getDefaultOptions()
914
	 * @since 2.0
1642
	 * @since 2.0
915
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE} instead
1643
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_NUMBER_OF_EMPTY_LINES_TO_PRESERVE} instead.
1644
	 * @category DeprecatedOptionID
916
	 */
1645
	 */
917
	public static final String FORMATTER_CLEAR_BLANK_LINES = PLUGIN_ID + ".formatter.newline.clearAll"; //$NON-NLS-1$
1646
	public static final String FORMATTER_CLEAR_BLANK_LINES = PLUGIN_ID + ".formatter.newline.clearAll"; //$NON-NLS-1$
918
	/**
1647
	/**
919
	 * Possible  configurable option ID.
920
	 * @see #getDefaultOptions()
921
	 * @since 2.0
1648
	 * @since 2.0
922
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_LINE_SPLIT} instead
1649
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_LINE_SPLIT} instead
1650
	 * @category DeprecatedOptionID
923
	 */
1651
	 */
924
	public static final String FORMATTER_LINE_SPLIT = PLUGIN_ID + ".formatter.lineSplit"; //$NON-NLS-1$
1652
	public static final String FORMATTER_LINE_SPLIT = PLUGIN_ID + ".formatter.lineSplit"; //$NON-NLS-1$
925
	/**
1653
	/**
926
	 * Possible  configurable option ID.
927
	 * @see #getDefaultOptions()
928
	 * @since 2.0
1654
	 * @since 2.0
929
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_SPACE_BEFORE_ASSIGNMENT_OPERATOR} instead
1655
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_SPACE_BEFORE_ASSIGNMENT_OPERATOR} instead.
1656
	 * @category DeprecatedOptionID
930
	 */
1657
	 */
931
	public static final String FORMATTER_COMPACT_ASSIGNMENT = PLUGIN_ID + ".formatter.style.assignment"; //$NON-NLS-1$
1658
	public static final String FORMATTER_COMPACT_ASSIGNMENT = PLUGIN_ID + ".formatter.style.assignment"; //$NON-NLS-1$
932
	/**
1659
	/**
933
	 * Possible  configurable option ID.
934
	 * @see #getDefaultOptions()
935
	 * @since 2.0
1660
	 * @since 2.0
936
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_TAB_CHAR}} instead
1661
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_TAB_CHAR} instead.
1662
	 * @category DeprecatedOptionID
937
	 */
1663
	 */
938
	public static final String FORMATTER_TAB_CHAR = PLUGIN_ID + ".formatter.tabulation.char"; //$NON-NLS-1$
1664
	public static final String FORMATTER_TAB_CHAR = PLUGIN_ID + ".formatter.tabulation.char"; //$NON-NLS-1$
939
	/**
1665
	/**
940
	 * Possible  configurable option ID.
941
	 * @see #getDefaultOptions()
942
	 * @since 2.0
1666
	 * @since 2.0
943
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_TAB_SIZE} instead
1667
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_TAB_SIZE} instead.
1668
	 * @category DeprecatedOptionID
944
	 */
1669
	 */
945
	public static final String FORMATTER_TAB_SIZE = PLUGIN_ID + ".formatter.tabulation.size"; //$NON-NLS-1$
1670
	public static final String FORMATTER_TAB_SIZE = PLUGIN_ID + ".formatter.tabulation.size"; //$NON-NLS-1$
946
	/**
1671
	/**
947
	 * Possible configurable option ID
948
	 * @see #getDefaultOptions()
949
	 * @since 2.1
1672
	 * @since 2.1
950
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_SPACE_AFTER_CLOSING_PAREN_IN_CAST} instead
1673
	 * @deprecated Use {@link org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INSERT_SPACE_AFTER_CLOSING_PAREN_IN_CAST} instead.
1674
	 * @category DeprecatedOptionID
951
	 */
1675
	 */
952
	public static final String FORMATTER_SPACE_CASTEXPRESSION = PLUGIN_ID + ".formatter.space.castexpression"; //$NON-NLS-1$
1676
	public static final String FORMATTER_SPACE_CASTEXPRESSION = PLUGIN_ID + ".formatter.space.castexpression"; //$NON-NLS-1$
953
	/**
1677
	/**
954
	 * Possible  configurable option ID.
1678
     * Code assist option ID: Activate Visibility Sensitive Completion.
955
	 * @see #getDefaultOptions()
1679
     * <p>When active, completion doesn't show that you can not see
1680
	 *    (for example, you can not see private methods of a super class).
1681
     * <dl>
1682
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.codeComplete.visibilityCheck"</code></dd>
1683
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1684
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
1685
     * </dl>
956
	 * @since 2.0
1686
	 * @since 2.0
1687
	 * @category CodeAssistOptionID
957
	 */
1688
	 */
958
	public static final String CODEASSIST_VISIBILITY_CHECK = PLUGIN_ID + ".codeComplete.visibilityCheck"; //$NON-NLS-1$
1689
	public static final String CODEASSIST_VISIBILITY_CHECK = PLUGIN_ID + ".codeComplete.visibilityCheck"; //$NON-NLS-1$
959
	/**
1690
	/**
960
	 * Possible  configurable option ID.
1691
     * Code assist option ID: Activate Deprecation Sensitive Completion.
961
	 * @see #getDefaultOptions()
1692
     * <p>When enabled, completion doesn't propose deprecated members and types.
1693
     * <dl>
1694
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.codeComplete.deprecationCheck"</code></dd>
1695
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1696
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
1697
     * </dl>
962
	 * @since 3.2
1698
	 * @since 3.2
1699
	 * @category CodeAssistOptionID
963
	 */
1700
	 */
964
	public static final String CODEASSIST_DEPRECATION_CHECK = PLUGIN_ID + ".codeComplete.deprecationCheck"; //$NON-NLS-1$
1701
	public static final String CODEASSIST_DEPRECATION_CHECK = PLUGIN_ID + ".codeComplete.deprecationCheck"; //$NON-NLS-1$
965
	/**
1702
	/**
966
	 * Possible  configurable option ID.
1703
     * Code assist option ID: Activate Camel Case Sensitive Completion.
967
	 * @see #getDefaultOptions()
1704
     * <p>When enabled, completion shows proposals whose name match the CamelCase
1705
	 *    pattern.
1706
     * <dl>
1707
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.codeComplete.camelCaseMatch"</code></dd>
1708
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1709
	 * <dt>Default:</dt><dd><code>"enabled"</code></dd>
1710
     * </dl>
968
	 * @since 3.2
1711
	 * @since 3.2
1712
	 * @category CodeAssistOptionID
969
	 */
1713
	 */
970
	public static final String CODEASSIST_CAMEL_CASE_MATCH = PLUGIN_ID + ".codeComplete.camelCaseMatch"; //$NON-NLS-1$
1714
	public static final String CODEASSIST_CAMEL_CASE_MATCH = PLUGIN_ID + ".codeComplete.camelCaseMatch"; //$NON-NLS-1$
971
	/**
1715
	/**
972
	 * Possible  configurable option ID.
1716
     * Code assist option ID: Automatic Qualification of Implicit Members.
973
	 * @see #getDefaultOptions()
1717
     * <p>When active, completion automatically qualifies completion on implicit
1718
	 *    field references and message expressions.
1719
     * <dl>
1720
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.codeComplete.forceImplicitQualification"</code></dd>
1721
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1722
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
1723
     * </dl>
974
	 * @since 2.0
1724
	 * @since 2.0
1725
	 * @category CodeAssistOptionID
975
	 */
1726
	 */
976
	public static final String CODEASSIST_IMPLICIT_QUALIFICATION = PLUGIN_ID + ".codeComplete.forceImplicitQualification"; //$NON-NLS-1$
1727
	public static final String CODEASSIST_IMPLICIT_QUALIFICATION = PLUGIN_ID + ".codeComplete.forceImplicitQualification"; //$NON-NLS-1$
977
	/**
1728
	/**
978
	 * Possible  configurable option ID.
1729
     * Code assist option ID: Define the Prefixes for Field Name.
979
	 * @see #getDefaultOptions()
1730
     * <p>When the prefixes is non empty, completion for field name will begin with
1731
	 *    one of the proposed prefixes.
1732
     * <dl>
1733
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.codeComplete.fieldPrefixes"</code></dd>
1734
	 * <dt>Possible values:</dt><dd><code>{ "&lt;prefix&gt;[,&lt;prefix&gt;]*" }</code> where <code>&lt;prefix&gt;</code> is a String without any wild-card</dd>
1735
	 * <dt>Default:</dt><dd><code>""</code></dd>
1736
     * </dl>
980
	 * @since 2.1
1737
	 * @since 2.1
1738
	 * @category CodeAssistOptionID
981
	 */
1739
	 */
982
	public static final String CODEASSIST_FIELD_PREFIXES = PLUGIN_ID + ".codeComplete.fieldPrefixes"; //$NON-NLS-1$
1740
	public static final String CODEASSIST_FIELD_PREFIXES = PLUGIN_ID + ".codeComplete.fieldPrefixes"; //$NON-NLS-1$
983
	/**
1741
	/**
984
	 * Possible  configurable option ID.
1742
     * Code assist option ID: Define the Prefixes for Static Field Name.
985
	 * @see #getDefaultOptions()
1743
     * <p>When the prefixes is non empty, completion for static field name will begin with
1744
	 *    one of the proposed prefixes.
1745
     * <dl>
1746
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.codeComplete.staticFieldPrefixes"</code></dd>
1747
	 * <dt>Possible values:</dt><dd><code>{ "&lt;prefix&gt;[,&lt;prefix&gt;]*" }</code> where <code>&lt;prefix&gt;</code> is a String without any wild-card</dd>
1748
	 * <dt>Default:</dt><dd><code>""</code></dd>
1749
     * </dl>
986
	 * @since 2.1
1750
	 * @since 2.1
1751
	 * @category CodeAssistOptionID
987
	 */
1752
	 */
988
	public static final String CODEASSIST_STATIC_FIELD_PREFIXES = PLUGIN_ID + ".codeComplete.staticFieldPrefixes"; //$NON-NLS-1$
1753
	public static final String CODEASSIST_STATIC_FIELD_PREFIXES = PLUGIN_ID + ".codeComplete.staticFieldPrefixes"; //$NON-NLS-1$
989
	/**
1754
	/**
990
	 * Possible  configurable option ID.
1755
     * Code assist option ID: Define the Prefixes for Local Variable Name.
991
	 * @see #getDefaultOptions()
1756
     * <p>When the prefixes is non empty, completion for local variable name will begin with
1757
	 *    one of the proposed prefixes.
1758
     * <dl>
1759
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.codeComplete.localPrefixes"</code></dd>
1760
	 * <dt>Possible values:</dt><dd><code>{ "&lt;prefix&gt;[,&lt;prefix&gt;]*" }</code> where <code>&lt;prefix&gt;</code> is a String without any wild-card</dd>
1761
	 * <dt>Default:</dt><dd><code>""</code></dd>
1762
     * </dl>
992
	 * @since 2.1
1763
	 * @since 2.1
1764
	 * @category CodeAssistOptionID
993
	 */
1765
	 */
994
	public static final String CODEASSIST_LOCAL_PREFIXES = PLUGIN_ID + ".codeComplete.localPrefixes"; //$NON-NLS-1$
1766
	public static final String CODEASSIST_LOCAL_PREFIXES = PLUGIN_ID + ".codeComplete.localPrefixes"; //$NON-NLS-1$
995
	/**
1767
	/**
996
	 * Possible  configurable option ID.
1768
     * Code assist option ID: Define the Prefixes for Argument Name.
997
	 * @see #getDefaultOptions()
1769
     * <p>When the prefixes is non empty, completion for argument name will begin with
1770
	 *    one of the proposed prefixes.
1771
     * <dl>
1772
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.codeComplete.argumentPrefixes"</code></dd>
1773
	 * <dt>Possible values:</dt><dd><code>{ "&lt;prefix&gt;[,&lt;prefix&gt;]*" }</code> where <code>&lt;prefix&gt;</code> is a String without any wild-card</dd>
1774
	 * <dt>Default:</dt><dd><code>""</code></dd>
1775
     * </dl>
998
	 * @since 2.1
1776
	 * @since 2.1
1777
	 * @category CodeAssistOptionID
999
	 */
1778
	 */
1000
	public static final String CODEASSIST_ARGUMENT_PREFIXES = PLUGIN_ID + ".codeComplete.argumentPrefixes"; //$NON-NLS-1$
1779
	public static final String CODEASSIST_ARGUMENT_PREFIXES = PLUGIN_ID + ".codeComplete.argumentPrefixes"; //$NON-NLS-1$
1001
	/**
1780
	/**
1002
	 * Possible  configurable option ID.
1781
     * Code assist option ID: Define the Suffixes for Field Name.
1003
	 * @see #getDefaultOptions()
1782
     * <p>When the suffixes is non empty, completion for field name will end with
1783
	 *    one of the proposed suffixes.
1784
     * <dl>
1785
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.codeComplete.fieldSuffixes"</code></dd>
1786
	 * <dt>Possible values:</dt><dd><code>{ "&lt;suffix&gt;[,&lt;suffix&gt;]*" }</code> where <code>&lt;suffix&gt;</code> is a String without any wild-card</dd>
1787
	 * <dt>Default:</dt><dd><code>""</code></dd>
1788
     * </dl>
1004
	 * @since 2.1
1789
	 * @since 2.1
1790
	 * @category CodeAssistOptionID
1005
	 */
1791
	 */
1006
	public static final String CODEASSIST_FIELD_SUFFIXES = PLUGIN_ID + ".codeComplete.fieldSuffixes"; //$NON-NLS-1$
1792
	public static final String CODEASSIST_FIELD_SUFFIXES = PLUGIN_ID + ".codeComplete.fieldSuffixes"; //$NON-NLS-1$
1007
	/**
1793
	/**
1008
	 * Possible  configurable option ID.
1794
     * Code assist option ID: Define the Suffixes for Static Field Name.
1009
	 * @see #getDefaultOptions()
1795
     * <p>When the suffixes is non empty, completion for static field name will end with
1796
	 *    one of the proposed suffixes.
1797
     * <dl>
1798
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.codeComplete.staticFieldSuffixes"</code></dd>
1799
	 * <dt>Possible values:</dt><dd><code>{ "&lt;suffix&gt;[,&lt;suffix&gt;]*" }</code>< where <code>&lt;suffix&gt;</code> is a String without any wild-card</dd>
1800
	 * <dt>Default:</dt><dd><code>""</code></dd>
1801
     * </dl>
1010
	 * @since 2.1
1802
	 * @since 2.1
1803
	 * @category CodeAssistOptionID
1011
	 */
1804
	 */
1012
	public static final String CODEASSIST_STATIC_FIELD_SUFFIXES = PLUGIN_ID + ".codeComplete.staticFieldSuffixes"; //$NON-NLS-1$
1805
	public static final String CODEASSIST_STATIC_FIELD_SUFFIXES = PLUGIN_ID + ".codeComplete.staticFieldSuffixes"; //$NON-NLS-1$
1013
	/**
1806
	/**
1014
	 * Possible  configurable option ID.
1807
     * Code assist option ID: Define the Suffixes for Local Variable Name.
1015
	 * @see #getDefaultOptions()
1808
     * <p>When the suffixes is non empty, completion for local variable name will end with
1809
	 *    one of the proposed suffixes.
1810
     * <dl>
1811
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.codeComplete.localSuffixes"</code></dd>
1812
	 * <dt>Possible values:</dt><dd><code>{ "&lt;suffix&gt;[,&lt;suffix&gt;]*" }</code> where <code>&lt;suffix&gt;</code> is a String without any wild-card</dd>
1813
	 * <dt>Default:</dt><dd><code>""</code></dd>
1814
     * </dl>
1016
	 * @since 2.1
1815
	 * @since 2.1
1816
	 * @category CodeAssistOptionID
1017
	 */
1817
	 */
1018
	public static final String CODEASSIST_LOCAL_SUFFIXES = PLUGIN_ID + ".codeComplete.localSuffixes"; //$NON-NLS-1$
1818
	public static final String CODEASSIST_LOCAL_SUFFIXES = PLUGIN_ID + ".codeComplete.localSuffixes"; //$NON-NLS-1$
1019
	/**
1819
	/**
1020
	 * Possible  configurable option ID.
1820
     * Code assist option ID: Define the Suffixes for Argument Name.
1021
	 * @see #getDefaultOptions()
1821
     * <p>When the suffixes is non empty, completion for argument name will end with
1822
	 *    one of the proposed suffixes.
1823
     * <dl>
1824
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.codeComplete.argumentSuffixes"</code></dd>
1825
	 * <dt>Possible values:</dt><dd><code>{ "&lt;suffix&gt;[,&lt;suffix&gt;]*" }</code> where <code>&lt;suffix&gt;</code> is a String without any wild-card</dd>
1826
	 * <dt>Default:</dt><dd><code>""</code></dd>
1827
     * </dl>
1022
	 * @since 2.1
1828
	 * @since 2.1
1829
	 * @category CodeAssistOptionID
1023
	 */
1830
	 */
1024
	public static final String CODEASSIST_ARGUMENT_SUFFIXES = PLUGIN_ID + ".codeComplete.argumentSuffixes"; //$NON-NLS-1$
1831
	public static final String CODEASSIST_ARGUMENT_SUFFIXES = PLUGIN_ID + ".codeComplete.argumentSuffixes"; //$NON-NLS-1$
1025
	/**
1832
	/**
1026
	 * Possible  configurable option ID.
1833
     * Code assist option ID: Activate Forbidden Reference Sensitive Completion.
1027
	 * @see #getDefaultOptions()
1834
     * <p>When enabled, completion doesn't propose elements which match a
1835
  	 *    forbidden reference rule.
1836
     * <dl>
1837
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.codeComplete.forbiddenReferenceCheck"</code></dd>
1838
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1839
	 * <dt>Default:</dt><dd><code>"enabled"</code></dd>
1840
     * </dl>
1028
	 * @since 3.1
1841
	 * @since 3.1
1842
	 * @category CodeAssistOptionID
1029
	 */
1843
	 */
1030
	public static final String CODEASSIST_FORBIDDEN_REFERENCE_CHECK= PLUGIN_ID + ".codeComplete.forbiddenReferenceCheck"; //$NON-NLS-1$
1844
	public static final String CODEASSIST_FORBIDDEN_REFERENCE_CHECK= PLUGIN_ID + ".codeComplete.forbiddenReferenceCheck"; //$NON-NLS-1$
1031
	/**
1845
	/**
1032
	 * Possible  configurable option ID.
1846
     * Code assist option ID: Activate Discouraged Reference Sensitive Completion.
1033
	 * @see #getDefaultOptions()
1847
     * <p>When enabled, completion doesn't propose elements which match a
1848
  	 *    discouraged reference rule.
1849
     * <dl>
1850
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.codeComplete.discouragedReferenceCheck"</code></dd>
1851
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1852
	 * <dt>Default:</dt><dd><code>"disabled"</code></dd>
1853
     * </dl>
1034
	 * @since 3.1
1854
	 * @since 3.1
1855
	 * @category CodeAssistOptionID
1035
	 */
1856
	 */
1036
	public static final String CODEASSIST_DISCOURAGED_REFERENCE_CHECK= PLUGIN_ID + ".codeComplete.discouragedReferenceCheck"; //$NON-NLS-1$
1857
	public static final String CODEASSIST_DISCOURAGED_REFERENCE_CHECK= PLUGIN_ID + ".codeComplete.discouragedReferenceCheck"; //$NON-NLS-1$
1037
	/**
1858
	/**
1038
	 * Possible  configurable option ID.
1859
     * Code assist option ID: Activate Suggestion of Static Import.
1039
	 * @see #getDefaultOptions()
1860
     * <p>When enabled, completion proposals can contain static import
1861
	 *    pattern.
1862
     * <dl>
1863
	 * <dt>Option id:</dt><dd><code>"org.eclipse.jdt.core.codeComplete.suggestStaticImports"</code></dd>
1864
	 * <dt>Possible values:</dt><dd><code>{ "enabled", "disabled" }</code></dd>
1865
	 * <dt>Default:</dt><dd><code>"enabled"</code></dd>
1866
     * </dl>
1040
	 * @since 3.3
1867
	 * @since 3.3
1868
	 * @category CodeAssistOptionID
1041
	 */
1869
	 */
1042
	public static final String CODEASSIST_SUGGEST_STATIC_IMPORTS= PLUGIN_ID + ".codeComplete.suggestStaticImports"; //$NON-NLS-1$
1870
	public static final String CODEASSIST_SUGGEST_STATIC_IMPORTS= PLUGIN_ID + ".codeComplete.suggestStaticImports"; //$NON-NLS-1$
1871
	// end configurable option IDs }
1872
	// Begin configurable option values {
1043
	/**
1873
	/**
1044
	 * Possible  configurable option ID.
1874
	 * @deprecated Use {@link #DEFAULT_TASK_TAGS} instead.
1045
	 * @see #getDefaultOptions()
1875
	 * @since 2.1
1046
	 * @since 3.2
1876
	 * @category DeprecatedOptionValue
1877
	 */
1878
	public static final String DEFAULT_TASK_TAG = "TODO"; //$NON-NLS-1$
1879
	/**
1880
	 * @deprecated Use {@link #DEFAULT_TASK_PRIORITIES} instead.
1881
	 * @since 2.1
1882
	 * @category DeprecatedOptionValue
1883
	 */
1884
	public static final String DEFAULT_TASK_PRIORITY = "NORMAL"; //$NON-NLS-1$
1885
	/**
1886
	 * Configurable option value: {@value}.
1887
	 * @since 3.0
1888
	 * @category OptionValue
1889
	 */
1890
	public static final String DEFAULT_TASK_TAGS = "TODO,FIXME,XXX"; //$NON-NLS-1$
1891
	/**
1892
	 * Configurable option value: {@value}.
1893
	 * @since 3.0
1894
	 * @category OptionValue
1047
	 */
1895
	 */
1048
	public static final String TIMEOUT_FOR_PARAMETER_NAME_FROM_ATTACHED_JAVADOC = PLUGIN_ID + ".timeoutForParameterNameFromAttachedJavadoc"; //$NON-NLS-1$
1896
	public static final String DEFAULT_TASK_PRIORITIES = "NORMAL,HIGH,NORMAL"; //$NON-NLS-1$
1049
1050
	/**
1897
	/**
1051
	 * Possible  configurable option value.
1898
	 * Configurable option value: {@value}.
1052
	 * @see #getDefaultOptions()
1899
	 * @category OptionValue
1053
	 */
1900
	 */
1054
	public static final String GENERATE = "generate"; //$NON-NLS-1$
1901
	public static final String GENERATE = "generate"; //$NON-NLS-1$
1055
	/**
1902
	/**
1056
	 * Possible  configurable option value.
1903
	 * Configurable option value: {@value}.
1057
	 * @see #getDefaultOptions()
1904
	 * @category OptionValue
1058
	 */
1905
	 */
1059
	public static final String DO_NOT_GENERATE = "do not generate"; //$NON-NLS-1$
1906
	public static final String DO_NOT_GENERATE = "do not generate"; //$NON-NLS-1$
1060
	/**
1907
	/**
1061
	 * Possible  configurable option value.
1908
	 * Configurable option value: {@value}.
1062
	 * @see #getDefaultOptions()
1909
	 * @category OptionValue
1063
	 */
1910
	 */
1064
	public static final String PRESERVE = "preserve"; //$NON-NLS-1$
1911
	public static final String PRESERVE = "preserve"; //$NON-NLS-1$
1065
	/**
1912
	/**
1066
	 * Possible  configurable option value.
1913
	 * Configurable option value: {@value}.
1067
	 * @see #getDefaultOptions()
1914
	 * @category OptionValue
1068
	 */
1915
	 */
1069
	public static final String OPTIMIZE_OUT = "optimize out"; //$NON-NLS-1$
1916
	public static final String OPTIMIZE_OUT = "optimize out"; //$NON-NLS-1$
1070
	/**
1917
	/**
1071
	 * Possible  configurable option value.
1918
	 * Configurable option value for {@link #COMPILER_TASK_PRIORITIES}: {@value}.
1072
	 * @see #getDefaultOptions()
1919
	 * @since 2.1
1920
	 * @category OptionValue
1921
	 */
1922
	public static final String COMPILER_TASK_PRIORITY_HIGH = "HIGH"; //$NON-NLS-1$
1923
	/**
1924
	 * Configurable option value for {@link #COMPILER_TASK_PRIORITIES}: {@value}.
1925
	 * @since 2.1
1926
	 * @category OptionValue
1927
	 */
1928
	public static final String COMPILER_TASK_PRIORITY_LOW = "LOW"; //$NON-NLS-1$
1929
	/**
1930
	 * Configurable option value for {@link #COMPILER_TASK_PRIORITIES}: {@value}.
1931
	 * @since 2.1
1932
	 * @category OptionValue
1933
	 */
1934
	public static final String COMPILER_TASK_PRIORITY_NORMAL = "NORMAL"; //$NON-NLS-1$
1935
	/**
1936
	 * Configurable option value: {@value}.
1937
	 * @category OptionValue
1073
	 */
1938
	 */
1074
	public static final String VERSION_1_1 = "1.1"; //$NON-NLS-1$
1939
	public static final String VERSION_1_1 = "1.1"; //$NON-NLS-1$
1075
	/**
1940
	/**
1076
	 * Possible  configurable option value.
1941
	 * Configurable option value: {@value}.
1077
	 * @see #getDefaultOptions()
1942
	 * @category OptionValue
1078
	 */
1943
	 */
1079
	public static final String VERSION_1_2 = "1.2"; //$NON-NLS-1$
1944
	public static final String VERSION_1_2 = "1.2"; //$NON-NLS-1$
1080
	/**
1945
	/**
1081
	 * Possible  configurable option value.
1946
	 * Configurable option value: {@value}.
1082
	 * @see #getDefaultOptions()
1083
	 * @since 2.0
1947
	 * @since 2.0
1948
	 * @category OptionValue
1084
	 */
1949
	 */
1085
	public static final String VERSION_1_3 = "1.3"; //$NON-NLS-1$
1950
	public static final String VERSION_1_3 = "1.3"; //$NON-NLS-1$
1086
	/**
1951
	/**
1087
	 * Possible  configurable option value.
1952
	 * Configurable option value: {@value}.
1088
	 * @see #getDefaultOptions()
1089
	 * @since 2.0
1953
	 * @since 2.0
1954
	 * @category OptionValue
1090
	 */
1955
	 */
1091
	public static final String VERSION_1_4 = "1.4"; //$NON-NLS-1$
1956
	public static final String VERSION_1_4 = "1.4"; //$NON-NLS-1$
1092
	/**
1957
	/**
1093
	 * Possible  configurable option value.
1958
	 * Configurable option value: {@value}.
1094
	 * @see #getDefaultOptions()
1095
	 * @since 3.0
1959
	 * @since 3.0
1960
	 * @category OptionValue
1096
	 */
1961
	 */
1097
	public static final String VERSION_1_5 = "1.5"; //$NON-NLS-1$
1962
	public static final String VERSION_1_5 = "1.5"; //$NON-NLS-1$
1098
	/**
1963
	/**
1099
	 * Possible  configurable option value.
1964
	 * Configurable option value: {@value}.
1100
	 * @see #getDefaultOptions()
1101
	 * @since 3.2
1965
	 * @since 3.2
1966
	 * @category OptionValue
1102
	 */
1967
	 */
1103
	public static final String VERSION_1_6 = "1.6"; //$NON-NLS-1$
1968
	public static final String VERSION_1_6 = "1.6"; //$NON-NLS-1$
1104
	/**
1969
	/**
1105
	 * Possible  configurable option value.
1970
	 * Configurable option value: {@value}.
1106
	 * @see #getDefaultOptions()
1107
	 * @since 3.3
1971
	 * @since 3.3
1972
	 * @category OptionValue
1108
	 */
1973
	 */
1109
	public static final String VERSION_1_7 = "1.7"; //$NON-NLS-1$
1974
	public static final String VERSION_1_7 = "1.7"; //$NON-NLS-1$
1110
	/**
1975
	/**
1111
	 * Possible  configurable option value.
1976
	 * Configurable option value: {@value}.
1112
	 * @see #getDefaultOptions()
1113
	 * @since 3.4
1977
	 * @since 3.4
1978
	 * @category OptionValue
1114
	 */
1979
	 */
1115
	public static final String VERSION_CLDC_1_1 = "cldc1.1"; //$NON-NLS-1$
1980
	public static final String VERSION_CLDC_1_1 = "cldc1.1"; //$NON-NLS-1$
1116
	/**
1981
	/**
1117
	 * Possible  configurable option value.
1982
	 * Configurable option value: {@value}.
1118
	 * @see #getDefaultOptions()
1119
	 * @since 2.0
1983
	 * @since 2.0
1984
	 * @category OptionValue
1120
	 */
1985
	 */
1121
	public static final String ABORT = "abort"; //$NON-NLS-1$
1986
	public static final String ABORT = "abort"; //$NON-NLS-1$
1122
	/**
1987
	/**
1123
	 * Possible  configurable option value.
1988
	 * Configurable option value: {@value}.
1124
	 * @see #getDefaultOptions()
1989
	 * @category OptionValue
1125
	 */
1990
	 */
1126
	public static final String ERROR = "error"; //$NON-NLS-1$
1991
	public static final String ERROR = "error"; //$NON-NLS-1$
1127
	/**
1992
	/**
1128
	 * Possible  configurable option value.
1993
	 * Configurable option value: {@value}.
1129
	 * @see #getDefaultOptions()
1994
	 * @category OptionValue
1130
	 */
1995
	 */
1131
	public static final String WARNING = "warning"; //$NON-NLS-1$
1996
	public static final String WARNING = "warning"; //$NON-NLS-1$
1132
	/**
1997
	/**
1133
	 * Possible  configurable option value.
1998
	 * Configurable option value: {@value}.
1134
	 * @see #getDefaultOptions()
1999
	 * @category OptionValue
1135
	 */
2000
	 */
1136
	public static final String IGNORE = "ignore"; //$NON-NLS-1$
2001
	public static final String IGNORE = "ignore"; //$NON-NLS-1$
1137
	/**
2002
	/**
1138
	 * Possible  configurable option value.
2003
	 * Configurable option value: {@value}.
1139
	 * @see #getDefaultOptions()
2004
	 * @category OptionValue
1140
	 */
2005
	 */
1141
	public static final String COMPUTE = "compute"; //$NON-NLS-1$
2006
	public static final String COMPUTE = "compute"; //$NON-NLS-1$
1142
	/**
2007
	/**
1143
	 * Possible  configurable option value.
2008
	 * Configurable option value: {@value}.
1144
	 * @see #getDefaultOptions()
1145
	 * @since 2.0
2009
	 * @since 2.0
2010
	 * @category OptionValue
1146
	 */
2011
	 */
1147
	public static final String INSERT = "insert"; //$NON-NLS-1$
2012
	public static final String INSERT = "insert"; //$NON-NLS-1$
1148
	/**
2013
	/**
1149
	 * Possible  configurable option value.
2014
	 * Configurable option value: {@value}.
1150
	 * @see #getDefaultOptions()
1151
	 * @since 2.0
2015
	 * @since 2.0
2016
	 * @category OptionValue
1152
	 */
2017
	 */
1153
	public static final String DO_NOT_INSERT = "do not insert"; //$NON-NLS-1$
2018
	public static final String DO_NOT_INSERT = "do not insert"; //$NON-NLS-1$
1154
	/**
2019
	/**
1155
	 * Possible  configurable option value.
2020
	 * Configurable option value: {@value}.
1156
	 * @see #getDefaultOptions()
1157
	 * @since 2.0
2021
	 * @since 2.0
2022
	 * @category OptionValue
1158
	 */
2023
	 */
1159
	public static final String PRESERVE_ONE = "preserve one"; //$NON-NLS-1$
2024
	public static final String PRESERVE_ONE = "preserve one"; //$NON-NLS-1$
1160
	/**
2025
	/**
1161
	 * Possible  configurable option value.
2026
	 * Configurable option value: {@value}.
1162
	 * @see #getDefaultOptions()
1163
	 * @since 2.0
2027
	 * @since 2.0
2028
	 * @category OptionValue
1164
	 */
2029
	 */
1165
	public static final String CLEAR_ALL = "clear all"; //$NON-NLS-1$
2030
	public static final String CLEAR_ALL = "clear all"; //$NON-NLS-1$
1166
	/**
2031
	/**
1167
	 * Possible  configurable option value.
2032
	 * Configurable option value: {@value}.
1168
	 * @see #getDefaultOptions()
1169
	 * @since 2.0
2033
	 * @since 2.0
2034
	 * @category OptionValue
1170
	 */
2035
	 */
1171
	public static final String NORMAL = "normal"; //$NON-NLS-1$
2036
	public static final String NORMAL = "normal"; //$NON-NLS-1$
1172
	/**
2037
	/**
1173
	 * Possible  configurable option value.
2038
	 * Configurable option value: {@value}.
1174
	 * @see #getDefaultOptions()
1175
	 * @since 2.0
2039
	 * @since 2.0
2040
	 * @category OptionValue
1176
	 */
2041
	 */
1177
	public static final String COMPACT = "compact"; //$NON-NLS-1$
2042
	public static final String COMPACT = "compact"; //$NON-NLS-1$
1178
	/**
2043
	/**
1179
	 * Possible  configurable option value.
2044
	 * Configurable option value: {@value}.
1180
	 * @see #getDefaultOptions()
1181
	 * @since 2.0
2045
	 * @since 2.0
2046
	 * @category OptionValue
1182
	 */
2047
	 */
1183
	public static final String TAB = "tab"; //$NON-NLS-1$
2048
	public static final String TAB = "tab"; //$NON-NLS-1$
1184
	/**
2049
	/**
1185
	 * Possible  configurable option value.
2050
	 * Configurable option value: {@value}.
1186
	 * @see #getDefaultOptions()
1187
	 * @since 2.0
2051
	 * @since 2.0
2052
	 * @category OptionValue
1188
	 */
2053
	 */
1189
	public static final String SPACE = "space"; //$NON-NLS-1$
2054
	public static final String SPACE = "space"; //$NON-NLS-1$
1190
	/**
2055
	/**
1191
	 * Possible  configurable option value.
2056
	 * Configurable option value: {@value}.
1192
	 * @see #getDefaultOptions()
1193
	 * @since 2.0
2057
	 * @since 2.0
2058
	 * @category OptionValue
1194
	 */
2059
	 */
1195
	public static final String ENABLED = "enabled"; //$NON-NLS-1$
2060
	public static final String ENABLED = "enabled"; //$NON-NLS-1$
1196
	/**
2061
	/**
1197
	 * Possible  configurable option value.
2062
	 * Configurable option value: {@value}.
1198
	 * @see #getDefaultOptions()
1199
	 * @since 2.0
2063
	 * @since 2.0
2064
	 * @category OptionValue
1200
	 */
2065
	 */
1201
	public static final String DISABLED = "disabled"; //$NON-NLS-1$
2066
	public static final String DISABLED = "disabled"; //$NON-NLS-1$
1202
	/**
2067
	/**
1203
	 * Possible  configurable option value.
2068
	 * Configurable option value: {@value}.
1204
	 * @see #getDefaultOptions()
1205
	 * @since 2.1
2069
	 * @since 2.1
2070
	 * @category OptionValue
1206
	 */
2071
	 */
1207
	public static final String CLEAN = "clean"; //$NON-NLS-1$
2072
	public static final String CLEAN = "clean"; //$NON-NLS-1$
1208
	/**
2073
	/**
1209
	 * Possible  configurable option value.
2074
	 * Configurable option value: {@value}.
1210
	 * @see #getDefaultOptions()
1211
	 * @since 3.0
2075
	 * @since 3.0
2076
	 * @category OptionValue
1212
	 */
2077
	 */
1213
	public static final String PUBLIC = "public"; //$NON-NLS-1$
2078
	public static final String PUBLIC = "public"; //$NON-NLS-1$
1214
	/**
2079
	/**
1215
	 * Possible  configurable option value.
2080
	 * Configurable option value: {@value}.
1216
	 * @see #getDefaultOptions()
1217
	 * @since 3.0
2081
	 * @since 3.0
2082
	 * @category OptionValue
1218
	 */
2083
	 */
1219
	public static final String PROTECTED = "protected"; //$NON-NLS-1$
2084
	public static final String PROTECTED = "protected"; //$NON-NLS-1$
1220
	/**
2085
	/**
1221
	 * Possible  configurable option value.
2086
	 * Configurable option value: {@value}.
1222
	 * @see #getDefaultOptions()
1223
	 * @since 3.0
2087
	 * @since 3.0
2088
	 * @category OptionValue
1224
	 */
2089
	 */
1225
	public static final String DEFAULT = "default"; //$NON-NLS-1$
2090
	public static final String DEFAULT = "default"; //$NON-NLS-1$
1226
	/**
2091
	/**
1227
	 * Possible  configurable option value.
2092
	 * Configurable option value: {@value}.
1228
	 * @see #getDefaultOptions()
1229
	 * @since 3.0
2093
	 * @since 3.0
2094
	 * @category OptionValue
1230
	 */
2095
	 */
1231
	public static final String PRIVATE = "private"; //$NON-NLS-1$
2096
	public static final String PRIVATE = "private"; //$NON-NLS-1$
1232
	/**
2097
	/**
1233
	 * Possible  configurable option value.
2098
	 * Configurable option value: {@value}.
1234
	 * @see #getDefaultOptions()
1235
	 * @since 3.1
2099
	 * @since 3.1
2100
	 * @category OptionValue
1236
	 */
2101
	 */
1237
	public static final String NEVER = "never"; //$NON-NLS-1$
2102
	public static final String NEVER = "never"; //$NON-NLS-1$
2103
	/**
2104
	 * Configurable option value: {@value}.
2105
	 * @since 3.4
2106
	 * @category OptionValue
2107
	 */
2108
	public static final String COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_NO_TAG = CompilerOptions.NO_TAG;
2109
	/**
2110
	 * Configurable option value: {@value}.
2111
	 * @since 3.4
2112
	 * @category OptionValue
2113
	 */
2114
	public static final String COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_RETURN_TAG = CompilerOptions.RETURN_TAG;
2115
	/**
2116
	 * Configurable option value: {@value}.
2117
	 * @since 3.4
2118
	 * @category OptionValue
2119
	 */
2120
	public static final String COMPILER_PB_MISSING_JAVADOC_TAG_DESCRIPTION_ALL_TAGS = CompilerOptions.ALL_TAGS;
2121
	// end configurable option values }
1238
2122
1239
	/**
2123
	/**
1240
	 * Value of the content-type for Java source files. Use this value to retrieve the Java content type
2124
	 * Value of the content-type for Java source files. Use this value to retrieve the Java content type
Lines 1957-2937 Link Here
1957
	 * These options allow to configure the behaviour of the underlying components.
2841
	 * These options allow to configure the behaviour of the underlying components.
1958
	 * The client may safely use the result as a template that they can modify and
2842
	 * The client may safely use the result as a template that they can modify and
1959
	 * then pass to <code>setOptions</code>.
2843
	 * then pass to <code>setOptions</code>.
1960
	 *
2844
	 * <p>
1961
	 * Helper constants have been defined on JavaCore for each of the option ID and
2845
	 * Helper constants have been defined on JavaCore for each of the option IDs
1962
	 * their possible constant values.
2846
	 * (categorized in Code assist option ID, Compiler option ID and Core option ID) 
1963
	 *
2847
	 * and some of their acceptable values (categorized in Option value). Some
1964
	 * Note: more options might be added in further releases.
2848
	 * options accept open value sets beyond the documented constant values.
1965
	 * <pre>
2849
	 * <p>
1966
	 * RECOGNIZED OPTIONS:
2850
	 * Note: each release may add new options.
1967
	 *
2851
	 * 
1968
	 * COMPILER / Setting Compliance Level
2852
	 * @return a table of all known configurable options with their default values
1969
	 *    Select the compliance level for the compiler. In "1.3" mode, source and target settings
1970
	 *    should not go beyond "1.3" level.
1971
	 *     - option id:         "org.eclipse.jdt.core.compiler.compliance"
1972
	 *     - possible values:   { "1.3", "1.4", "1.5", "1.6", "1.7" }
1973
	 *     - default:           "1.4"
1974
	 *
1975
	 * COMPILER / Setting Source Compatibility Mode
1976
	 *    Specify whether which source level compatibility is used. From 1.4 on, 'assert' is a keyword
1977
	 *    reserved for assertion support. Also note, than when toggling to 1.4 mode, the target VM
1978
	 *   level should be set to "1.4" and the compliance mode should be "1.4".
1979
	 *   Source level 1.5 is necessary to enable generics, autoboxing, covariance, annotations, enumerations
1980
	 *   enhanced for loop, static imports and varargs. Once toggled, the target VM level should be set to "1.5"
1981
	 *   and the compliance mode should be "1.5".
1982
	 *   Source level 1.6 is necessary to enable the computation of stack map tables. Once toggled, the target
1983
	 *   VM level should be set to "1.6" and the compliance mode should be "1.6".
1984
	 *   Once the source level 1.7 is toggled, the target VM level should be set to "1.7" and the compliance mode
1985
	 *   should be "1.7".
1986
	 *     - option id:         "org.eclipse.jdt.core.compiler.source"
1987
	 *     - possible values:   { "1.3", "1.4", "1.5", "1.6", "1.7" }
1988
	 *     - default:           "1.3"
1989
	 *
1990
	 * COMPILER / Defining Target Java Platform
1991
	 *    For binary compatibility reason, .class files can be tagged to with certain VM versions and later.
1992
	 *    Note that "1.4" target requires to toggle compliance mode to "1.4", "1.5" target requires
1993
	 *    to toggle compliance mode to "1.5", "1.6" target requires to toggle compliance mode to "1.6" and
1994
	 *    "1.7" target requires to toggle compliance mode to "1.7".
1995
	 *    "cldc1.1" requires the source version to be "1.3" and the compliance version to be "1.4" or lower.
1996
	 *     - option id:         "org.eclipse.jdt.core.compiler.codegen.targetPlatform"
1997
	 *     - possible values:   { "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "cldc1.1" }
1998
	 *     - default:           "1.2"
1999
	 *
2000
	 * COMPILER / Generating Local Variable Debug Attribute
2001
 	 *    When generated, this attribute will enable local variable names
2002
	 *    to be displayed in debugger, only in place where variables are
2003
	 *    definitely assigned (.class file is then bigger)
2004
	 *     - option id:         "org.eclipse.jdt.core.compiler.debug.localVariable"
2005
	 *     - possible values:   { "generate", "do not generate" }
2006
	 *     - default:           "generate"
2007
	 *
2008
	 * COMPILER / Generating Line Number Debug Attribute
2009
	 *    When generated, this attribute will enable source code highlighting in debugger
2010
	 *    (.class file is then bigger).
2011
	 *     - option id:         "org.eclipse.jdt.core.compiler.debug.lineNumber"
2012
	 *     - possible values:   { "generate", "do not generate" }
2013
	 *     - default:           "generate"
2014
	 *
2015
	 * COMPILER / Generating Source Debug Attribute
2016
	 *    When generated, this attribute will enable the debugger to present the
2017
	 *    corresponding source code.
2018
	 *     - option id:         "org.eclipse.jdt.core.compiler.debug.sourceFile"
2019
	 *     - possible values:   { "generate", "do not generate" }
2020
	 *     - default:           "generate"
2021
	 *
2022
	 * COMPILER / Preserving Unused Local Variables
2023
	 *    Unless requested to preserve unused local variables (that is, never read), the
2024
	 *    compiler will optimize them out, potentially altering debugging
2025
	 *     - option id:         "org.eclipse.jdt.core.compiler.codegen.unusedLocal"
2026
	 *     - possible values:   { "preserve", "optimize out" }
2027
	 *     - default:           "preserve"
2028
	 *
2029
	 * COMPILER / Inline JSR Bytecode Instruction
2030
	 *    When enabled, the compiler will no longer generate JSR instructions, but rather inline corresponding
2031
	 *   subroutine code sequences (mostly corresponding to try finally blocks). The generated code will thus
2032
	 *   get bigger, but will load faster on virtual machines since the verification process is then much simpler.
2033
	 *  This mode is anticipating support for the Java Specification Request 202.
2034
	 *  Note that JSR inlining is optional only for target platform lesser than 1.5. From 1.5 on, the JSR
2035
	 *  inlining is mandatory (also see related setting "org.eclipse.jdt.core.compiler.codegen.targetPlatform").
2036
	 *     - option id:         "org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode"
2037
	 *     - possible values:   { "enabled", "disabled" }
2038
	 *     - default:           "disabled"
2039
	 *
2040
	 * COMPILER / Javadoc Comment Support
2041
	 *    When this support is disabled, the compiler will ignore all javadoc problems options settings
2042
	 *    and will not report any javadoc problem. It will also not find any reference in javadoc comment and
2043
	 *    DOM AST Javadoc node will be only a flat text instead of having structured tag elements.
2044
	 *     - option id:         "org.eclipse.jdt.core.compiler.doc.comment.support"
2045
	 *     - possible values:   { "enabled", "disabled" }
2046
	 *     - default:           "enabled"
2047
	 *
2048
	 * COMPILER / Reporting Attempt to Override Package Visible Method
2049
	 *    A package visible method, which is any method that is not explicitly 
2050
	 *    declared as public, protected or private, is not visible from other 
2051
	 *    packages, and thus cannot be overridden from another package. 
2052
	 *    Attempting to override a package visible method from another package 
2053
	 *    introduces a new method that is unrelated to the original one. When 
2054
	 *    enabling this option, the compiler will signal such situations as an 
2055
	 *    error or a warning.
2056
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod"
2057
	 *     - possible values:   { "error", "warning", "ignore" }
2058
	 *     - default:           "warning"
2059
	 *
2060
	 * COMPILER / Reporting Method With Constructor Name
2061
	 *    Naming a method with a constructor name is generally considered poor
2062
	 *    style programming. When enabling this option, the compiler will signal such
2063
	 *    scenarii either as an error or a warning.
2064
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.methodWithConstructorName"
2065
	 *     - possible values:   { "error", "warning", "ignore" }
2066
	 *     - default:           "warning"
2067
	 *
2068
	 * COMPILER / Reporting Deprecation
2069
	 *    When enabled, the compiler will signal use of deprecated API either as an
2070
	 *    error or a warning.
2071
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.deprecation"
2072
	 *     - possible values:   { "error", "warning", "ignore" }
2073
	 *     - default:           "warning"
2074
	 *
2075
	 * COMPILER / Reporting Deprecation Inside Deprecated Code
2076
	 *    When enabled, the compiler will signal use of deprecated API inside deprecated code.
2077
	 *    The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.deprecation".
2078
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode"
2079
	 *     - possible values:   { "enabled", "disabled" }
2080
	 *     - default:           "disabled"
2081
	 *
2082
	 * COMPILER / Reporting Deprecation In Non Deprecated Code
2083
	 *    When enabled, the compiler will signal use of deprecated API in non 
2084
	 *    deprecated code.
2085
	 *    The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.deprecation".
2086
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.deprecationInNonDeprecatedCode"
2087
	 *     - possible values:   { "enabled", "disabled" }
2088
	 *     - default:           "enabled"
2089
	 *
2090
	 * COMPILER / Reporting Deprecation When Overriding Deprecated Method
2091
	 *    When enabled, the compiler will signal the declaration of a method overriding a deprecated one.
2092
	 *    The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.deprecation".
2093
	 *     - option id:        "org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod"
2094
	 *     - possible values:   { "enabled", "disabled" }
2095
	 *     - default:           "disabled"
2096
	 *
2097
	 * COMPILER / Reporting Hidden Catch Block
2098
	 *    Locally to a try statement, some catch blocks may hide others . For example,
2099
	 *      try {  throw new java.io.CharConversionException();
2100
	 *      } catch (java.io.CharConversionException e) {
2101
	 *      } catch (java.io.IOException e) {}.
2102
	 *    When enabling this option, the compiler will issue an error or a warning for hidden
2103
	 *    catch blocks corresponding to checked exceptions
2104
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock"
2105
	 *     - possible values:   { "error", "warning", "ignore" }
2106
	 *     - default:           "warning"
2107
	 *
2108
	 * COMPILER / Reporting Unused Local
2109
	 *    When enabled, the compiler will issue an error or a warning for unused local
2110
	 *    variables (that is, variables never read from)
2111
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedLocal"
2112
	 *     - possible values:   { "error", "warning", "ignore" }
2113
	 *     - default:           "ignore"
2114
	 *
2115
	 * COMPILER / Reporting Unused Parameter
2116
	 *    When enabled, the compiler will issue an error or a warning for unused method
2117
	 *    parameters (that is, parameters never read from)
2118
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedParameter"
2119
	 *     - possible values:   { "error", "warning", "ignore" }
2120
	 *     - default:           "ignore"
2121
	 *
2122
	 * COMPILER / Reporting Unused Parameter if Implementing Abstract Method
2123
	 *    When enabled, the compiler will signal unused parameters in abstract method implementations.
2124
	 *    The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.unusedParameter".
2125
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract"
2126
	 *     - possible values:   { "enabled", "disabled" }
2127
	 *     - default:           "disabled"
2128
	 *
2129
	 * COMPILER / Reporting Unused Parameter if Overriding Concrete Method
2130
	 *    When enabled, the compiler will signal unused parameters in methods overriding concrete ones.
2131
	 *    The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.unusedParameter".
2132
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete"
2133
	 *     - possible values:   { "enabled", "disabled" }
2134
	 *     - default:           "disabled"
2135
	 *
2136
	 * COMPILER / Consider Reference in Doc Comment for Unused Parameter Check
2137
	 *    When enabled, the compiler will consider doc comment references to parameters (i.e. @param clauses) for the unused
2138
	 *    parameter check. Thus, documented parameters will be considered as mandated as per doc contract.
2139
	 *    The severity of the unused parameter problem is controlled with option "org.eclipse.jdt.core.compiler.problem.unusedParameter".
2140
	 *    Note: this option has no effect until the doc comment support is enabled according to the 
2141
	 *    option "org.eclipse.jdt.core.compiler.doc.comment.support".
2142
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference"
2143
	 *     - possible values:   { "enabled", "disabled" }
2144
	 *     - default:           "enabled"
2145
	 *
2146
	 * COMPILER / Reporting Unused Import
2147
	 *    When enabled, the compiler will issue an error or a warning for unused import
2148
	 *    reference
2149
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedImport"
2150
	 *     - possible values:   { "error", "warning", "ignore" }
2151
	 *     - default:           "warning"
2152
	 *
2153
	 * COMPILER / Reporting Unused Private Members
2154
	 *    When enabled, the compiler will issue an error or a warning whenever a private
2155
	 *    method or field is declared but never used within the same unit.
2156
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedPrivateMember"
2157
	 *     - possible values:   { "error", "warning", "ignore" }
2158
	 *     - default:           "ignore"
2159
	 *
2160
	 * COMPILER / Reporting Assignment with no Effect
2161
	 *    When enabled, the compiler will issue an error or a warning whenever an assignment
2162
	 *    has no effect (e.g 'x = x').
2163
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.noEffectAssignment"
2164
	 *     - possible values:   { "error", "warning", "ignore" }
2165
	 *     - default:           "warning"
2166
	 *
2167
	 * COMPILER / Reporting Empty Statements and Unnecessary Semicolons
2168
	 *    When enabled, the compiler will issue an error or a warning if an empty statement or a
2169
	 *    unnecessary semicolon is encountered.
2170
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.emptyStatement"
2171
	 *     - possible values:   { "error", "warning", "ignore" }
2172
	 *     - default:           "ignore"
2173
	 *
2174
	 * COMPILER / Reporting Unnecessary Type Check
2175
	 *    When enabled, the compiler will issue an error or a warning when a cast or an instanceof operation
2176
	 *    is unnecessary.
2177
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck"
2178
	 *     - possible values:   { "error", "warning", "ignore" }
2179
	 *     - default:           "ignore"
2180
	 *
2181
	 * COMPILER / Reporting Unnecessary Else
2182
	 *    When enabled, the compiler will issue an error or a warning when a statement is unnecessarily
2183
	 *    nested within an else clause (in situation where then clause is not completing normally).
2184
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unnecessaryElse"
2185
	 *     - possible values:   { "error", "warning", "ignore" }
2186
	 *     - default:           "ignore"
2187
	 *
2188
	 * COMPILER / Reporting Synthetic Access Emulation
2189
	 *    When enabled, the compiler will issue an error or a warning whenever it emulates
2190
	 *    access to a non-accessible member of an enclosing type. Such access can have
2191
	 *    performance implications.
2192
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation"
2193
	 *     - possible values:   { "error", "warning", "ignore" }
2194
	 *     - default:           "ignore"
2195
	 *
2196
	 * COMPILER / Reporting Non-Externalized String Literal
2197
	 *    When enabled, the compiler will issue an error or a warning for non externalized
2198
	 *    String literal (that is, not tagged with //$NON-NLS-&lt;n&gt;$).
2199
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral"
2200
	 *     - possible values:   { "error", "warning", "ignore" }
2201
	 *     - default:           "ignore"
2202
	 *
2203
	 * COMPILER / Reporting Usage of 'assert' Identifier
2204
	 *    When enabled, the compiler will issue an error or a warning whenever 'assert' is
2205
	 *    used as an identifier (reserved keyword in 1.4)
2206
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.assertIdentifier"
2207
	 *     - possible values:   { "error", "warning", "ignore" }
2208
	 *     - default:           "warning"
2209
	 *
2210
	 * COMPILER / Reporting Usage of 'enum' Identifier
2211
	 *    When enabled, the compiler will issue an error or a warning whenever 'enum' is
2212
	 *    used as an identifier (reserved keyword in 1.5)
2213
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.enumIdentifier"
2214
	 *     - possible values:   { "error", "warning", "ignore" }
2215
	 *     - default:           "warning"
2216
	 *
2217
	 * COMPILER / Reporting Non-Static Reference to a Static Member
2218
	 *    When enabled, the compiler will issue an error or a warning whenever a static field
2219
	 *    or method is accessed with an expression receiver. A reference to a static member should
2220
	 *    be qualified with a type name.
2221
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.staticAccessReceiver"
2222
	 *     - possible values:   { "error", "warning", "ignore" }
2223
	 *     - default:           "warning"
2224
	 *
2225
	 * COMPILER / Reporting Indirect Reference to a Static Member
2226
	 *    When enabled, the compiler will issue an error or a warning whenever a static field
2227
	 *    or method is accessed in an indirect way. A reference to a static member should
2228
	 *    preferably be qualified with its declaring type name.
2229
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.indirectStaticAccess"
2230
	 *     - possible values:   { "error", "warning", "ignore" }
2231
	 *     - default:           "ignore"
2232
	 *
2233
	 * COMPILER / Reporting Interface Method not Compatible with non-Inherited Methods
2234
	 *    When enabled, the compiler will issue an error or a warning whenever an interface
2235
	 *    defines a method incompatible with a non-inherited Object method. Until this conflict
2236
	 *    is resolved, such an interface cannot be implemented, For example,
2237
	 *      interface I {
2238
	 *         int clone();
2239
	 *      }
2240
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod"
2241
	 *     - possible values:   { "error", "warning", "ignore" }
2242
	 *     - default:           "warning"
2243
	 *
2244
	 * COMPILER / Reporting Usage of char[] Expressions in String Concatenations
2245
	 *    When enabled, the compiler will issue an error or a warning whenever a char[] expression
2246
	 *    is used in String concatenations (for example, "hello" + new char[]{'w','o','r','l','d'}).
2247
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion"
2248
	 *     - possible values:   { "error", "warning", "ignore" }
2249
	 *     - default:           "warning"
2250
	 *
2251
	 * COMPILER / Reporting Local Variable Declaration Hiding another Variable
2252
	 *    When enabled, the compiler will issue an error or a warning whenever a local variable
2253
	 *    declaration is hiding some field or local variable (either locally, inherited or defined in enclosing type).
2254
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.localVariableHiding"
2255
	 *     - possible values:   { "error", "warning", "ignore" }
2256
	 *     - default:           "ignore"
2257
	 *
2258
	 * COMPILER / Reporting Field Declaration Hiding another Variable
2259
	 *    When enabled, the compiler will issue an error or a warning whenever a field
2260
	 *    declaration is hiding some field or local variable (either locally, inherited or defined in enclosing type).
2261
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.fieldHiding"
2262
	 *     - possible values:   { "error", "warning", "ignore" }
2263
	 *     - default:           "ignore"
2264
	 *
2265
	 * COMPILER / Reporting Special Parameter Hiding another Field
2266
	 *    When enabled, the compiler will signal cases where a constructor or setter method parameter declaration
2267
	 *    is hiding some field (either locally, inherited or defined in enclosing type).
2268
	 *    The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.localVariableHiding".
2269
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.specialParameterHidingField"
2270
	 *     - possible values:   { "enabled", "disabled" }
2271
	 *     - default:           "disabled"
2272
	 *
2273
	 * COMPILER / Reporting Type Declaration Hiding another Type
2274
	 *    When enabled, the compiler will issue an error or a warning in situations where a type parameter
2275
	 *    declaration is hiding some type, when a nested type is hiding some type parameter, or when
2276
	 *    a nested type is hiding another nested type defined in same unit.
2277
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.typeParameterHiding"
2278
	 *     - possible values:   { "error", "warning", "ignore" }
2279
	 *     - default:           "warning"
2280
	 *
2281
	 * COMPILER / Reporting Possible Accidental Boolean Assignment
2282
	 *    When enabled, the compiler will issue an error or a warning if a boolean assignment is acting as the condition
2283
	 *    of a control statement  (where it probably was meant to be a boolean comparison).
2284
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment"
2285
	 *     - possible values:   { "error", "warning", "ignore" }
2286
	 *     - default:           "ignore"
2287
	 *
2288
	 * COMPILER / Reporting Undocumented Empty Block
2289
	 *    When enabled, the compiler will issue an error or a warning when an empty block is detected and it is not
2290
	 *    documented with any comment.
2291
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock"
2292
	 *     - possible values:   { "error", "warning", "ignore" }
2293
	 *     - default:           "ignore"
2294
	 *
2295
	 * COMPILER / Reporting Finally Blocks Not Completing Normally
2296
	 *    When enabled, the compiler will issue an error or a warning when a finally block does not complete normally.
2297
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally"
2298
	 *     - possible values:   { "error", "warning", "ignore" }
2299
	 *     - default:           "warning"
2300
	 *
2301
	 * COMPILER / Reporting Unused Declared Thrown Exception
2302
	 *    When enabled, the compiler will issue an error or a warning when a 
2303
	 *    method or a constructor is declaring a thrown exception, but never 
2304
	 *    actually raises it in its body. Depending on
2305
	 *    "org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeUncheckedExceptions",
2306
	 *    only checked exceptions will be considered (default), or all 
2307
	 *    exceptions, including unchecked ones, will be considered. 
2308
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException"
2309
	 *     - possible values:   { "error", "warning", "ignore" }
2310
	 *     - default:           "ignore"
2311
	 *
2312
	 * COMPILER / Reporting Unused Declared Thrown Exception in Overriding Method
2313
	 *    When disabled, the compiler will report unused declared thrown
2314
	 *    exceptions neither on overriding methods nor on implementing methods.
2315
	 *    <br>
2316
	 *    The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException".
2317
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding"
2318
	 *     - possible values:   { "enabled", "disabled" }
2319
	 *     - default:           "disabled"
2320
	 *
2321
	 * COMPILER / Consider Reference in Doc Comment for Unused Declared Thrown Exception Check
2322
	 *    When enabled, the compiler will consider doc comment references to exceptions (i.e. @throws clauses) for the unused
2323
	 *    declared thrown exception check. Thus, documented exceptions will be considered as mandated as per doc contract.
2324
	 *    The severity of the unused declared thrown exception problem is controlled with option "org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException".
2325
	 *    Note: this option has no effect until the doc comment support is enabled according to the 
2326
	 *    option "org.eclipse.jdt.core.compiler.doc.comment.support".
2327
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference"
2328
	 *     - possible values:   { "enabled", "disabled" }
2329
	 *     - default:           "enabled"
2330
	 *
2331
	 * COMPILER / Reporting Unused Declared Thrown Unchecked Exceptions
2332
	 *    When enabled, the compiler will report unused declared thrown 
2333
	 *    exceptions for all exceptions, including unchecked ones. When 
2334
	 *    disabled, only checked exceptions will be considered.
2335
	 *    <br>
2336
	 *    The severity of the problem is controlled with option 
2337
	 *    "org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException".
2338
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeUncheckedExceptions"
2339
	 *     - possible values:   { "enabled", "disabled" }
2340
	 *     - default:           "disabled"
2341
	 *
2342
	 * COMPILER / Reporting Unqualified Access to Field
2343
	 *    When enabled, the compiler will issue an error or a warning when a field is access without any qualification.
2344
	 *    In order to improve code readability, it should be qualified, e.g. 'x' should rather be written 'this.x'.
2345
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess"
2346
	 *     - possible values:   { "error", "warning", "ignore" }
2347
	 *     - default:           "ignore"
2348
	 *
2349
	 * COMPILER / Reporting Unchecked Type Operation
2350
	 *    When enabled, the compiler will issue an error or a warning whenever an operation involves generic types, and potentially
2351
	 *    invalidates type safety since involving raw types (e.g. invoking #foo(X&lt;String&gt;) with arguments  (X)).
2352
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation"
2353
	 *     - possible values:   { "error", "warning", "ignore" }
2354
	 *     - default:           "warning"
2355
	 *
2356
	 * COMPILER / Reporting Raw Type Reference
2357
	 *    When enabled, the compiler will issue an error or a warning when detecting references to raw types. Raw types are
2358
	 *    discouraged, and are intended to help interfacing with legacy code. In the future, the language specification may
2359
	 *    reject raw references to generic types.
2360
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.rawTypeReference"
2361
	 *     - possible values:   { "error", "warning", "ignore" }
2362
	 *     - default:           "warning"
2363
	 *
2364
	 * COMPILER / Reporting final Bound for Type Parameter
2365
	 *    When enabled, the compiler will issue an error or a warning whenever a generic type parameter is associated with a
2366
	 *    bound corresponding to a final type; since final types cannot be further extended, the parameter is pretty useless.
2367
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.finalParameterBound"
2368
	 *     - possible values:   { "error", "warning", "ignore" }
2369
	 *     - default:           "warning"
2370
	 *
2371
	 * COMPILER / Reporting Missing Declaration of serialVersionUID Field on Serializable Class
2372
	 *    When enabled, the compiler will issue an error or a warning whenever a serializable class is missing a local declaration
2373
	 *    of a serialVersionUID field. This field must be declared as static final and be of type long.
2374
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.missingSerialVersion"
2375
	 *     - possible values:   { "error", "warning", "ignore" }
2376
	 *     - default:           "warning"
2377
	 *
2378
	 * COMPILER / Reporting Varargs Argument Needing a Cast in Method/Constructor Invocation
2379
	 *    When enabled, the compiler will issue an error or a warning whenever a varargs arguments should be cast
2380
	 *    when passed to a method/constructor invocation. (e.g. Class.getMethod(String name, Class ... args )
2381
	 *    invoked with arguments ("foo", null)).
2382
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast"
2383
	 *     - possible values:   { "error", "warning", "ignore" }
2384
	 *     - default:           "warning"
2385
	 *
2386
	 * COMPILER / Reporting Null Dereference
2387
	 *    When enabled, the compiler will issue an error or a warning whenever a
2388
	 *    variable that is statically known to hold a null value is used to
2389
	 *    access a field or method.
2390
	 *
2391
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.nullReference"
2392
	 *     - possible values:   { "error", "warning", "ignore" }
2393
	 *     - default:           "ignore"
2394
	 *
2395
	 * COMPILER / Reporting Potential Null Dereference
2396
	 *    When enabled, the compiler will issue an error or a warning whenever a
2397
	 *    variable that has formerly been tested against null but is not (no more)
2398
	 *    statically known to hold a non-null value is used to access a field or
2399
	 *    method.
2400
	 *
2401
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.potentialNullReference"
2402
	 *     - possible values:   { "error", "warning", "ignore" }
2403
	 *     - default:           "warning"
2404
	 *
2405
	 * COMPILER / Reporting Redundant Null Check
2406
	 *    When enabled, the compiler will issue an error or a warning whenever a
2407
	 *    variable that is statically known to hold a null or a non-null value
2408
	 *    is tested against null.
2409
	 *
2410
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.redundantNullCheck"
2411
	 *     - possible values:   { "error", "warning", "ignore" }
2412
	 *     - default:           "ignore"
2413
	 *
2414
	 * COMPILER / Reporting Use of Annotation Type as Super Interface
2415
	 *    When enabled, the compiler will issue an error or a warning whenever an annotation type is used
2416
	 *    as a super-interface. Though legal, this is discouraged.
2417
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.annotationSuperInterface"
2418
	 *     - possible values:   { "error", "warning", "ignore" }
2419
	 *     - default:           "warning"
2420
	 *
2421
	 * COMPILER / Reporting Missing @Override Annotation
2422
	 *    When enabled, the compiler will issue an error or a warning whenever encountering a method
2423
	 *    declaration which overrides a superclass method but has no @Override annotation.
2424
	 *     - option id:        "org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation"
2425
	 *     - possible values:   { "error", "warning", "ignore" }
2426
	 *     - default:           "ignore"
2427
	 *
2428
	 * COMPILER / Reporting Missing @Deprecated Annotation
2429
	 *    When enabled, the compiler will issue an error or a warning whenever encountering a declaration
2430
	 *    carrying a @deprecated doc tag but having no corresponding @Deprecated annotation.
2431
	 *     - option id:        "org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation"
2432
	 *     - possible values:   { "error", "warning", "ignore" }
2433
	 *     - default:           "ignore"
2434
	 *
2435
	 * COMPILER / Reporting Incomplete Enum Switch
2436
	 *    When enabled, the compiler will issue an error or a warning whenever
2437
	 *    an enum constant has no corresponding case label in an enum switch
2438
	 *    statement.
2439
	 *     - option id:        "org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch"
2440
	 *     - possible values:   { "error", "warning", "ignore" }
2441
	 *     - default:           "ignore"
2442
	 *
2443
	 * COMPILER / Reporting Boxing/Unboxing Conversion
2444
	 *    When enabled, the compiler will issue an error or a warning whenever a boxing or an unboxing
2445
	 *    conversion is performed.
2446
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.autoboxing"
2447
	 *     - possible values:   { "error", "warning", "ignore" }
2448
	 *     - default:           "ignore"
2449
	 *
2450
	 * COMPILER / Reporting Invalid Javadoc Comment
2451
	 *    This is the generic control for the severity of Javadoc problems.
2452
	 *    When enabled, the compiler will issue an error or a warning for a problem in Javadoc.
2453
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.invalidJavadoc"
2454
	 *     - possible values:   { "error", "warning", "ignore" }
2455
	 *     - default:           "ignore"
2456
	 *
2457
	 * COMPILER / Visibility Level For Invalid Javadoc Tags
2458
	 *    Set the minimum visibility level for Javadoc tag problems. Below this level problems will be ignored.
2459
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility"
2460
	 *     - possible values:   { "public", "protected", "default", "private" }
2461
	 *     - default:           "public"
2462
	 *
2463
	 * COMPILER / Reporting Invalid Javadoc Tags
2464
	 *    When enabled, the compiler will signal unbound or unexpected reference tags in Javadoc.
2465
	 *    A 'throws' tag referencing an undeclared exception would be considered as unexpected.
2466
	 *    <br>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
2467
	 *    also see the setting "org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility".
2468
	 *    <br>
2469
	 *    The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.invalidJavadoc".
2470
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.invalidJavadocTags"
2471
	 *     - possible values:   { "disabled", "enabled" }
2472
	 *     - default:           "disabled"
2473
	 *
2474
	 * COMPILER / Reporting missing tag description
2475
	 *    When enabled, the compiler will report a warning or an error for any Javadoc missing a required description.
2476
	 *    The severity of the problem is controlled with option "org.eclipse.jdt.core.compiler.problem.invalidJavadoc".
2477
	 *    This option is NOT dependent from the Report errors in tags option.
2478
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription"
2479
	 *     - possible values:   { "return_tag", "all_tags", "no_tag" }
2480
	 *     - default:           "return_tag"
2481
	 *
2482
	 * COMPILER / Reporting Invalid Javadoc Tags with Deprecated References
2483
	 *    Specify whether the compiler will report deprecated references used in Javadoc tags.
2484
	 *    <br>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
2485
	 *    also see the setting "org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility".
2486
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef"
2487
	 *     - possible values:   { "enabled", "disabled" }
2488
	 *     - default:           "disabled"
2489
	 *
2490
	 * COMPILER / Reporting Invalid Javadoc Tags with Not Visible References
2491
	 *    Specify whether the compiler will report non-visible references used in Javadoc tags.
2492
	 *    <br>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
2493
	 *    also see the setting "org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility".
2494
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef"
2495
	 *     - possible values:   { "enabled", "disabled" }
2496
	 *     - default:           "disabled"
2497
	 *
2498
	 * COMPILER / Reporting Missing Javadoc Tags
2499
	 *    This is the generic control for the severity of Javadoc missing tag problems.
2500
	 *    When enabled, the compiler will issue an error or a warning when tags are missing in Javadoc comments.
2501
	 *    <br>Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
2502
	 *    also see the setting "org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility".
2503
	 *    <br>
2504
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.missingJavadocTags"
2505
	 *     - possible values:   { "error", "warning", "ignore" }
2506
	 *     - default:           "ignore"
2507
	 *
2508
	 * COMPILER / Visibility Level For Missing Javadoc Tags
2509
	 *    Set the minimum visibility level for Javadoc missing tag problems. Below this level problems will be ignored.
2510
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility"
2511
	 *     - possible values:   { "public", "protected", "default", "private" }
2512
	 *     - default:           "public"
2513
	 *
2514
	 * COMPILER / Reporting Missing Javadoc Tags on Overriding Methods
2515
	 *    Specify whether the compiler will verify overriding methods in order to report Javadoc missing tag problems.
2516
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding"
2517
	 *     - possible values:   { "enabled", "disabled" }
2518
	 *     - default:           "disabled"
2519
	 *
2520
	 * COMPILER / Reporting Missing Javadoc Comments
2521
	 *    This is the generic control for the severity of missing Javadoc comment problems.
2522
	 *    When enabled, the compiler will issue an error or a warning when Javadoc comments are missing.
2523
	 *    <br>Note that this diagnosis can be enabled based on the visibility of the construct associated with the expected Javadoc;
2524
	 *    also see the setting "org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility".
2525
	 *    <br>
2526
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.missingJavadocComments"
2527
	 *     - possible values:   { "error", "warning", "ignore" }
2528
	 *     - default:           "ignore"
2529
	 *
2530
	 * COMPILER / Visibility Level For Missing Javadoc Comments
2531
	 *    Set the minimum visibility level for missing Javadoc problems. Below this level problems will be ignored.
2532
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility"
2533
	 *     - possible values:   { "public", "protected", "default", "private" }
2534
	 *     - default:           "public"
2535
	 *
2536
	 * COMPILER / Reporting Missing Javadoc Comments on Overriding Methods
2537
	 *    Specify whether the compiler will verify overriding methods in order to report missing Javadoc comment problems.
2538
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding"
2539
	 *     - possible values:   { "enabled", "disabled" }
2540
	 *     - default:           "disabled"
2541
	 *
2542
	 * COMPILER / Maximum Number of Problems Reported per Compilation Unit
2543
	 *    Specify the maximum number of problems reported on each compilation unit.
2544
	 *     - option id:         "org.eclipse.jdt.core.compiler.maxProblemPerUnit"
2545
	 *     - possible values:	"&lt;n&gt;" where &lt;n&gt; is zero or a positive integer (if zero then all problems are reported).
2546
	 *     - default:           "100"
2547
	 *
2548
	 * COMPILER / Treating Optional Error as Fatal
2549
	 *    When enabled, optional errors (i.e. optional problems which severity is set to "error") will be treated as standard
2550
	 *    compiler errors, yielding problem methods/types preventing from running offending code until the issue got resolved.
2551
	 *    When disabled, optional errors are only considered as warnings, still carrying an error indication to make them more
2552
	 *    severe. Note that by default, errors are fatal, whether they are optional or not.
2553
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.fatalOptionalError"
2554
	 *     - possible values:   { "enabled", "disabled" }
2555
	 *     - default:           "enabled"
2556
	 *
2557
	 * COMPILER / Defining the Automatic Task Tags
2558
	 *    When the tag list is not empty, the compiler will issue a task marker whenever it encounters
2559
	 *    one of the corresponding tags inside any comment in Java source code.
2560
	 *    Generated task messages will start with the tag, and range until the next line separator,
2561
	 *    comment ending, or tag.
2562
	 *    When a given line of code bears multiple tags, each tag will be reported separately.
2563
	 *    Moreover, a tag immediately followed by another tag will be reported using the contents of the
2564
	 *    next non-empty tag of the line, if any.
2565
	 *    Note that tasks messages are trimmed. If a tag is starting with a letter or digit, then it cannot be leaded by
2566
	 *    another letter or digit to be recognized ("fooToDo" will not be recognized as a task for tag "ToDo", but "foo#ToDo"
2567
	 *    will be detected for either tag "ToDo" or "#ToDo"). Respectively, a tag ending with a letter or digit cannot be followed
2568
	 *    by a letter or digit to be recognized ("ToDofoo" will not be recognized as a task for tag "ToDo", but "ToDo:foo" will
2569
	 *    be detected either for tag "ToDo" or "ToDo:").
2570
	 *     - option id:         "org.eclipse.jdt.core.compiler.taskTags"
2571
	 *     - possible values:   { "&lt;tag&gt;[,&lt;tag&gt;]*" } where &lt;tag&gt; is a String without any wild-card or leading/trailing spaces
2572
	 *     - default:           "TODO,FIXME,XXX"
2573
	 *
2574
	 * COMPILER / Defining the Automatic Task Priorities
2575
	 *    In parallel with the Automatic Task Tags, this list defines the priorities (high, normal or low)
2576
	 *    of the task markers issued by the compiler.
2577
	 *    If the default is specified, the priority of each task marker is "NORMAL".
2578
	 *     - option id:         "org.eclipse.jdt.core.compiler.taskPriorities"
2579
	 *     - possible values:   { "&lt;priority&gt;[,&lt;priority&gt;]*" } where &lt;priority&gt; is one of "HIGH", "NORMAL" or "LOW"
2580
	 *     - default:           "NORMAL,HIGH,NORMAL"
2581
	 *
2582
	 * COMPILER / Determining whether task tags are case-sensitive
2583
	 *    When enabled, task tags are considered in a case-sensitive way.
2584
	 *     - option id:         "org.eclipse.jdt.core.compiler.taskCaseSensitive"
2585
	 *     - possible values:   { "enabled", "disabled" }
2586
	 *     - default:           "enabled"
2587
	 *
2588
	 * COMPILER / Reporting Forbidden Reference to Type with Restricted Access
2589
	 *    When enabled, the compiler will issue an error or a warning when referring to a type that is non accessible, as defined according
2590
	 *    to the access rule specifications.
2591
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.forbiddenReference"
2592
	 *     - possible values:   { "error", "warning", "ignore" }
2593
	 *     - default:           "warning"
2594
	 *
2595
	 * COMPILER / Reporting Discouraged Reference to Type with Restricted Access
2596
	 *    When enabled, the compiler will issue an error or a warning when referring to a type with discouraged access, as defined according
2597
	 *    to the access rule specifications.
2598
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.discouragedReference"
2599
	 *     - possible values:   { "error", "warning", "ignore" }
2600
	 *     - default:           "warning"
2601
	 *
2602
	 * COMPILER / Determining Effect of @SuppressWarnings
2603
	 *    When enabled, the @SuppressWarnings annotation can be used to suppress some compiler warnings.
2604
	 *    When disabled, all @SupressWarnings annotations are ignored; i.e., warnings are reported.
2605
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.suppressWarnings"
2606
	 *     - possible values:   { "enabled", "disabled" }
2607
	 *     - default:           "enabled"
2608
	 *
2609
	 * COMPILER / Reporting Unhandled Warning Token for @SuppressWarnings
2610
	 *    When enabled, the compiler will issue an error or a warning when encountering a token
2611
	 *    it cannot handle inside a @SuppressWarnings annotation.
2612
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unhandledWarningToken"
2613
	 *     - possible values:   { "error", "warning", "ignore" }
2614
	 *     - default:           "warning"
2615
	 *
2616
	 * COMPILER / Reporting Unnecessary @SuppressWarnings
2617
	 *    When enabled, the compiler will issue an error or a warning when encountering @SuppressWarnings annotation 
2618
	 *    for which no corresponding warning got detected in the code. This diagnostic is provided to help developers to get
2619
	 *    rid of transient @SuppressWarnings no longer needed. Note that <code>@SuppressWarnings("all")</code> is still 
2620
	 *    silencing the warning for unnecessary <code>@SuppressWarnings</code>, as it is the master switch to silence ALL warnings.
2621
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedWarningToken"
2622
	 *     - possible values:   { "error", "warning", "ignore" }
2623
	 *     - default:           "warning"
2624
	 *
2625
	 * COMPILER / Reporting Unreferenced Label
2626
	 *    When enabled, the compiler will issue an error or a warning when encountering a labeled statement which label
2627
	 *    is never explicitly referenced. A label is considered to be referenced if its name explicitly appears behind a break
2628
	 *    or continue statement; for instance the following label would be considered unreferenced;   LABEL: { break; }
2629
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedLabel"
2630
	 *     - possible values:   { "error", "warning", "ignore" }
2631
	 *     - default:           "warning"
2632
	 *
2633
	 * COMPILER / Reporting Parameter Assignment
2634
	 *    When enabled, the compiler will issue an error or a warning if a parameter is
2635
	 *    assigned to.
2636
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.parameterAssignment"
2637
	 *     - possible values:   { "error", "warning", "ignore" }
2638
	 *     - default:           "ignore"
2639
	 *
2640
	 * COMPILER / Reporting Switch Fall-Through Case
2641
	 *    When enabled, the compiler will issue an error or a warning if a case may be
2642
	 *    entered by falling through previous case. Empty cases are allowed.
2643
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.fallthroughCase"
2644
	 *     - possible values:   { "error", "warning", "ignore" }
2645
	 *     - default:           "ignore"
2646
	 *
2647
	 * COMPILER / Reporting Overriding method that doesn't call the super method invocation
2648
	 *    When enabled, the compiler will issue an error or a warning if a method is overriding a method without calling
2649
	 *    the super invocation.
2650
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.overridingMethodWithoutSuperInvocation"
2651
	 *     - possible values:   { "error", "warning", "ignore" }
2652
	 *     - default:           "ignore"
2653
	 *
2654
	 * COMPILER / Reporting Presence of Type Arguments for a Non-Generic Method Invocation
2655
	 *    When enabled, the compiler will issue an error or a warning whenever type arguments are encountered for a
2656
	 *    non-generic method invocation. Note that prior to compliance level is "1.7", this situation would automatically result
2657
	 *    in an error. From Java7 on, unused type arguments are being tolerated, and optionally warned against.
2658
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.unusedTypeArgumentsForMethodInvocation"
2659
	 *     - possible values:   { "error", "warning", "ignore" }
2660
	 *     - default:           "warning"
2661
	 *     
2662
	 * COMPILER / Reporting Redundant Superinterface
2663
	 *    When enabled, the compiler will issue an error or a warning if a type
2664
	 *    explicitly implements an interface that is already implemented by any 
2665
	 *    of its supertypes.
2666
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.redundantSuperinterface"
2667
	 *     - possible values:   { "error", "warning", "ignore" }
2668
	 *     - default:           "ignore"
2669
	 *
2670
	 * BUILDER / Specifying Filters for Resource Copying Control
2671
	 *    Allow to specify some filters to control the resource copy process.
2672
	 *     - option id:         "org.eclipse.jdt.core.builder.resourceCopyExclusionFilter"
2673
	 *     - possible values:   { "&lt;name&gt;[,&lt;name&gt;]* } where &lt;name&gt; is a file name pattern (* and ? wild-cards allowed)
2674
	 *       or the name of a folder which ends with '/'
2675
	 *     - default:           ""
2676
	 *
2677
	 * BUILDER / Abort if Invalid Classpath
2678
	 *    Allow to toggle the builder to abort if the classpath is invalid
2679
	 *     - option id:         "org.eclipse.jdt.core.builder.invalidClasspath"
2680
	 *     - possible values:   { "abort", "ignore" }
2681
	 *     - default:           "abort"
2682
	 *
2683
	 * BUILDER / Cleaning Output Folder(s)
2684
	 *    Indicate whether the JavaBuilder is allowed to clean the output folders
2685
	 *    when performing full build operations.
2686
	 *     - option id:         "org.eclipse.jdt.core.builder.cleanOutputFolder"
2687
	 *     - possible values:   { "clean", "ignore" }
2688
	 *     - default:           "clean"
2689
	 *
2690
	 * BUILDER / Recreate Modified class files in Output Folder
2691
	 *    Indicate whether the JavaBuilder should check for any changes to .class files
2692
	 *    in the output folders while performing incremental build operations. If changes
2693
	 *    are detected to managed .class files, then a full build is performed, otherwise
2694
	 *    the changes are left as is. Tools further altering generated .class files, like optimizers,
2695
	 *    should ensure this option remains set in its default state of ignore.
2696
	 *     - option id:         "org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder"
2697
	 *     - possible values:   { "enabled", "ignore" }
2698
	 *     - default:           "ignore"
2699
	 *
2700
	 * BUILDER / Reporting Duplicate Resources
2701
	 *    Indicate the severity of the problem reported when more than one occurrence
2702
	 *    of a resource is to be copied into the output location.
2703
	 *     - option id:         "org.eclipse.jdt.core.builder.duplicateResourceTask"
2704
	 *     - possible values:   { "error", "warning" }
2705
	 *     - default:           "warning"
2706
	 *
2707
	 * JAVACORE / Computing Project Build Order
2708
	 *    Indicate whether JavaCore should enforce the project build order to be based on
2709
	 *    the classpath prerequisite chain. When requesting to compute, this takes over
2710
	 *    the platform default order (based on project references).
2711
	 *     - option id:         "org.eclipse.jdt.core.computeJavaBuildOrder"
2712
	 *     - possible values:   { "compute", "ignore" }
2713
	 *     - default:           "ignore"
2714
	 *
2715
	 * JAVACORE / Default Source Encoding Format
2716
	 *    Get the default encoding format of source files. This value is
2717
	 *    immutable and preset to the result of ResourcesPlugin.getEncoding().
2718
	 *    It is offered as a convenience shortcut only.
2719
	 *     - option id:         "org.eclipse.jdt.core.encoding"
2720
	 *     - value:           &lt;immutable, platform default value&gt;
2721
	 *
2722
	 * JAVACORE / Reporting Incomplete Classpath
2723
	 *    Indicate the severity of the problem reported when an entry on the classpath does not exist,
2724
	 *    is not legite or is not visible (for example, a referenced project is closed).
2725
	 *     - option id:         "org.eclipse.jdt.core.incompleteClasspath"
2726
	 *     - possible values:   { "error", "warning"}
2727
	 *     - default:           "error"
2728
	 *
2729
	 * JAVACORE / Reporting Classpath Cycle
2730
	 *    Indicate the severity of the problem reported when a project is involved in a cycle.
2731
	 *     - option id:         "org.eclipse.jdt.core.circularClasspath"
2732
	 *     - possible values:   { "error", "warning" }
2733
	 *     - default:           "error"
2734
	 *
2735
	 * JAVACORE / Reporting Incompatible JDK Level for Required Binaries
2736
	 *    Indicate the severity of the problem reported when a project prerequisites another project
2737
	 *    or library with an incompatible target JDK level (e.g. project targeting 1.1 vm, but compiled against 1.4 libraries).
2738
	 *     - option id:         "org.eclipse.jdt.core.incompatibleJDKLevel"
2739
	 *     - possible values:   { "error", "warning", "ignore" }
2740
	 *     - default:           "ignore"
2741
	 *
2742
	 * JAVACORE / Enabling Usage of Classpath Exclusion Patterns
2743
	 *    When disabled, no entry on a project classpath can be associated with
2744
	 *    an exclusion pattern.
2745
	 *     - option id:         "org.eclipse.jdt.core.classpath.exclusionPatterns"
2746
	 *     - possible values:   { "enabled", "disabled" }
2747
	 *     - default:           "enabled"
2748
	 *
2749
	 * JAVACORE / Enabling Usage of Classpath Multiple Output Locations
2750
	 *    When disabled, no entry on a project classpath can be associated with
2751
	 *    a specific output location, preventing thus usage of multiple output locations.
2752
	 *     - option id:         "org.eclipse.jdt.core.classpath.multipleOutputLocations"
2753
	 *     - possible values:   { "enabled", "disabled" }
2754
	 *     - default:           "enabled"
2755
	 *
2756
	 * JAVACORE / Set the timeout value for retrieving the method's parameter names from javadoc
2757
	 *    Timeout in milliseconds to retrieve the method's parameter names from javadoc.
2758
	 *    If the value is 0, the parameter names are not fetched and the raw names are returned.
2759
	 *     - option id:         "org.eclipse.jdt.core.timeoutForParameterNameFromAttachedJavadoc"
2760
	 *     - possible values:	"&lt;n&gt;", where n is an integer greater than or equal to 0
2761
	 *     - default:           "50"
2762
	 *
2763
	 * DEPRECATED SEE DefaultCodeFormatterOptions: FORMATTER / Inserting New Line Before Opening Brace
2764
	 *    When Insert, a new line is inserted before an opening brace, otherwise nothing
2765
	 *    is inserted
2766
	 *     - option id:         "org.eclipse.jdt.core.formatter.newline.openingBrace"
2767
	 *     - possible values:   { "insert", "do not insert" }
2768
	 *     - default:           "do not insert"
2769
	 *
2770
	 * DEPRECATED SEE DefaultCodeFormatterOptions: FORMATTER / Inserting New Line Inside Control Statement
2771
	 *    When Insert, a new line is inserted between } and following else, catch, finally
2772
	 *     - option id:         "org.eclipse.jdt.core.formatter.newline.controlStatement"
2773
	 *     - possible values:   { "insert", "do not insert" }
2774
	 *     - default:           "do not insert"
2775
	 *
2776
	 * DEPRECATED SEE DefaultCodeFormatterOptions: Clearing Blank Lines
2777
	 *    When Clear all, all blank lines are removed. When Preserve one, only one is kept
2778
	 *    and all others removed.
2779
	 *     - option id:         "org.eclipse.jdt.core.formatter.newline.clearAll"
2780
	 *     - possible values:   { "clear all", "preserve one" }
2781
	 *     - default:           "preserve one"
2782
	 *
2783
	 * DEPRECATED SEE DefaultCodeFormatterOptions: Inserting New Line Between Else/If
2784
	 *    When Insert, a blank line is inserted between an else and an if when they are
2785
	 *    contiguous. When choosing to not insert, else-if will be kept on the same
2786
	 *    line when possible.
2787
	 *     - option id:         "org.eclipse.jdt.core.formatter.newline.elseIf"
2788
	 *     - possible values:   { "insert", "do not insert" }
2789
	 *     - default:           "do not insert"
2790
	 *
2791
	 * DEPRECATED SEE DefaultCodeFormatterOptions: Inserting New Line In Empty Block
2792
	 *    When insert, a line break is inserted between contiguous { and }, if } is not followed
2793
	 *    by a keyword.
2794
	 *     - option id:         "org.eclipse.jdt.core.formatter.newline.emptyBlock"
2795
	 *     - possible values:   { "insert", "do not insert" }
2796
	 *     - default:           "insert"
2797
	 *
2798
	 * DEPRECATED SEE DefaultCodeFormatterOptions: Splitting Lines Exceeding Length
2799
	 *    Enable splitting of long lines (exceeding the configurable length). Length of 0 will
2800
	 *    disable line splitting
2801
	 *     - option id:         "org.eclipse.jdt.core.formatter.lineSplit"
2802
	 *     - possible values:	"&lt;n&gt;", where n is zero or a positive integer
2803
	 *     - default:           "80"
2804
	 *
2805
	 * DEPRECATED SEE DefaultCodeFormatterOptions: Compacting Assignment
2806
	 *    Assignments can be formatted asymmetrically, for example 'int x= 2;', when Normal, a space
2807
	 *    is inserted before the assignment operator
2808
	 *     - option id:         "org.eclipse.jdt.core.formatter.style.assignment"
2809
	 *     - possible values:   { "compact", "normal" }
2810
	 *     - default:           "normal"
2811
	 *
2812
	 * DEPRECATED SEE DefaultCodeFormatterOptions: Defining Indentation Character
2813
	 *    Either choose to indent with tab characters or spaces
2814
	 *     - option id:         "org.eclipse.jdt.core.formatter.tabulation.char"
2815
	 *     - possible values:   { "tab", "space" }
2816
	 *     - default:           "tab"
2817
	 *
2818
	 * DEPRECATED SEE DefaultCodeFormatterOptions: Defining Space Indentation Length
2819
	 *    When using spaces, set the amount of space characters to use for each
2820
	 *    indentation mark.
2821
	 *     - option id:         "org.eclipse.jdt.core.formatter.tabulation.size"
2822
	 *     - possible values:	"&lt;n&gt;", where n is a positive integer
2823
	 *     - default:           "4"
2824
	 *
2825
	 * DEPRECATED SEE DefaultCodeFormatterOptions: Inserting space in cast expression
2826
	 *    When Insert, a space is added between the type and the expression in a cast expression.
2827
	 *     - option id:         "org.eclipse.jdt.core.formatter.space.castexpression"
2828
	 *     - possible values:   { "insert", "do not insert" }
2829
	 *     - default:           "insert"
2830
	 *
2831
	 * CODEASSIST / Activate Visibility Sensitive Completion
2832
	 *    When active, completion doesn't show that you can not see
2833
	 *    (for example, you can not see private methods of a super class).
2834
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.visibilityCheck"
2835
	 *     - possible values:   { "enabled", "disabled" }
2836
	 *     - default:           "disabled"
2837
	 *
2838
	 * CODEASSIST / Activate Deprecation Sensitive Completion
2839
	 *    When enabled, completion doesn't propose deprecated members and types.
2840
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.deprecationCheck"
2841
	 *     - possible values:   { "enabled", "disabled" }
2842
	 *     - default:           "disabled"
2843
	 *
2844
	 * CODEASSIST / Automatic Qualification of Implicit Members
2845
	 *    When active, completion automatically qualifies completion on implicit
2846
	 *    field references and message expressions.
2847
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.forceImplicitQualification"
2848
	 *     - possible values:   { "enabled", "disabled" }
2849
	 *     - default:           "disabled"
2850
	 *
2851
	 * CODEASSIST / Define the Prefixes for Field Name
2852
	 *    When the prefixes is non empty, completion for field name will begin with
2853
	 *    one of the proposed prefixes.
2854
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.fieldPrefixes"
2855
	 *     - possible values:   { "&lt;prefix&gt;[,&lt;prefix&gt;]*" } where &lt;prefix&gt; is a String without any wild-card
2856
	 *     - default:           ""
2857
	 *
2858
	 * CODEASSIST / Define the Prefixes for Static Field Name
2859
	 *    When the prefixes is non empty, completion for static field name will begin with
2860
	 *    one of the proposed prefixes.
2861
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.staticFieldPrefixes"
2862
	 *     - possible values:   { "&lt;prefix&gt;[,&lt;prefix&gt;]*" } where &lt;prefix&gt; is a String without any wild-card
2863
	 *     - default:           ""
2864
	 *
2865
	 * CODEASSIST / Define the Prefixes for Local Variable Name
2866
	 *    When the prefixes is non empty, completion for local variable name will begin with
2867
	 *    one of the proposed prefixes.
2868
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.localPrefixes"
2869
	 *     - possible values:   { "&lt;prefix&gt;[,&lt;prefix&gt;]*" } where &lt;prefix&gt; is a String without any wild-card
2870
	 *     - default:           ""
2871
	 *
2872
	 * CODEASSIST / Define the Prefixes for Argument Name
2873
	 *    When the prefixes is non empty, completion for argument name will begin with
2874
	 *    one of the proposed prefixes.
2875
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.argumentPrefixes"
2876
	 *     - possible values:   { "&lt;prefix&gt;[,&lt;prefix&gt;]*" } where &lt;prefix&gt; is a String without any wild-card
2877
	 *     - default:           ""
2878
	 *
2879
	 * CODEASSIST / Define the Suffixes for Field Name
2880
	 *    When the suffixes is non empty, completion for field name will end with
2881
	 *    one of the proposed suffixes.
2882
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.fieldSuffixes"
2883
	 *     - possible values:   { "&lt;suffix&gt;[,&lt;suffix&gt;]*" } where &lt;suffix&gt; is a String without any wild-card
2884
	 *     - default:           ""
2885
	 *
2886
	 * CODEASSIST / Define the Suffixes for Static Field Name
2887
	 *    When the suffixes is non empty, completion for static field name will end with
2888
	 *    one of the proposed suffixes.
2889
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.staticFieldSuffixes"
2890
	 *     - possible values:   { "&lt;suffix&gt;[,&lt;suffix&gt;]*" } where &lt;suffix&gt; is a String without any wild-card
2891
	 *     - default:           ""
2892
	 *
2893
	 * CODEASSIST / Define the Suffixes for Local Variable Name
2894
	 *    When the suffixes is non empty, completion for local variable name will end with
2895
	 *    one of the proposed suffixes.
2896
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.localSuffixes"
2897
	 *     - possible values:   { "&lt;suffix&gt;[,&lt;suffix&gt;]*" } where &lt;suffix&gt; is a String without any wild-card
2898
	 *     - default:           ""
2899
	 *
2900
	 * CODEASSIST / Define the Suffixes for Argument Name
2901
	 *    When the suffixes is non empty, completion for argument name will end with
2902
	 *    one of the proposed suffixes.
2903
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.argumentSuffixes"
2904
	 *     - possible values:   { "&lt;suffix&gt;[,&lt;suffix&gt;]*" } where &lt;suffix&gt; is a String without any wild-card
2905
	 *     - default:           ""
2906
	 *
2907
	 * CODEASSIST / Activate Forbidden Reference Sensitive Completion
2908
	 *    When enabled, completion doesn't propose elements which match a
2909
  	 *    forbidden reference rule.
2910
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.forbiddenReferenceCheck"
2911
	 *     - possible values:   { "enabled", "disabled" }
2912
	 *     - default:           "enabled"
2913
	 *
2914
	 * CODEASSIST / Activate Discouraged Reference Sensitive Completion
2915
	 *    When enabled, completion doesn't propose elements which match a
2916
  	 *    discouraged reference rule.
2917
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.discouragedReferenceCheck"
2918
	 *     - possible values:   { "enabled", "disabled" }
2919
	 *     - default:           "disabled"
2920
	 *
2921
	 * CODEASSIST / Activate Camel Case Sensitive Completion
2922
	 *    When enabled, completion shows proposals whose name match the CamelCase
2923
	 *    pattern.
2924
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.camelCaseMatch"
2925
	 *     - possible values:   { "enabled", "disabled" }
2926
	 *     - default:           "enabled"
2927
	 *
2928
	 * CODEASSIST / Activate Suggestion of Static Import
2929
	 *    When enabled, completion proposals can contain static import
2930
	 *    pattern.
2931
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.suggestStaticImports"
2932
	 *     - possible values:   { "enabled", "disabled" }
2933
	 *     - default:           "enabled"
2934
	 * </pre>
2935
	 */
2853
	 */
2936
 	public static Hashtable getDefaultOptions(){
2854
 	public static Hashtable getDefaultOptions(){
2937
 		return JavaModelManager.getJavaModelManager().getDefaultOptions();
2855
 		return JavaModelManager.getJavaModelManager().getDefaultOptions();
Lines 3176-3183 Link Here
3176
	 * Helper method for returning one option value only. Equivalent to <code>(String)JavaCore.getOptions().get(optionName)</code>
3094
	 * Helper method for returning one option value only. Equivalent to <code>(String)JavaCore.getOptions().get(optionName)</code>
3177
	 * Note that it may answer <code>null</code> if this option does not exist.
3095
	 * Note that it may answer <code>null</code> if this option does not exist.
3178
	 * <p>
3096
	 * <p>
3179
	 * For a complete description of the configurable options, see <code>getDefaultOptions</code>.
3097
	 * Helper constants have been defined on JavaCore for each of the option IDs
3180
	 * </p>
3098
	 * (categorized in Code assist option ID, Compiler option ID and Core option ID) 
3099
	 * and some of their acceptable values (categorized in Option value). Some
3100
	 * options accept open value sets beyond the documented constant values.
3101
	 * <p>
3102
	 * Note: each release may add new options.
3181
	 *
3103
	 *
3182
	 * @param optionName the name of an option
3104
	 * @param optionName the name of an option
3183
	 * @return the String value of a given option
3105
	 * @return the String value of a given option
Lines 3192-3198 Link Here
3192
	/**
3114
	/**
3193
	 * Returns the table of the current options. Initially, all options have their default values,
3115
	 * Returns the table of the current options. Initially, all options have their default values,
3194
	 * and this method returns a table that includes all known options.
3116
	 * and this method returns a table that includes all known options.
3195
	 * <p>For a complete description of the configurable options, see <code>getDefaultOptions</code>.</p>
3117
	 * <p>
3118
	 * Helper constants have been defined on JavaCore for each of the option IDs
3119
	 * (categorized in Code assist option ID, Compiler option ID and Core option ID) 
3120
	 * and some of their acceptable values (categorized in Option value). Some
3121
	 * options accept open value sets beyond the documented constant values.
3122
	 * <p>
3123
	 * Note: each release may add new options.
3196
	 * <p>Returns a default set of options even if the platform is not running.</p>
3124
	 * <p>Returns a default set of options even if the platform is not running.</p>
3197
	 *
3125
	 *
3198
	 * @return table of current settings of all options
3126
	 * @return table of current settings of all options
Lines 4817-4824 Link Here
4817
	 * Sets the default's compiler options inside the given options map according
4745
	 * Sets the default's compiler options inside the given options map according
4818
	 * to the given compliance.
4746
	 * to the given compliance.
4819
	 *
4747
	 *
4820
	 * <p>The given compliance must be one of the compliance supported by the compiler.
4748
	 * <p>The given compliance must be one of those supported by the compiler, 
4821
	 * See {@link #getDefaultOptions()} for a list of compliance values.</p>
4749
	 * that is one of the acceptable values for option {@link #COMPILER_COMPLIANCE}.
4822
	 *
4750
	 *
4823
	 * <p>The list of modified options is:</p>
4751
	 * <p>The list of modified options is:</p>
4824
	 * <ul>
4752
	 * <ul>
Lines 4882-4890 Link Here
4882
	 * included in the given table are remembered; all previous option settings
4810
	 * included in the given table are remembered; all previous option settings
4883
	 * are forgotten, including ones not explicitly mentioned.
4811
	 * are forgotten, including ones not explicitly mentioned.
4884
	 * <p>
4812
	 * <p>
4885
	 * For a complete description of the configurable options, see
4813
	 * Helper constants have been defined on JavaCore for each of the option IDs
4886
	 * <code>getDefaultOptions</code>.
4814
	 * (categorized in Code assist option ID, Compiler option ID and Core option ID) 
4887
	 * </p>
4815
	 * and some of their acceptable values (categorized in Option value). Some
4816
	 * options accept open value sets beyond the documented constant values.
4817
	 * <p>
4818
	 * Note: each release may add new options.
4888
	 *
4819
	 *
4889
	 * @param newOptions
4820
	 * @param newOptions
4890
	 *            the new options (key type: <code>String</code>; value type:
4821
	 *            the new options (key type: <code>String</code>; value type:
Lines 4926-4929 Link Here
4926
		super.start(context);
4857
		super.start(context);
4927
		JavaModelManager.getJavaModelManager().startup();
4858
		JavaModelManager.getJavaModelManager().startup();
4928
	}
4859
	}
4929
}
4860
}

Return to bug 202490