###############################################################################
# Copyright (c) 2000, 2017 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
#		Benjamin Muskalla - Contribution for bug 239066
#		Stephan Herrmann - Contributions for
#								bug 236385 - [compiler] Warn for potential programming problem if an object is created but not used
#								bug 295551 - Add option to automatically promote all warnings to errors
#								bug 359721 - [options] add command line option for new warning token "resource"
#								bug 365208 - [compiler][batch] command line options for annotation based null analysis
#								bug 374605 - Unreasonable warning for enum-based switch statements
#								bug 388281 - [compiler][null] inheritance of null annotations as an option
#								bug 440687 - [compiler][batch][null] improve command line option for external annotations
#								Bug 408815 - [batch][null] Add CLI option for COMPILER_PB_SYNTACTIC_NULL_ANALYSIS_FOR_FIELDS
#		Alan Moraes <alan@kelon.org> - Contribution for bug 383644
#		Jesper S Moller - Contribution for bug 407297 - [1.8][compiler] Control generation of parameter names by option
###############################################################################
### JavaBatchCompiler messages.

### compiler
#Format: compiler.name = word1 word2 word3
compiler.name = Eclipse Compiler for Java(TM)
#Format: compiler.version = (The place holders will be automatically filled. Do not remove or alter it)
compiler.version = bundle_qualifier, bundle_version
compiler.copyright = Copyright IBM Corp 2000, 2015. All rights reserved.

### progress
progress.compiling = Compiling

### compile
compile.repetition = [repetition {0}/{1}]
compile.instantTime = [compiled {0} lines in {1} ms: {2} lines/s]
compile.detailedTime = [parse: {0} ms ({1}%), resolve: {2} ms ({3}%), analyze: {4} ms ({5}%), generate: {6} ms ({7}%) ]
compile.ioTime = [i/o: read: {0} ms ({1}%), write: {2} ms ({3}%)]
compile.averageTime = [average, excluding min-max {0} lines in {1} ms: {2} lines/s]
compile.totalTime = [total compilation time: {0}]
compile.oneProblem = 1 problem ({0})
compile.severalProblemsErrorsOrWarnings = {0} problems ({1})
compile.severalProblemsErrorsAndWarnings = {0} problems ({1}, {2})
compile.severalProblems = {0} problems ({1}, {2}, {3})
compile.oneError = 1 error
compile.severalErrors = {0} errors
compile.oneWarning = 1 warning
compile.severalWarnings = {0} warnings
compile.oneInfo = 1 info
compile.severalInfos = {0} info
compile.oneClassFileGenerated = [1 .class file generated]
compile.severalClassFilesGenerated = [{0} .class files generated]

### configure
configure.requiresJDK1.2orAbove = Need to use a JVM >= 1.2
configure.duplicateLog = duplicate log specification: {0}
configure.duplicateRepeat = duplicate repeat specification: {0}
configure.duplicateMaxProblems = duplicate max problems specification: {0}
configure.duplicateCompliance = duplicate compliance setting specification: {0}
configure.duplicateSource = duplicate source compliance setting specification: {0}
configure.duplicateTarget = duplicate target compliance setting specification: {0}
configure.source = source level should be comprised in between ''1.3'' and ''1.8'' (or ''5'', ''5.0'', ..., ''8'' or ''8.0''): {0}
configure.duplicateOutputPath = duplicate output path specification: {0}
configure.duplicateBootClasspath = duplicate bootclasspath specification: {0}
configure.duplicateExtDirs = duplicate extdirs specification: {0}
configure.duplicateSourcepath = duplicate sourcepath specification: {0}
configure.invalidDebugOption = invalid debug option: {0}
configure.invalidWarningConfiguration = invalid warning configuration: ''{0}''
configure.invalidWarning = invalid warning token: ''{0}''. Ignoring warning and compiling
configure.invalidWarningOption = invalid warning option: ''{0}''. Must specify a warning token
configure.targetJDK = target level should be comprised in between ''1.1'' and ''1.8'' (or ''5'', ''5.0'', ..., ''8'' or ''8.0'') or cldc1.1: {0}
configure.incompatibleTargetForSource = Target level ''{0}'' is incompatible with source level ''{1}''. A target level ''{1}'' or better is required
configure.incompatibleTargetForGenericSource = Target level ''{0}'' is incompatible with source level ''{1}''. A source level ''1.5'' or better is required
configure.incompatibleComplianceForSource = Compliance level ''{0}'' is incompatible with source level ''{1}''. A compliance level ''{1}'' or better is required
configure.incompatibleComplianceForTarget = Compliance level ''{0}'' is incompatible with target level ''{1}''. A compliance level ''{1}'' or better is required
configure.repetition = repetition must be a positive integer: {0}
configure.maxProblems = max problems must be a positive integer: {0}
configure.invalidNowarnOption = invalid syntax for nowarn option: {0}

