1 /*******************************************************************************
2 * Copyright (c) 2000, 2004 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Common Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/cpl-v10.html
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
11 package net.sourceforge.phpdt.internal.compiler.impl;
13 import java.io.ByteArrayInputStream;
14 import java.io.InputStreamReader;
15 import java.io.UnsupportedEncodingException;
16 import java.util.HashMap;
19 import net.sourceforge.phpdt.core.compiler.CharOperation;
20 import net.sourceforge.phpdt.core.compiler.IProblem;
21 import net.sourceforge.phpdt.internal.compiler.Compiler;
22 import net.sourceforge.phpdt.internal.compiler.env.IConstants;
23 import net.sourceforge.phpdt.internal.compiler.lookup.ProblemReasons;
24 import net.sourceforge.phpdt.internal.compiler.problem.ProblemSeverities;
26 public class CompilerOptions implements ProblemReasons, ProblemSeverities, IConstants {
31 public static final String OPTION_PHPVarDeprecatedWarning = "net.sourceforge.phpeclipse.compiler.problem.phpVarDeprecatedWarning"; //$NON-NLS-1$
32 public static final String OPTION_PHPBadStyleKeywordWarning = "net.sourceforge.phpeclipse.compiler.problem.phpBadStyleKeywordWarning"; //$NON-NLS-1$
33 public static final String OPTION_PHPBadStyleUppercaseIdentifierWarning = "net.sourceforge.phpeclipse.compiler.problem.phpBadStyleUppercaseIdentifierWarning"; //$NON-NLS-1$
34 public static final String OPTION_PHPIncludeNotExistWarning = "net.sourceforge.phpeclipse.compiler.problem.phpIncludeNotExistWarning"; //$NON-NLS-1$
35 public static final String OPTION_UninitializedLocalVariableWarning = "net.sourceforge.phpeclipse.compiler.problem.uninitializedLocalVariableWarning"; //$NON-NLS-1$
36 public static final String OPTION_CodeCannotBeReachedWarning = "net.sourceforge.phpeclipse.compiler.problem.codeCannotBeReachedWarning"; //$NON-NLS-1$
38 public static final String OPTION_LocalVariableAttribute = "net.sourceforge.phpeclipse.compiler.debug.localVariable"; //$NON-NLS-1$
39 public static final String OPTION_LineNumberAttribute = "net.sourceforge.phpeclipse.compiler.debug.lineNumber"; //$NON-NLS-1$
40 public static final String OPTION_SourceFileAttribute = "net.sourceforge.phpeclipse.compiler.debug.sourceFile"; //$NON-NLS-1$
41 // public static final String OPTION_PreserveUnusedLocal = "net.sourceforge.phpeclipse.compiler.codegen.unusedLocal"; //$NON-NLS-1$
42 public static final String OPTION_DocCommentSupport= "net.sourceforge.phpeclipse.compiler.doc.comment.support"; //$NON-NLS-1$
43 public static final String OPTION_ReportMethodWithConstructorName = "net.sourceforge.phpeclipse.compiler.problem.methodWithConstructorName"; //$NON-NLS-1$
44 public static final String OPTION_ReportOverridingPackageDefaultMethod = "net.sourceforge.phpeclipse.compiler.problem.overridingPackageDefaultMethod"; //$NON-NLS-1$
45 public static final String OPTION_ReportDeprecation = "net.sourceforge.phpeclipse.compiler.problem.deprecation"; //$NON-NLS-1$
46 public static final String OPTION_ReportDeprecationInDeprecatedCode = "net.sourceforge.phpeclipse.compiler.problem.deprecationInDeprecatedCode"; //$NON-NLS-1$
47 public static final String OPTION_ReportDeprecationWhenOverridingDeprecatedMethod = "net.sourceforge.phpeclipse.compiler.problem.deprecationWhenOverridingDeprecatedMethod"; //$NON-NLS-1$
48 public static final String OPTION_ReportHiddenCatchBlock = "net.sourceforge.phpeclipse.compiler.problem.hiddenCatchBlock"; //$NON-NLS-1$
49 public static final String OPTION_ReportUnusedLocal = "net.sourceforge.phpeclipse.compiler.problem.unusedLocal"; //$NON-NLS-1$
50 public static final String OPTION_ReportUnusedParameter = "net.sourceforge.phpeclipse.compiler.problem.unusedParameter"; //$NON-NLS-1$
51 public static final String OPTION_ReportUnusedParameterWhenImplementingAbstract = "net.sourceforge.phpeclipse.compiler.problem.unusedParameterWhenImplementingAbstract"; //$NON-NLS-1$
52 public static final String OPTION_ReportUnusedParameterWhenOverridingConcrete = "net.sourceforge.phpeclipse.compiler.problem.unusedParameterWhenOverridingConcrete"; //$NON-NLS-1$
53 public static final String OPTION_ReportUnusedImport = "net.sourceforge.phpeclipse.compiler.problem.unusedImport"; //$NON-NLS-1$
54 public static final String OPTION_ReportSyntheticAccessEmulation = "net.sourceforge.phpeclipse.compiler.problem.syntheticAccessEmulation"; //$NON-NLS-1$
55 public static final String OPTION_ReportNoEffectAssignment = "net.sourceforge.phpeclipse.compiler.problem.noEffectAssignment"; //$NON-NLS-1$
56 public static final String OPTION_ReportLocalVariableHiding = "net.sourceforge.phpeclipse.compiler.problem.localVariableHiding"; //$NON-NLS-1$
57 public static final String OPTION_ReportSpecialParameterHidingField = "net.sourceforge.phpeclipse.compiler.problem.specialParameterHidingField"; //$NON-NLS-1$
58 public static final String OPTION_ReportFieldHiding = "net.sourceforge.phpeclipse.compiler.problem.fieldHiding"; //$NON-NLS-1$
59 public static final String OPTION_ReportPossibleAccidentalBooleanAssignment = "net.sourceforge.phpeclipse.compiler.problem.possibleAccidentalBooleanAssignment"; //$NON-NLS-1$
60 public static final String OPTION_ReportNonExternalizedStringLiteral = "net.sourceforge.phpeclipse.compiler.problem.nonExternalizedStringLiteral"; //$NON-NLS-1$
61 public static final String OPTION_ReportIncompatibleNonInheritedInterfaceMethod = "net.sourceforge.phpeclipse.compiler.problem.incompatibleNonInheritedInterfaceMethod"; //$NON-NLS-1$
62 public static final String OPTION_ReportUnusedPrivateMember = "net.sourceforge.phpeclipse.compiler.problem.unusedPrivateMember"; //$NON-NLS-1$
63 public static final String OPTION_ReportNoImplicitStringConversion = "net.sourceforge.phpeclipse.compiler.problem.noImplicitStringConversion"; //$NON-NLS-1$
64 public static final String OPTION_ReportAssertIdentifier = "net.sourceforge.phpeclipse.compiler.problem.assertIdentifier"; //$NON-NLS-1$
65 public static final String OPTION_ReportNonStaticAccessToStatic = "net.sourceforge.phpeclipse.compiler.problem.staticAccessReceiver"; //$NON-NLS-1$
66 public static final String OPTION_ReportIndirectStaticAccess = "net.sourceforge.phpeclipse.compiler.problem.indirectStaticAccess"; //$NON-NLS-1$
67 public static final String OPTION_ReportSuperfluousSemicolon = "net.sourceforge.phpeclipse.compiler.problem.superfluousSemicolon"; //$NON-NLS-1$
68 public static final String OPTION_ReportUnnecessaryTypeCheck = "net.sourceforge.phpeclipse.compiler.problem.unnecessaryTypeCheck"; //$NON-NLS-1$
69 public static final String OPTION_ReportUndocumentedEmptyBlock = "net.sourceforge.phpeclipse.compiler.problem.undocumentedEmptyBlock"; //$NON-NLS-1$
70 public static final String OPTION_ReportInvalidJavadoc = "net.sourceforge.phpeclipse.compiler.problem.invalidJavadoc"; //$NON-NLS-1$
71 public static final String OPTION_ReportInvalidJavadocTags = "net.sourceforge.phpeclipse.compiler.problem.invalidJavadocTags"; //$NON-NLS-1$
72 public static final String OPTION_ReportInvalidJavadocTagsVisibility = "net.sourceforge.phpeclipse.compiler.problem.invalidJavadocTagsVisibility"; //$NON-NLS-1$
73 public static final String OPTION_ReportMissingJavadocTags = "net.sourceforge.phpeclipse.compiler.problem.missingJavadocTags"; //$NON-NLS-1$
74 public static final String OPTION_ReportMissingJavadocTagsVisibility = "net.sourceforge.phpeclipse.compiler.problem.missingJavadocTagsVisibility"; //$NON-NLS-1$
75 public static final String OPTION_ReportMissingJavadocTagsOverriding = "net.sourceforge.phpeclipse.compiler.problem.missingJavadocTagsOverriding"; //$NON-NLS-1$
76 public static final String OPTION_ReportMissingJavadocComments = "net.sourceforge.phpeclipse.compiler.problem.missingJavadocComments"; //$NON-NLS-1$
77 public static final String OPTION_ReportMissingJavadocCommentsVisibility = "net.sourceforge.phpeclipse.compiler.problem.missingJavadocCommentsVisibility"; //$NON-NLS-1$
78 public static final String OPTION_ReportMissingJavadocCommentsOverriding = "net.sourceforge.phpeclipse.compiler.problem.missingJavadocCommentsOverriding"; //$NON-NLS-1$
79 public static final String OPTION_ReportFinallyBlockNotCompletingNormally = "net.sourceforge.phpeclipse.compiler.problem.finallyBlockNotCompletingNormally"; //$NON-NLS-1$
80 public static final String OPTION_ReportUnusedDeclaredThrownException = "net.sourceforge.phpeclipse.compiler.problem.unusedDeclaredThrownException"; //$NON-NLS-1$
81 public static final String OPTION_ReportUnusedDeclaredThrownExceptionWhenOverriding = "net.sourceforge.phpeclipse.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding"; //$NON-NLS-1$
82 public static final String OPTION_ReportUnqualifiedFieldAccess = "net.sourceforge.phpeclipse.compiler.problem.unqualifiedFieldAccess"; //$NON-NLS-1$
83 // public static final String OPTION_Source = "net.sourceforge.phpeclipse.compiler.source"; //$NON-NLS-1$
84 // public static final String OPTION_TargetPlatform = "net.sourceforge.phpeclipse.compiler.codegen.targetPlatform"; //$NON-NLS-1$
85 // public static final String OPTION_Compliance = "net.sourceforge.phpeclipse.compiler.compliance"; //$NON-NLS-1$
86 public static final String OPTION_Encoding = "net.sourceforge.phpeclipse.encoding"; //$NON-NLS-1$
87 public static final String OPTION_MaxProblemPerUnit = "net.sourceforge.phpeclipse.compiler.maxProblemPerUnit"; //$NON-NLS-1$
88 public static final String OPTION_TaskTags = "net.sourceforge.phpeclipse.compiler.taskTags"; //$NON-NLS-1$
89 public static final String OPTION_TaskPriorities = "net.sourceforge.phpeclipse.compiler.taskPriorities"; //$NON-NLS-1$
91 // Backward compatibility
92 public static final String OPTION_ReportInvalidAnnotation = "net.sourceforge.phpeclipse.compiler.problem.invalidAnnotation"; //$NON-NLS-1$
93 public static final String OPTION_ReportMissingAnnotation = "net.sourceforge.phpeclipse.compiler.problem.missingAnnotation"; //$NON-NLS-1$
94 public static final String OPTION_ReportMissingJavadoc = "net.sourceforge.phpeclipse.compiler.problem.missingJavadoc"; //$NON-NLS-1$
96 /* should surface ??? */
97 // public static final String OPTION_PrivateConstructorAccess = "net.sourceforge.phpeclipse.compiler.codegen.constructorAccessEmulation"; //$NON-NLS-1$
100 * Possible values for configurable options
102 public static final String GENERATE = "generate";//$NON-NLS-1$
103 public static final String DO_NOT_GENERATE = "do not generate"; //$NON-NLS-1$
104 public static final String PRESERVE = "preserve"; //$NON-NLS-1$
105 // public static final String OPTIMIZE_OUT = "optimize out"; //$NON-NLS-1$
106 // public static final String VERSION_1_1 = "1.1"; //$NON-NLS-1$
107 // public static final String VERSION_1_2 = "1.2"; //$NON-NLS-1$
108 // public static final String VERSION_1_3 = "1.3"; //$NON-NLS-1$
109 // public static final String VERSION_1_4 = "1.4"; //$NON-NLS-1$
110 // public static final String VERSION_1_5 = "1.5"; //$NON-NLS-1$
111 public static final String ERROR = "error"; //$NON-NLS-1$
112 public static final String WARNING = "warning"; //$NON-NLS-1$
113 public static final String IGNORE = "ignore"; //$NON-NLS-1$
114 public static final String ENABLED = "enabled"; //$NON-NLS-1$
115 public static final String DISABLED = "disabled"; //$NON-NLS-1$
116 public static final String PUBLIC = "public"; //$NON-NLS-1$
117 public static final String PROTECTED = "protected"; //$NON-NLS-1$
118 public static final String DEFAULT = "default"; //$NON-NLS-1$
119 public static final String PRIVATE = "private"; //$NON-NLS-1$
122 * Bit mask for configurable problems (error/warning threshold)
128 public static final long MethodWithConstructorName = 0x1000L;
129 public static final long OverriddenPackageDefaultMethod = 0x2000L;
130 public static final long UsingDeprecatedAPI = 0x4000L;
131 public static final long MaskedCatchBlock = 0x8000L;
132 public static final long UnusedLocalVariable = 0x10000L;
133 public static final long UnusedArgument = 0x20000L;
134 public static final long NoImplicitStringConversion = 0x40000L;
135 public static final long AccessEmulation = 0x80000L;
136 public static final long NonExternalizedString = 0x100000L;
137 public static final long AssertUsedAsAnIdentifier = 0x200000L;
138 public static final long UnusedImport = 0x400000L;
139 public static final long NonStaticAccessToStatic = 0x800000L;
140 public static final long Task = 0x1000000L;
141 public static final long NoEffectAssignment = 0x2000000L;
142 public static final long IncompatibleNonInheritedInterfaceMethod = 0x4000000L;
143 public static final long UnusedPrivateMember = 0x8000000L;
144 public static final long LocalVariableHiding = 0x10000000L;
145 public static final long FieldHiding = 0x20000000L;
146 public static final long AccidentalBooleanAssign = 0x40000000L;
147 public static final long SuperfluousSemicolon = 0x80000000L;
148 public static final long IndirectStaticAccess = 0x100000000L;
149 public static final long UndocumentedEmptyBlock = 0x200000000L;
150 public static final long UnnecessaryTypeCheck = 0x400000000L;
151 public static final long InvalidJavadoc = 0x800000000L;
152 public static final long FinallyBlockNotCompleting = 0x1000000000L;
153 public static final long UnusedDeclaredThrownException = 0x2000000000L;
154 public static final long UnqualifiedFieldAccess = 0x4000000000L;
155 public static final long MissingJavadocTags = 0x8000000000L;
156 public static final long MissingJavadocComments = 0x10000000000L;
159 public static final long PHPVarDeprecatedWarning = 0x20000000000L;
160 public static final long PHPBadStyleKeywordWarning = 0x40000000000L;
161 public static final long PHPBadStyleUppercaseIdentifierWarning = 0x80000000000L;
162 public static final long PHPIncludeNotExistWarning = 0x100000000000L;
163 public static final long UninitializedLocalVariableWarning = 0x200000000000L;
164 public static final long CodeCannotBeReachedWarning = 0x400000000000L;
165 // Default severity level for handlers
166 public long errorThreshold = 0;
168 public long warningThreshold =
169 MethodWithConstructorName
172 | OverriddenPackageDefaultMethod
174 | NonStaticAccessToStatic
176 | IncompatibleNonInheritedInterfaceMethod
177 | NoImplicitStringConversion
178 | FinallyBlockNotCompleting
179 | AssertUsedAsAnIdentifier
180 | PHPVarDeprecatedWarning
181 | PHPBadStyleKeywordWarning
182 | PHPBadStyleUppercaseIdentifierWarning
183 | PHPIncludeNotExistWarning
184 | UninitializedLocalVariableWarning
185 | CodeCannotBeReachedWarning;
189 public static final int Source = 1; // SourceFileAttribute
190 public static final int Lines = 2; // LineNumberAttribute
191 public static final int Vars = 4; // LocalVariableTableAttribute
193 // By default only lines and source attributes are generated.
194 public int produceDebugAttributes = Lines | Source;
196 // public long complianceLevel = JDK1_4; // by default be compliant with 1.4
197 // public long sourceLevel = JDK1_3; //1.3 source behavior by default
198 // public long targetJDK = JDK1_2; // default generates for JVM1.2
200 // toggle private access emulation for 1.2 (constr. accessor has extra arg on constructor) or 1.3 (make private constructor default access when access needed)
201 public boolean isPrivateConstructorAccessChangingVisibility = false; // by default, follows 1.2
203 // source encoding format
204 public String defaultEncoding = null; // will use the platform default encoding
206 // print what unit is being processed
207 public boolean verbose = Compiler.DEBUG;
209 // indicates if reference info is desired
210 public boolean produceReferenceInfo = false;
212 // indicates if unused/optimizable local variables need to be preserved (debugging purpose)
213 public boolean preserveAllLocalVariables = false;
215 // indicates whether literal expressions are inlined at parse-time or not
216 public boolean parseLiteralExpressionsAsConstants = true;
218 // max problems per compilation unit
219 public int maxProblemsPerUnit = 100; // no more than 100 problems per default
221 // tags used to recognize tasks in comments
222 public char[][] taskTags = null;
224 // priorities of tasks in comments
225 public char[][] taskPriorites = null;
227 // deprecation report
228 public boolean reportDeprecationInsideDeprecatedCode = false;
229 public boolean reportDeprecationWhenOverridingDeprecatedMethod = false;
231 // unused parameters report
232 public boolean reportUnusedParameterWhenImplementingAbstract = false;
233 public boolean reportUnusedParameterWhenOverridingConcrete = false;
235 // unused declaration of thrown exception
236 public boolean reportUnusedDeclaredThrownExceptionWhenOverriding = false;
238 // constructor/setter parameter hiding
239 public boolean reportSpecialParameterHidingField = false;
241 // check javadoc comments
242 public int reportInvalidJavadocTagsVisibility = AccPrivate;
243 public boolean reportInvalidJavadocTags = true;
245 // check missing javadoc tags
246 public int reportMissingJavadocTagsVisibility = AccPrivate;
247 public boolean reportMissingJavadocTagsOverriding = true;
249 // check missing javadoc comments
250 public int reportMissingJavadocCommentsVisibility = AccPublic;
251 public boolean reportMissingJavadocCommentsOverriding = true;
252 // javadoc comment support
253 public boolean docCommentSupport = false;
256 * Initializing the compiler options with defaults
258 public CompilerOptions(){
259 // use default options
263 * Initializing the compiler options with external settings
266 public CompilerOptions(Map settings){
268 if (settings == null) return;
272 public Map getMap() {
273 Map optionsMap = new HashMap(30);
274 optionsMap.put(OPTION_PHPVarDeprecatedWarning, getSeverityString(PHPIncludeNotExistWarning));
275 optionsMap.put(OPTION_PHPVarDeprecatedWarning, getSeverityString(PHPVarDeprecatedWarning));
276 optionsMap.put(OPTION_PHPBadStyleKeywordWarning, getSeverityString(PHPBadStyleKeywordWarning));
277 optionsMap.put(OPTION_PHPBadStyleUppercaseIdentifierWarning, getSeverityString(PHPBadStyleUppercaseIdentifierWarning));
278 optionsMap.put(OPTION_UninitializedLocalVariableWarning, getSeverityString(UninitializedLocalVariableWarning));
279 optionsMap.put(OPTION_CodeCannotBeReachedWarning, getSeverityString(CodeCannotBeReachedWarning));
281 optionsMap.put(OPTION_LocalVariableAttribute, (this.produceDebugAttributes & Vars) != 0 ? GENERATE : DO_NOT_GENERATE);
282 optionsMap.put(OPTION_LineNumberAttribute, (this.produceDebugAttributes & Lines) != 0 ? GENERATE : DO_NOT_GENERATE);
283 optionsMap.put(OPTION_SourceFileAttribute, (this.produceDebugAttributes & Source) != 0 ? GENERATE : DO_NOT_GENERATE);
284 // optionsMap.put(OPTION_PreserveUnusedLocal, this.preserveAllLocalVariables ? PRESERVE : OPTIMIZE_OUT);
285 optionsMap.put(OPTION_DocCommentSupport, this.docCommentSupport ? ENABLED : DISABLED);
286 optionsMap.put(OPTION_ReportMethodWithConstructorName, getSeverityString(MethodWithConstructorName));
287 optionsMap.put(OPTION_ReportOverridingPackageDefaultMethod, getSeverityString(OverriddenPackageDefaultMethod));
288 optionsMap.put(OPTION_ReportDeprecation, getSeverityString(UsingDeprecatedAPI));
289 optionsMap.put(OPTION_ReportDeprecationInDeprecatedCode, this.reportDeprecationInsideDeprecatedCode ? ENABLED : DISABLED);
290 optionsMap.put(OPTION_ReportDeprecationWhenOverridingDeprecatedMethod, this.reportDeprecationWhenOverridingDeprecatedMethod ? ENABLED : DISABLED);
291 optionsMap.put(OPTION_ReportHiddenCatchBlock, getSeverityString(MaskedCatchBlock));
292 optionsMap.put(OPTION_ReportUnusedLocal, getSeverityString(UnusedLocalVariable));
293 optionsMap.put(OPTION_ReportUnusedParameter, getSeverityString(UnusedArgument));
294 optionsMap.put(OPTION_ReportUnusedImport, getSeverityString(UnusedImport));
295 optionsMap.put(OPTION_ReportSyntheticAccessEmulation, getSeverityString(AccessEmulation));
296 optionsMap.put(OPTION_ReportNoEffectAssignment, getSeverityString(NoEffectAssignment));
297 optionsMap.put(OPTION_ReportNonExternalizedStringLiteral, getSeverityString(NonExternalizedString));
298 optionsMap.put(OPTION_ReportNoImplicitStringConversion, getSeverityString(NoImplicitStringConversion));
299 optionsMap.put(OPTION_ReportNonStaticAccessToStatic, getSeverityString(NonStaticAccessToStatic));
300 optionsMap.put(OPTION_ReportIndirectStaticAccess, getSeverityString(IndirectStaticAccess));
301 optionsMap.put(OPTION_ReportIncompatibleNonInheritedInterfaceMethod, getSeverityString(IncompatibleNonInheritedInterfaceMethod));
302 optionsMap.put(OPTION_ReportUnusedPrivateMember, getSeverityString(UnusedPrivateMember));
303 optionsMap.put(OPTION_ReportLocalVariableHiding, getSeverityString(LocalVariableHiding));
304 optionsMap.put(OPTION_ReportFieldHiding, getSeverityString(FieldHiding));
305 optionsMap.put(OPTION_ReportPossibleAccidentalBooleanAssignment, getSeverityString(AccidentalBooleanAssign));
306 optionsMap.put(OPTION_ReportSuperfluousSemicolon, getSeverityString(SuperfluousSemicolon));
307 optionsMap.put(OPTION_ReportAssertIdentifier, getSeverityString(AssertUsedAsAnIdentifier));
308 optionsMap.put(OPTION_ReportUndocumentedEmptyBlock, getSeverityString(UndocumentedEmptyBlock));
309 optionsMap.put(OPTION_ReportUnnecessaryTypeCheck, getSeverityString(UnnecessaryTypeCheck));
310 optionsMap.put(OPTION_ReportInvalidJavadoc, getSeverityString(InvalidJavadoc));
311 optionsMap.put(OPTION_ReportInvalidJavadocTagsVisibility, getVisibilityString(this.reportInvalidJavadocTagsVisibility));
312 optionsMap.put(OPTION_ReportInvalidJavadocTags, this.reportInvalidJavadocTags? ENABLED : DISABLED);
313 optionsMap.put(OPTION_ReportMissingJavadocTags, getSeverityString(MissingJavadocTags));
314 optionsMap.put(OPTION_ReportMissingJavadocTagsVisibility, getVisibilityString(this.reportMissingJavadocTagsVisibility));
315 optionsMap.put(OPTION_ReportMissingJavadocTagsOverriding, this.reportMissingJavadocTagsOverriding ? ENABLED : DISABLED);
316 optionsMap.put(OPTION_ReportMissingJavadocComments, getSeverityString(MissingJavadocComments));
317 optionsMap.put(OPTION_ReportMissingJavadocCommentsVisibility, getVisibilityString(this.reportMissingJavadocCommentsVisibility));
318 optionsMap.put(OPTION_ReportMissingJavadocCommentsOverriding, this.reportMissingJavadocCommentsOverriding ? ENABLED : DISABLED);
319 optionsMap.put(OPTION_ReportFinallyBlockNotCompletingNormally, getSeverityString(FinallyBlockNotCompleting));
320 optionsMap.put(OPTION_ReportUnusedDeclaredThrownException, getSeverityString(UnusedDeclaredThrownException));
321 optionsMap.put(OPTION_ReportUnusedDeclaredThrownExceptionWhenOverriding, this.reportUnusedDeclaredThrownExceptionWhenOverriding ? ENABLED : DISABLED);
322 optionsMap.put(OPTION_ReportUnqualifiedFieldAccess, getSeverityString(UnqualifiedFieldAccess));
323 // optionsMap.put(OPTION_Compliance, versionFromJdkLevel(this.complianceLevel));
324 // optionsMap.put(OPTION_Source, versionFromJdkLevel(this.sourceLevel));
325 // optionsMap.put(OPTION_TargetPlatform, versionFromJdkLevel(this.targetJDK));
326 if (this.defaultEncoding != null) {
327 optionsMap.put(OPTION_Encoding, this.defaultEncoding);
329 optionsMap.put(OPTION_TaskTags, this.taskTags == null ? "" : new String(CharOperation.concatWith(this.taskTags,','))); //$NON-NLS-1$
330 optionsMap.put(OPTION_TaskPriorities, this.taskPriorites == null ? "" : new String(CharOperation.concatWith(this.taskPriorites,','))); //$NON-NLS-1$
331 optionsMap.put(OPTION_ReportUnusedParameterWhenImplementingAbstract, this.reportUnusedParameterWhenImplementingAbstract ? ENABLED : DISABLED);
332 optionsMap.put(OPTION_ReportUnusedParameterWhenOverridingConcrete, this.reportUnusedParameterWhenOverridingConcrete ? ENABLED : DISABLED);
333 optionsMap.put(OPTION_ReportSpecialParameterHidingField, this.reportSpecialParameterHidingField ? ENABLED : DISABLED);
334 optionsMap.put(OPTION_MaxProblemPerUnit, String.valueOf(this.maxProblemsPerUnit));
339 public int getSeverity(long irritant) {
340 if((this.warningThreshold & irritant) != 0)
342 if((this.errorThreshold & irritant) != 0)
347 public String getSeverityString(long irritant) {
348 if((this.warningThreshold & irritant) != 0)
350 if((this.errorThreshold & irritant) != 0)
355 public String getVisibilityString(int level) {
368 public void set(Map optionsMap) {
371 if ((optionValue = optionsMap.get(OPTION_LocalVariableAttribute)) != null) {
372 if (GENERATE.equals(optionValue)) {
373 this.produceDebugAttributes |= Vars;
374 } else if (DO_NOT_GENERATE.equals(optionValue)) {
375 this.produceDebugAttributes &= ~Vars;
378 if ((optionValue = optionsMap.get(OPTION_LineNumberAttribute)) != null) {
379 if (GENERATE.equals(optionValue)) {
380 this.produceDebugAttributes |= Lines;
381 } else if (DO_NOT_GENERATE.equals(optionValue)) {
382 this.produceDebugAttributes &= ~Lines;
385 if ((optionValue = optionsMap.get(OPTION_SourceFileAttribute)) != null) {
386 if (GENERATE.equals(optionValue)) {
387 this.produceDebugAttributes |= Source;
388 } else if (DO_NOT_GENERATE.equals(optionValue)) {
389 this.produceDebugAttributes &= ~Source;
392 // if ((optionValue = optionsMap.get(OPTION_PreserveUnusedLocal)) != null) {
393 // if (PRESERVE.equals(optionValue)) {
394 // this.preserveAllLocalVariables = true;
395 // } else if (OPTIMIZE_OUT.equals(optionValue)) {
396 // this.preserveAllLocalVariables = false;
399 if ((optionValue = optionsMap.get(OPTION_ReportDeprecationInDeprecatedCode)) != null) {
400 if (ENABLED.equals(optionValue)) {
401 this.reportDeprecationInsideDeprecatedCode = true;
402 } else if (DISABLED.equals(optionValue)) {
403 this.reportDeprecationInsideDeprecatedCode = false;
406 if ((optionValue = optionsMap.get(OPTION_ReportDeprecationWhenOverridingDeprecatedMethod)) != null) {
407 if (ENABLED.equals(optionValue)) {
408 this.reportDeprecationWhenOverridingDeprecatedMethod = true;
409 } else if (DISABLED.equals(optionValue)) {
410 this.reportDeprecationWhenOverridingDeprecatedMethod = false;
413 if ((optionValue = optionsMap.get(OPTION_ReportUnusedDeclaredThrownExceptionWhenOverriding)) != null) {
414 if (ENABLED.equals(optionValue)) {
415 this.reportUnusedDeclaredThrownExceptionWhenOverriding = true;
416 } else if (DISABLED.equals(optionValue)) {
417 this.reportUnusedDeclaredThrownExceptionWhenOverriding = false;
420 // if ((optionValue = optionsMap.get(OPTION_Compliance)) != null) {
421 // long level = versionToJdkLevel(optionValue);
422 // if (level != 0) this.complianceLevel = level;
424 // if ((optionValue = optionsMap.get(OPTION_Source)) != null) {
425 // long level = versionToJdkLevel(optionValue);
426 // if (level != 0) this.sourceLevel = level;
428 // if ((optionValue = optionsMap.get(OPTION_TargetPlatform)) != null) {
429 // long level = versionToJdkLevel(optionValue);
430 // if (level != 0) this.targetJDK = level;
432 if ((optionValue = optionsMap.get(OPTION_Encoding)) != null) {
433 if (optionValue instanceof String) {
434 this.defaultEncoding = null;
435 String stringValue = (String) optionValue;
436 if (stringValue.length() > 0){
438 new InputStreamReader(new ByteArrayInputStream(new byte[0]), stringValue);
439 this.defaultEncoding = stringValue;
440 } catch(UnsupportedEncodingException e){
441 // ignore unsupported encoding
446 // if ((optionValue = optionsMap.get(OPTION_PrivateConstructorAccess)) != null) {
447 // long level = versionToJdkLevel(optionValue);
448 // if (level >= JDK1_3) this.isPrivateConstructorAccessChangingVisibility = true;
450 if ((optionValue = optionsMap.get(OPTION_ReportUnusedParameterWhenImplementingAbstract)) != null) {
451 if (ENABLED.equals(optionValue)) {
452 this.reportUnusedParameterWhenImplementingAbstract = true;
453 } else if (DISABLED.equals(optionValue)) {
454 this.reportUnusedParameterWhenImplementingAbstract = false;
457 if ((optionValue = optionsMap.get(OPTION_ReportUnusedParameterWhenOverridingConcrete)) != null) {
458 if (ENABLED.equals(optionValue)) {
459 this.reportUnusedParameterWhenOverridingConcrete = true;
460 } else if (DISABLED.equals(optionValue)) {
461 this.reportUnusedParameterWhenOverridingConcrete = false;
464 if ((optionValue = optionsMap.get(OPTION_ReportSpecialParameterHidingField)) != null) {
465 if (ENABLED.equals(optionValue)) {
466 this.reportSpecialParameterHidingField = true;
467 } else if (DISABLED.equals(optionValue)) {
468 this.reportSpecialParameterHidingField = false;
471 if ((optionValue = optionsMap.get(OPTION_MaxProblemPerUnit)) != null) {
472 if (optionValue instanceof String) {
473 String stringValue = (String) optionValue;
475 int val = Integer.parseInt(stringValue);
476 if (val >= 0) this.maxProblemsPerUnit = val;
477 } catch(NumberFormatException e){
478 // ignore ill-formatted limit
482 if ((optionValue = optionsMap.get(OPTION_TaskTags)) != null) {
483 if (optionValue instanceof String) {
484 String stringValue = (String) optionValue;
485 if (stringValue.length() == 0) {
486 this.taskTags = null;
488 this.taskTags = CharOperation.splitAndTrimOn(',', stringValue.toCharArray());
492 if ((optionValue = optionsMap.get(OPTION_TaskPriorities)) != null) {
493 if (optionValue instanceof String) {
494 String stringValue = (String) optionValue;
495 if (stringValue.length() == 0) {
496 this.taskPriorites = null;
498 this.taskPriorites = CharOperation.splitAndTrimOn(',', stringValue.toCharArray());
502 if ((optionValue = optionsMap.get(OPTION_PHPVarDeprecatedWarning)) != null) updateSeverity(PHPVarDeprecatedWarning, optionValue);
503 if ((optionValue = optionsMap.get(OPTION_PHPBadStyleKeywordWarning)) != null) updateSeverity(PHPBadStyleKeywordWarning, optionValue);
504 if ((optionValue = optionsMap.get(OPTION_PHPBadStyleUppercaseIdentifierWarning)) != null) updateSeverity(PHPBadStyleUppercaseIdentifierWarning, optionValue);
505 if ((optionValue = optionsMap.get(OPTION_PHPIncludeNotExistWarning)) != null) updateSeverity(PHPIncludeNotExistWarning, optionValue);
506 if ((optionValue = optionsMap.get(OPTION_UninitializedLocalVariableWarning)) != null) updateSeverity(UninitializedLocalVariableWarning, optionValue);
507 if ((optionValue = optionsMap.get(OPTION_CodeCannotBeReachedWarning)) != null) updateSeverity(CodeCannotBeReachedWarning, optionValue);
509 if ((optionValue = optionsMap.get(OPTION_ReportMethodWithConstructorName)) != null) updateSeverity(MethodWithConstructorName, optionValue);
510 if ((optionValue = optionsMap.get(OPTION_ReportOverridingPackageDefaultMethod)) != null) updateSeverity(OverriddenPackageDefaultMethod, optionValue);
511 if ((optionValue = optionsMap.get(OPTION_ReportDeprecation)) != null) updateSeverity(UsingDeprecatedAPI, optionValue);
512 if ((optionValue = optionsMap.get(OPTION_ReportHiddenCatchBlock)) != null) updateSeverity(MaskedCatchBlock, optionValue);
513 if ((optionValue = optionsMap.get(OPTION_ReportUnusedLocal)) != null) updateSeverity(UnusedLocalVariable, optionValue);
514 if ((optionValue = optionsMap.get(OPTION_ReportUnusedParameter)) != null) updateSeverity(UnusedArgument, optionValue);
515 if ((optionValue = optionsMap.get(OPTION_ReportUnusedImport)) != null) updateSeverity(UnusedImport, optionValue);
516 if ((optionValue = optionsMap.get(OPTION_ReportUnusedPrivateMember)) != null) updateSeverity(UnusedPrivateMember, optionValue);
517 if ((optionValue = optionsMap.get(OPTION_ReportUnusedDeclaredThrownException)) != null) updateSeverity(UnusedDeclaredThrownException, optionValue);
518 if ((optionValue = optionsMap.get(OPTION_ReportNoImplicitStringConversion)) != null) updateSeverity(NoImplicitStringConversion, optionValue);
519 if ((optionValue = optionsMap.get(OPTION_ReportSyntheticAccessEmulation)) != null) updateSeverity(AccessEmulation, optionValue);
520 if ((optionValue = optionsMap.get(OPTION_ReportLocalVariableHiding)) != null) updateSeverity(LocalVariableHiding, optionValue);
521 if ((optionValue = optionsMap.get(OPTION_ReportFieldHiding)) != null) updateSeverity(FieldHiding, optionValue);
522 if ((optionValue = optionsMap.get(OPTION_ReportPossibleAccidentalBooleanAssignment)) != null) updateSeverity(AccidentalBooleanAssign, optionValue);
523 if ((optionValue = optionsMap.get(OPTION_ReportSuperfluousSemicolon)) != null) updateSeverity(SuperfluousSemicolon, optionValue);
524 if ((optionValue = optionsMap.get(OPTION_ReportNonExternalizedStringLiteral)) != null) updateSeverity(NonExternalizedString, optionValue);
525 if ((optionValue = optionsMap.get(OPTION_ReportAssertIdentifier)) != null) updateSeverity(AssertUsedAsAnIdentifier, optionValue);
526 if ((optionValue = optionsMap.get(OPTION_ReportNonStaticAccessToStatic)) != null) updateSeverity(NonStaticAccessToStatic, optionValue);
527 if ((optionValue = optionsMap.get(OPTION_ReportIndirectStaticAccess)) != null) updateSeverity(IndirectStaticAccess, optionValue);
528 if ((optionValue = optionsMap.get(OPTION_ReportIncompatibleNonInheritedInterfaceMethod)) != null) updateSeverity(IncompatibleNonInheritedInterfaceMethod, optionValue);
529 if ((optionValue = optionsMap.get(OPTION_ReportUndocumentedEmptyBlock)) != null) updateSeverity(UndocumentedEmptyBlock, optionValue);
530 if ((optionValue = optionsMap.get(OPTION_ReportUnnecessaryTypeCheck)) != null) updateSeverity(UnnecessaryTypeCheck, optionValue);
531 if ((optionValue = optionsMap.get(OPTION_ReportFinallyBlockNotCompletingNormally)) != null) updateSeverity(FinallyBlockNotCompleting, optionValue);
532 if ((optionValue = optionsMap.get(OPTION_ReportUnqualifiedFieldAccess)) != null) updateSeverity(UnqualifiedFieldAccess, optionValue);
533 if ((optionValue = optionsMap.get(OPTION_ReportNoEffectAssignment)) != null) updateSeverity(NoEffectAssignment, optionValue);
537 if ((optionValue = optionsMap.get(OPTION_DocCommentSupport)) != null) {
538 if (ENABLED.equals(optionValue)) {
539 this.docCommentSupport = true;
540 } else if (DISABLED.equals(optionValue)) {
541 this.docCommentSupport = false;
544 if ((optionValue = optionsMap.get(OPTION_ReportInvalidJavadoc)) != null) {
545 updateSeverity(InvalidJavadoc, optionValue);
547 if ((optionValue = optionsMap.get(OPTION_ReportInvalidJavadocTagsVisibility)) != null) {
548 if (PUBLIC.equals(optionValue)) {
549 this.reportInvalidJavadocTagsVisibility = AccPublic;
550 } else if (PROTECTED.equals(optionValue)) {
551 this.reportInvalidJavadocTagsVisibility = AccProtected;
552 // } else if (DEFAULT.equals(optionValue)) {
553 // this.reportInvalidJavadocTagsVisibility = AccDefault;
554 } else if (PRIVATE.equals(optionValue)) {
555 this.reportInvalidJavadocTagsVisibility = AccPrivate;
558 if ((optionValue = optionsMap.get(OPTION_ReportInvalidJavadocTags)) != null) {
559 if (ENABLED.equals(optionValue)) {
560 this.reportInvalidJavadocTags= true;
561 } else if (DISABLED.equals(optionValue)) {
562 this.reportInvalidJavadocTags = false;
565 if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocTags)) != null) {
566 updateSeverity(MissingJavadocTags, optionValue);
568 if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocTagsVisibility)) != null) {
569 if (PUBLIC.equals(optionValue)) {
570 this.reportMissingJavadocTagsVisibility = AccPublic;
571 } else if (PROTECTED.equals(optionValue)) {
572 this.reportMissingJavadocTagsVisibility = AccProtected;
573 // } else if (DEFAULT.equals(optionValue)) {
574 // this.reportMissingJavadocTagsVisibility = AccDefault;
575 } else if (PRIVATE.equals(optionValue)) {
576 this.reportMissingJavadocTagsVisibility = AccPrivate;
579 if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocTagsOverriding)) != null) {
580 if (ENABLED.equals(optionValue)) {
581 this.reportMissingJavadocTagsOverriding = true;
582 } else if (DISABLED.equals(optionValue)) {
583 this.reportMissingJavadocTagsOverriding = false;
586 if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocComments)) != null) {
587 updateSeverity(MissingJavadocComments, optionValue);
589 if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocCommentsVisibility)) != null) {
590 if (PUBLIC.equals(optionValue)) {
591 this.reportMissingJavadocCommentsVisibility = AccPublic;
592 } else if (PROTECTED.equals(optionValue)) {
593 this.reportMissingJavadocCommentsVisibility = AccProtected;
594 // } else if (DEFAULT.equals(optionValue)) {
595 // this.reportMissingJavadocCommentsVisibility = AccDefault;
596 } else if (PRIVATE.equals(optionValue)) {
597 this.reportMissingJavadocCommentsVisibility = AccPrivate;
600 if ((optionValue = optionsMap.get(OPTION_ReportMissingJavadocCommentsOverriding)) != null) {
601 if (ENABLED.equals(optionValue)) {
602 this.reportMissingJavadocCommentsOverriding = true;
603 } else if (DISABLED.equals(optionValue)) {
604 this.reportMissingJavadocCommentsOverriding = false;
609 public void setVerboseMode(boolean flag) {
613 public String toString() {
615 StringBuffer buf = new StringBuffer("CompilerOptions:"); //$NON-NLS-1$
616 buf.append("\n\t- var is deprecated keyword: ").append(getSeverityString(PHPVarDeprecatedWarning)); //$NON-NLS-1$
617 buf.append("\n\t- don't use keywords as identifiers: ").append(getSeverityString(PHPBadStyleKeywordWarning)); //$NON-NLS-1$
618 buf.append("\n\t- non-variable idenifiers should contain only uppercase characters: ").append(getSeverityString(PHPBadStyleUppercaseIdentifierWarning)); //$NON-NLS-1$
619 buf.append("\n\t- include filename doesn't exist in project: ").append(getSeverityString(PHPIncludeNotExistWarning)); //$NON-NLS-1$
620 buf.append("\n\t- local variable not initialized: ").append(getSeverityString(UninitializedLocalVariableWarning)); //$NON-NLS-1$
621 buf.append("\n\t- unreachable code: ").append(getSeverityString(CodeCannotBeReachedWarning)); //$NON-NLS-1$
623 buf.append("\n\t- local variables debug attributes: ").append((this.produceDebugAttributes & Vars) != 0 ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
624 buf.append("\n\t- line number debug attributes: ").append((this.produceDebugAttributes & Lines) != 0 ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
625 buf.append("\n\t- source debug attributes: ").append((this.produceDebugAttributes & Source) != 0 ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
626 buf.append("\n\t- preserve all local variables: ").append(this.preserveAllLocalVariables ? "ON" : " OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
627 buf.append("\n\t- method with constructor name: ").append(getSeverityString(MethodWithConstructorName)); //$NON-NLS-1$
628 buf.append("\n\t- overridden package default method: ").append(getSeverityString(OverriddenPackageDefaultMethod)); //$NON-NLS-1$
629 buf.append("\n\t- deprecation: ").append(getSeverityString(UsingDeprecatedAPI)); //$NON-NLS-1$
630 buf.append("\n\t- masked catch block: ").append(getSeverityString(MaskedCatchBlock)); //$NON-NLS-1$
631 buf.append("\n\t- unused local variable: ").append(getSeverityString(UnusedLocalVariable)); //$NON-NLS-1$
632 buf.append("\n\t- unused parameter: ").append(getSeverityString(UnusedArgument)); //$NON-NLS-1$
633 buf.append("\n\t- unused import: ").append(getSeverityString(UnusedImport)); //$NON-NLS-1$
634 buf.append("\n\t- synthetic access emulation: ").append(getSeverityString(AccessEmulation)); //$NON-NLS-1$
635 buf.append("\n\t- assignment with no effect: ").append(getSeverityString(NoEffectAssignment)); //$NON-NLS-1$
636 buf.append("\n\t- non externalized string: ").append(getSeverityString(NonExternalizedString)); //$NON-NLS-1$
637 buf.append("\n\t- static access receiver: ").append(getSeverityString(NonStaticAccessToStatic)); //$NON-NLS-1$
638 buf.append("\n\t- indirect static access: ").append(getSeverityString(IndirectStaticAccess)); //$NON-NLS-1$
639 buf.append("\n\t- incompatible non inherited interface method: ").append(getSeverityString(IncompatibleNonInheritedInterfaceMethod)); //$NON-NLS-1$
640 buf.append("\n\t- unused private member: ").append(getSeverityString(UnusedPrivateMember)); //$NON-NLS-1$
641 buf.append("\n\t- local variable hiding another variable: ").append(getSeverityString(LocalVariableHiding)); //$NON-NLS-1$
642 buf.append("\n\t- field hiding another variable: ").append(getSeverityString(FieldHiding)); //$NON-NLS-1$
643 buf.append("\n\t- possible accidental boolean assignment: ").append(getSeverityString(AccidentalBooleanAssign)); //$NON-NLS-1$
644 buf.append("\n\t- superfluous semicolon: ").append(getSeverityString(SuperfluousSemicolon)); //$NON-NLS-1$
645 buf.append("\n\t- uncommented empty block: ").append(getSeverityString(UndocumentedEmptyBlock)); //$NON-NLS-1$
646 buf.append("\n\t- unnecessary type check: ").append(getSeverityString(UnnecessaryTypeCheck)); //$NON-NLS-1$
647 buf.append("\n\t- invalid javadoc: ").append(getSeverityString(InvalidJavadoc)); //$NON-NLS-1$
648 buf.append("\n\t- report invalid javadoc tags: ").append(this.reportInvalidJavadocTags ? ENABLED : DISABLED); //$NON-NLS-1$
649 buf.append("\n\t- visibility level to report invalid javadoc tags: ").append(getVisibilityString(this.reportInvalidJavadocTagsVisibility)); //$NON-NLS-1$
650 buf.append("\n\t- missing javadoc tags: ").append(getSeverityString(MissingJavadocTags)); //$NON-NLS-1$
651 buf.append("\n\t- visibility level to report missing javadoc tags: ").append(getVisibilityString(this.reportMissingJavadocTagsVisibility)); //$NON-NLS-1$
652 buf.append("\n\t- report missing javadoc tags in overriding methods: ").append(this.reportMissingJavadocTagsOverriding ? ENABLED : DISABLED); //$NON-NLS-1$
653 buf.append("\n\t- missing javadoc comments: ").append(getSeverityString(MissingJavadocComments)); //$NON-NLS-1$
654 buf.append("\n\t- visibility level to report missing javadoc comments: ").append(getVisibilityString(this.reportMissingJavadocCommentsVisibility)); //$NON-NLS-1$
655 buf.append("\n\t- report missing javadoc comments in overriding methods: ").append(this.reportMissingJavadocCommentsOverriding ? ENABLED : DISABLED); //$NON-NLS-1$
656 buf.append("\n\t- finally block not completing normally: ").append(getSeverityString(FinallyBlockNotCompleting)); //$NON-NLS-1$
657 buf.append("\n\t- unused declared thrown exception: ").append(getSeverityString(UnusedDeclaredThrownException)); //$NON-NLS-1$
658 buf.append("\n\t- unused declared thrown exception when overriding ").append(this.reportUnusedDeclaredThrownExceptionWhenOverriding ? ENABLED : DISABLED); //$NON-NLS-1$
659 // buf.append("\n\t- JDK compliance level: "+ versionFromJdkLevel(this.complianceLevel)); //$NON-NLS-1$
660 // buf.append("\n\t- JDK source level: "+ versionFromJdkLevel(this.sourceLevel)); //$NON-NLS-1$
661 // buf.append("\n\t- JDK target level: "+ versionFromJdkLevel(this.targetJDK)); //$NON-NLS-1$
662 buf.append("\n\t- private constructor access: ").append(this.isPrivateConstructorAccessChangingVisibility ? "extra argument" : "make default access"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
663 buf.append("\n\t- verbose : ").append(this.verbose ? "ON" : "OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
664 buf.append("\n\t- produce reference info : ").append(this.produceReferenceInfo ? "ON" : "OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
665 buf.append("\n\t- parse literal expressions as constants : ").append(this.parseLiteralExpressionsAsConstants ? "ON" : "OFF"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
666 buf.append("\n\t- encoding : ").append(this.defaultEncoding == null ? "<default>" : this.defaultEncoding); //$NON-NLS-1$ //$NON-NLS-2$
667 buf.append("\n\t- task tags: ").append(this.taskTags == null ? "" : new String(CharOperation.concatWith(this.taskTags,','))); //$NON-NLS-1$ //$NON-NLS-2$
668 buf.append("\n\t- task priorities : ").append(this.taskPriorites == null ? "" : new String(CharOperation.concatWith(this.taskPriorites,','))); //$NON-NLS-1$ //$NON-NLS-2$
669 buf.append("\n\t- report deprecation inside deprecated code : ").append(this.reportDeprecationInsideDeprecatedCode ? "ENABLED" : "DISABLED"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
670 buf.append("\n\t- report deprecation when overriding deprecated method : ").append(this.reportDeprecationWhenOverridingDeprecatedMethod ? "ENABLED" : "DISABLED"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
671 buf.append("\n\t- report unused parameter when implementing abstract method : ").append(this.reportUnusedParameterWhenImplementingAbstract ? "ENABLED" : "DISABLED"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
672 buf.append("\n\t- report unused parameter when overriding concrete method : ").append(this.reportUnusedParameterWhenOverridingConcrete ? "ENABLED" : "DISABLED"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
673 buf.append("\n\t- report constructor/setter parameter hiding existing field : ").append(this.reportSpecialParameterHidingField ? "ENABLED" : "DISABLED"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
674 return buf.toString();
677 void updateSeverity(long irritant, Object severityString) {
678 if (ERROR.equals(severityString)) {
679 this.errorThreshold |= irritant;
680 this.warningThreshold &= ~irritant;
681 } else if (WARNING.equals(severityString)) {
682 this.errorThreshold &= ~irritant;
683 this.warningThreshold |= irritant;
684 } else if (IGNORE.equals(severityString)) {
685 this.errorThreshold &= ~irritant;
686 this.warningThreshold &= ~irritant;
689 // public static long versionToJdkLevel(Object versionID) {
690 // if (VERSION_1_1.equals(versionID)) {
692 // } else if (VERSION_1_2.equals(versionID)) {
694 // } else if (VERSION_1_3.equals(versionID)) {
696 // } else if (VERSION_1_4.equals(versionID)) {
698 // } else if (VERSION_1_5.equals(versionID)) {
701 // return 0; // unknown
704 // public static String versionFromJdkLevel(long jdkLevel) {
705 // if (jdkLevel == JDK1_1) {
706 // return VERSION_1_1;
707 // } else if (jdkLevel == JDK1_2) {
708 // return VERSION_1_2;
709 // } else if (jdkLevel == JDK1_3) {
710 // return VERSION_1_3;
711 // } else if (jdkLevel == JDK1_4) {
712 // return VERSION_1_4;
713 // } else if (jdkLevel == JDK1_5) {
714 // return VERSION_1_5;
716 // return ""; // unknown version //$NON-NLS-1$