configure.invalidErrorConfiguration = invalid error configuration: ''{0}''
configure.invalidError = invalid error token: ''{0}''. Ignoring this error token and compiling
configure.invalidErrorOption = invalid error option: ''{0}''. Must specify an error token

configure.invalidInfoConfiguration = invalid info configuration: ''{0}''
configure.invalidInfo = invalid info token: ''{0}''. Ignoring this info token and compiling
configure.invalidInfoOption = invalid info option: ''{0}''. Must specify an info token


## configure.directoryNotExist = directory does not exist: {0}
configure.unrecognizedOption = Unrecognized option : {0}
configure.noClasspath = no classpath defined, using default directory instead
configure.incorrectClasspath = incorrect classpath: {0}
configure.invalidexpansionargumentname = expansion argument file {0} does not exist or cannot be read
configure.cannotOpenLog = cannot open .log file: {0}
configure.cannotOpenLogInvalidEncoding = cannot open .log file: {0}; because UTF-8 is not supported
configure.unexpectedCustomEncoding = unexpected custom encoding specification: {0}[{1}]
configure.unsupportedEncoding = unsupported encoding format: {0}
configure.duplicateDefaultEncoding = duplicate default encoding format specification: {0}
configure.invalidTaskTag ={0} is an invalid task tag
configure.incorrectExtDirsEntry = incorrect ext dir entry; {0} must be a directory
configure.incorrectEndorsedDirsEntry = incorrect endorsed dir entry; {0} must be a directory
configure.duplicateEndorsedDirs = duplicate endorseddirs specification: {0}
configure.incorrectDestinationPathEntry = incorrect destination path entry: {0}
configure.unexpectedBracket = unexpected bracket: {0}
configure.unexpectedDestinationPathEntry = unexpected destination path entry in {0} option
configure.unexpectedDestinationPathEntryFile = unexpected destination path entry for file: {0}
configure.accessRuleAfterDestinationPath = access rules cannot follow destination path entries: {0}
configure.duplicateDestinationPathEntry = duplicate destination path entry in {0} option
configure.invalidClassName = invalid class name: {0}
configure.unavailableAPT = Unable to load annotation processing manager {0} from classpath.
configure.incorrectVMVersionforAPT = Annotation processing got disabled, since it requires a 1.6 compliant JVM
configure.incompatibleSourceForCldcTarget=Target level ''{0}'' is incompatible with source level ''{1}''. A source level ''1.3'' or lower is required
configure.incompatibleComplianceForCldcTarget=Target level ''{0}'' is incompatible with compliance level ''{1}''. A compliance level ''1.4''or lower is required
configure.invalidClasspathSection = invalid Class-Path header in manifest of jar file: {0}
configure.multipleClasspathSections = multiple Class-Path headers in manifest of jar file: {0}
configure.missingwarningspropertiesfile=properties file {0} does not exist
configure.ioexceptionwarningspropertiesfile=An IOException occurred while reading the properties file {0}
configure.multipleencodings=Multiple encoding specified: {1}. The default encoding has been set to {0}
configure.differentencodings=Found encoding {0}. Different encodings were specified: {1}
configure.differentencoding=Found encoding {0}. A different encoding was specified: {1}

### null annotations
configure.invalidNullAnnot = Token {0} is not in the expected format "nullAnnot(<non null annotation name> | <nullable annotation name> | <non-null by default annotation name>)"
configure.missingAnnotationPath = Missing argument to -annotationpath at ''{0}''

### requestor
requestor.error = {0}. ERROR in {1}
requestor.warning = {0}. WARNING in {1}
requestor.info = {0}. INFO in {1}
requestor.extraerror = {0}. ERROR:
requestor.extrawarning = {0}. WARNING:
requestor.extrainfo = {0}. INFO:
requestor.notRetrieveErrorMessage = Cannot retrieve the error message for {0}
requestor.noFileNameSpecified = (original file name is not available)

### EMACS STYLE
output.emacs.error=error
output.emacs.warning=warning
output.emacs.info=info

### unit
unit.more = File {0} is specified more than once
unit.missing = File {0} is missing

### output
output.noClassFileCreated = No .class file created for file {1} in {0} because of an IOException: {2}

### miscellaneous
misc.version = {0} {1}, {2}
misc.usage = {1} {2}\n\
{3}\n\
\ \n\
\ Usage: <options> <source files | directories>\n\
\ If directories are specified, then their source contents are compiled.\n\
\ Possible options are listed below. Options enabled by default are prefixed\n\
\ with ''+''.\n\
\ \n\
\ Classpath options:\n\
\    -cp -classpath <directories and ZIP archives separated by {0}>\n\
\                       specify location for application classes and sources.\n\
\                       Each directory or file can specify access rules for\n\
\                       types between ''['' and '']'' (e.g. [-X] to forbid\n\
\                       access to type X, [~X] to discourage access to type X,\n\
\                       [+p/X{0}-p/*] to forbid access to all types in package p\n\
\                       but allow access to p/X)\n\
\    -bootclasspath <directories and ZIP archives separated by {0}>\n\
\                       specify location for system classes. Each directory or\n\
\                       file can specify access rules for types between ''[''\n\
\                       and '']''\n\
\    -sourcepath <directories and ZIP archives separated by {0}>\n\
\                       specify location for application sources. Each directory\n\
\                       or file can specify access rules for types between ''[''\n\
\                       and '']''. Each directory can further specify a specific\n\
\                       destination directory using a ''-d'' option between ''[''\n\
\                       and '']''; this overrides the general ''-d'' option.\n\
\                       .class files created from source files contained in a\n\
\                       jar file are put in the user.dir folder in case no\n\
\                       general ''-d'' option is specified. ZIP archives cannot\n\
\                       override the general ''-d'' option\n\
\    -extdirs <directories separated by {0}>\n\
\                       specify location for extension ZIP archives\n\
\    -endorseddirs <directories separated by {0}>\n\
\                       specify location for endorsed ZIP archives\n\
\    -d <dir>           destination directory (if omitted, no directory is\n\
\                       created); this option can be overridden per source\n\
\                       directory\n\
\    -d none            generate no .class files\n\
\    -encoding <enc>    specify default encoding for all source files. Each\n\
\                       file/directory can override it when suffixed with\n\
\                       ''[''<enc>'']'' (e.g. X.java[utf8]).\n\
\                       If multiple default encodings are specified, the last\n\
\                       one will be used.\n\
\ \n\
\ Compliance options:\n\
\    -1.3               use 1.3 compliance (-source 1.3 -target 1.1)\n\
\    -1.4             + use 1.4 compliance (-source 1.3 -target 1.2)\n\
\    -1.5 -5 -5.0       use 1.5 compliance (-source 1.5 -target 1.5)\n\
\    -1.6 -6 -6.0       use 1.6 compliance (-source 1.6 -target 1.6)\n\
\    -1.7 -7 -7.0       use 1.7 compliance (-source 1.7 -target 1.7)\n\
\    -1.8 -8 -8.0       use 1.8 compliance (-source 1.8 -target 1.8)\n\
\    -source <version>  set source level: 1.3 to 1.8 (or 5, 5.0, etc)\n\
\    -target <version>  set classfile target: 1.1 to 1.8 (or 5, 5.0, etc)\n\
\                       cldc1.1 can also be used to generate the StackMap\n\
\                       attribute\n\
\ \n\
\ Warning options:\n\
\    -deprecation     + deprecation outside deprecated code (equivalent to\n\
\                       -warn:+deprecation)\n\
\    -nowarn -warn:none disable all warnings\n\
\    -nowarn:[<directories separated by {0}>]\n\
\                       specify directories from which optional problems should\n\
\                       be ignored\n\
\    -?:warn -help:warn display advanced warning options\n\
\ \n\
\ Error options:\n\
\    -err:<warnings separated by ,>    convert exactly the listed warnings\n\
\                                      to be reported as errors\n\
\    -err:+<warnings separated by ,>   enable additional warnings to be\n\
\                                      reported as errors\n\
\    -err:-<warnings separated by ,>   disable specific warnings to be\n\
\                                      reported as errors\n\
\ \n\
\ Info options:\n\
\    -info:<warnings separated by ,>    convert exactly the listed warnings\n\
\                                      to be reported as infos\n\
\    -info:+<warnings separated by ,>   enable additional warnings to be\n\
\                                      reported as infos\n\
\    -info:-<warnings separated by ,>   disable specific warnings to be\n\
\                                      reported as infos\n\
\ \n\
\ Setting warning, error or info options using properties file:\n\
\    -properties <file>   set warnings/errors/info option based on the properties\n\
\                          file contents. This option can be used with -nowarn,\n\
\                          -err:.., -info: or -warn:.. options, but the last one\n\
\                          on the command line sets the options to be used.\n\
\ \n\
\ Debug options:\n\
\    -g[:lines,vars,source] custom debug info\n\
\    -g:lines,source  + both lines table and source debug info\n\
\    -g                 all debug info\n\
\    -g:none            no debug info\n\
\    -preserveAllLocals preserve unused local vars for debug purpose\n\
\ \n\
\ Annotation processing options:\n\
\   These options are meaningful only in a 1.6 environment.\n\
\    -Akey[=value]        options that are passed to annotation processors\n\
\    -processorpath <directories and ZIP archives separated by {0}>\n\
\                         specify locations where to find annotation processors.\n\
\                         If this option is not used, the classpath will be\n\
\                         searched for processors\n\
\    -processor <class1[,class2,...]>\n\
\                         qualified names of the annotation processors to run.\n\
\                         This bypasses the default annotation discovery process\n\
\    -proc:only           run annotation processors, but do not compile\n\
\    -proc:none           perform compilation but do not run annotation\n\
\                         processors\n\
\    -s <dir>             destination directory for generated source files\n\
\    -XprintProcessorInfo print information about which annotations and elements\n\
\                         a processor is asked to process\n\
\    -XprintRounds        print information about annotation processing rounds\n\
\    -classNames <className1[,className2,...]>\n\
\                         qualified names of binary classes to process\n\
\ \n\
\ Advanced options:\n\
\    @<file>            read command line arguments from file\n\
\    -maxProblems <n>   max number of problems per compilation unit (100 by\n\
\                       default)\n\
\    -log <file>        log to a file. If the file extension is ''.xml'', then\n\
\                       the log will be a xml file.\n\
\    -proceedOnError[:Fatal]\n\
\                       do not stop at first error, dumping class files with\n\
\                       problem methods\n\
\                       With ":Fatal", all optional errors are treated as fatal\n\
\    -verbose           enable verbose output\n\
\    -referenceInfo     compute reference info\n\
\    -progress          show progress (only in -log mode)\n\
\    -time              display speed information \n\
\    -noExit            do not call System.exit(n) at end of compilation (n==0\n\
\                       if no error)\n\
\    -repeat <n>        repeat compilation process <n> times for perf analysis\n\
\    -inlineJSR         inline JSR bytecode (implicit if target >= 1.5)\n\
\    -enableJavadoc     consider references in javadoc\n\
\    -parameters        generate method parameters attribute (for target >= 1.8)\n\
\    -genericsignature  generate generic signature for lambda expressions\n\
\    -Xemacs            used to enable emacs-style output in the console.\n\
\                       It does not affect the xml log output\n\
\    -missingNullDefault  report missing default nullness annotation\n\
\    -annotationpath <directories and ZIP archives separated by {0}>\n\
\                       specify locations where to find external annotations\n\
\                       to support annotation-based null analysis.\n\
\                       The special name CLASSPATH will cause lookup of\n\
\                       external annotations from the classpath and sourcepath.\n\
\ \n\
\    -? -help           print this help message\n\
\    -v -version        print compiler version\n\
\    -showversion       print compiler version and continue\n\
\ \n\
\ Ignored options:\n\
\    -J<option>         pass option to virtual machine (ignored)\n\
\    -X<option>         specify non-standard option (ignored\n\
\                       except for listed -X options)\n\
\    -X                 print non-standard options and exit (ignored)\n\
\    -O                 optimize for execution time (ignored)\n
misc.usage.warn = {1} {2}\n\
{3}\n\
\ \n\
\ Warning options:\n\
\    -deprecation         + deprecation outside deprecated code\n\
\    -nowarn -warn:none disable all warnings and infos\n\
\    -nowarn:[<directories separated by {0}>]\n\
\                       specify directories from which optional problems should\n\
\                       be ignored\n\
\    -warn:<warnings separated by ,>    enable exactly the listed warnings\n\
\    -warn:+<warnings separated by ,>   enable additional warnings\n\
\    -warn:-<warnings separated by ,>   disable specific warnings\n\
\      all                  enable all warnings\n\
\      allDeadCode          dead code including trivial if(DEBUG) check\n\
\      allDeprecation       deprecation including inside deprecated code\n\
\      allJavadoc           invalid or missing javadoc\n\
\      allOver-ann          all missing @Override annotations\n\
\      all-static-method    all method can be declared as static warnings\n\
\      assertIdentifier   + ''assert'' used as identifier\n\
\      boxing               autoboxing conversion\n\
\      charConcat         + char[] in String concat\n\
\      compareIdentical   + comparing identical expressions\n\
\      conditionAssign      possible accidental boolean assignment\n\
\      constructorName    + method with constructor name\n\
\      deadCode           + dead code excluding trivial if (DEBUG) check\n\
\      dep-ann              missing @Deprecated annotation\n\
\      deprecation        + deprecation outside deprecated code\n\
\      discouraged        + use of types matching a discouraged access rule\n\
\      emptyBlock           undocumented empty block\n\
\      enumIdentifier       ''enum'' used as identifier\n\
\      enumSwitch           incomplete enum switch\n\
\      enumSwitchPedantic + report missing enum switch cases even\n\
\                           in the presence of a default case\n\
\      fallthrough          possible fall-through case\n\
\      fieldHiding          field hiding another variable\n\
\      finalBound           type parameter with final bound\n\
\      finally            + finally block not completing normally\n\
\      forbidden          + use of types matching a forbidden access rule\n\
\      hashCode              missing hashCode() method when overriding equals()\n\
\      hiding               macro for fieldHiding, localHiding, typeHiding and\n\
\                           maskedCatchBlock\n\
\      includeAssertNull    raise null warnings for variables\n\
\                           that got tainted in an assert expression\n\
\      indirectStatic       indirect reference to static member\n\
\      inheritNullAnnot     inherit null annotations\n\
\      intfAnnotation     + annotation type used as super interface\n\
\      intfNonInherited   + interface non-inherited method compatibility\n\
\      intfRedundant        find redundant superinterfaces\n\
\      invalidJavadoc       all warnings for malformed javadoc tags\n\
\      invalidJavadocTag    validate javadoc tag arguments\n\
\      invalidJavadocTagDep validate deprecated references in javadoc tag args\n\
\      invalidJavadocTagNotVisible  validate non-visible references in javadoc\n\
\							tag args\n\
\      invalidJavadocVisibility(<visibility>)  specify visibility modifier\n\
\							for malformed javadoc tag warnings\n\
\      javadoc              invalid javadoc\n\
\      localHiding          local variable hiding another variable\n\
\      maskedCatchBlock   + hidden catch block\n\
\      missingJavadocTags   missing Javadoc tags\n\
\      missingJavadocTagsOverriding missing Javadoc tags in overriding methods\n\
\      missingJavadocTagsMethod missing Javadoc tags for method type parameter\n\
\      missingJavadocTagsVisibility(<visibility>)  specify visibility modifier\n\
\							for missing javadoc tags warnings\n\
\      missingJavadocComments   missing Javadoc comments\n\
\      missingJavadocCommentsOverriding   missing Javadoc tags in overriding\n\
\							methods\n\
\      missingJavadocCommentsVisibility(<visibility>)  specify visibility\n\
\							modifier for missing javadoc comments warnings\n\
\      nls                  string literal lacking non-nls tag //$NON-NLS-<n>$\n\
\      noEffectAssign     + assignment without effect\n\
\      null                 potential missing or redundant null check\n\
\      nullAnnot(<annot. names separated by |>)   annotation based null analysis,\n\
\                           nullable|nonnull|nonnullbydefault annotation types\n\
\                           optionally specified using fully qualified names.\n\
\							Enabling this option enables all null-annotation\n\
\							related sub-options. These can be individually\n\
\							controlled using options listed below.\n\
\      nullAnnotConflict    conflict between null annotation specified\n\
\							and nullness inferred. Is effective only with\n\
\							nullAnnot option enabled.\n\
\      nullAnnotRedundant   redundant specification of null annotation. Is\n\
\							effective only with nullAnnot option enabled.\n\
\      nullDereference    + missing null check\n\
\	   nullUncheckedConversion unchecked conversion from non-annotated type\n\
\							to @NonNull type. Is effective only with\n\
\							nullAnnot option enabled.\n\
\      over-ann             missing @Override annotation (superclass)\n\
\      paramAssign          assignment to a parameter\n\
\      pkgDefaultMethod   + attempt to override package-default method\n\
\      raw                + usage of raw type\n\
\      resource           + (pot.) unsafe usage of resource of type Closeable\n\
\      semicolon            unnecessary semicolon, empty statement\n\
\      serial             + missing serialVersionUID\n\
\      specialParamHiding   constructor or setter parameter hiding a field\n\
\      static-method        method can be declared as static\n\
\      static-access        macro for indirectStatic and staticReceiver\n\
\      staticReceiver     + non-static reference to static member\n\
\      super                overriding a method without making a super invocation\n\
\      suppress           + enable @SuppressWarnings\n\
\                           When used with -err:, it can also silence optional\n\
\                           errors and warnings\n\
\      switchDefault        switch statement lacking a default case\n\
\      syncOverride         missing synchronized in synchr. method override\n\
\      syntacticAnalysis    perform syntax-based null analysis for fields\n\
\      syntheticAccess      synthetic access for innerclass\n\
\      tasks(<tags separated by |>) tasks identified by tags inside comments\n\
\      typeHiding         + type parameter hiding another type\n\
\      unavoidableGenericProblems + ignore unavoidable type safety problems\n\
\                                   due to raw APIs\n\
\      unchecked          + unchecked type operation\n\
\      unlikelyCollectionMethodArgumentType\n\
\                         + unlikely argument type for collection method\n\
\                           declaring an Object parameter\n\
\      unlikelyEqualsArgumentType unlikely argument type for method equals()\n\
\      unnecessaryElse      unnecessary else clause\n\
\      unqualifiedField     unqualified reference to field\n\
\      unused               macro for unusedAllocation, unusedArgument,\n\
\                               unusedImport, unusedLabel, unusedLocal,\n\
\                               unusedPrivate, unusedThrown, and unusedTypeArgs,\n\
\								unusedExceptionParam\n\
\      unusedAllocation     allocating an object that is not used\n\
\      unusedArgument       unread method parameter\n\
\      unusedExceptionParam unread exception parameter\n\
\      unusedImport       + unused import declaration\n\
\      unusedLabel        + unused label\n\
\      unusedLocal        + unread local variable\n\
\      unusedParam		    unused parameter\n\
\      unusedParamOverriding unused parameter for overriding method\n\
\      unusedParamImplementing unused parameter for implementing method\n\
\      unusedParamIncludeDoc unused parameter documented in comment tag\n\
\      unusedPrivate      + unused private member declaration\n\
\      unusedThrown         unused declared thrown exception\n\
\      unusedThrownWhenOverriding unused declared thrown exception in \n\
\							overriding method\n\
\      unusedThrownIncludeDocComment     unused declared thrown exception,\n\
\							documented in a comment tag\n\
\      unusedThrownExemptExceptionThrowable  unused declared thrown exception,\n\
\							exempt Exception and Throwable\n\
\      unusedTypeArgs     + unused type arguments for method and constructor\n\
\      uselessTypeCheck     unnecessary cast/instanceof operation\n\
\      varargsCast        + varargs argument need explicit cast\n\
\      warningToken       + unsupported or unnecessary @SuppressWarnings\n
