Class CategorizedProblem
- java.lang.Object
-
- org.eclipse.jdt.core.compiler.CategorizedProblem
-
- All Implemented Interfaces:
IProblem
public abstract class CategorizedProblem extends Object implements IProblem
Richer description of a Java problem, as detected by the compiler or some of the underlying technology reusing the compiler. With the introduction oforg.eclipse.jdt.core.compiler.CompilationParticipant
, the simpler problem interfaceIProblem
did not carry enough information to better separate and categorize Java problems. In order to minimize impact on existing API, Java problems are still passed around asIProblem
, though actual implementations should explicitly extendCategorizedProblem
. Participants can produce their own problem definitions, and given these are categorized problems, they can be better handled by clients (such as user interface).A categorized problem provides access to:
- its location (originating source file name, source position, line number)
- its message description
- predicates to check its severity (error, warning, or info)
- its ID : a number identifying the very nature of this problem. All possible IDs for standard Java
problems are listed as constants on
IProblem
. - its marker type : a string identifying the problem creator. It corresponds to the marker type chosen if this problem was to be persisted. Standard Java problems are associated to marker type "org.eclipse.jdt.core.problem").
- its category ID : a number identifying the category this problem belongs to. All possible IDs for standard Java problem categories are listed in this class.
Note: the compiler produces IProblems internally, which are turned into markers by the JavaBuilder so as to persist problem descriptions. This explains why there is no API allowing to reach IProblem detected when compiling. However, the Java problem markers carry equivalent information to IProblem, in particular their ID (attribute "id") is set to one of the IDs defined on this interface.
Note: Standard Java problems produced by Java default tooling will be subclasses of this class. Technically, most API methods dealing with problems are referring to
IProblem
for backward compatibility reason. It is intended thatCategorizedProblem
will be subclassed for custom problem implementation when participating in compilation operations, so as to allow participant to contribute their own marker types, and thus defining their own domain specific problem/category IDs.Note: standard Java problems produced by Java default tooling will set the marker
IMarker#SOURCE_ID
attribute toJavaBuilder#SOURCE_ID
; compiler participants may specify theIMarker#SOURCE_ID
attribute of their markers by adding it to the extra marker attributes of the problems they generate; markers resulting from compiler participants' problems that do not have theIMarker#SOURCE_ID
extra attribute set do not have theJavaBuilder#SOURCE_ID
attribute set either.- Since:
- 3.2
-
-
Field Summary
Fields Modifier and Type Field Description static int
CAT_BUILDPATH
Category for problems related to buildpathstatic int
CAT_CODE_STYLE
Category for optional problems related to coding style practicesstatic int
CAT_COMPLIANCE
static int
CAT_DEPRECATION
Category for optional problems related to deprecationstatic int
CAT_IMPORT
Category for fatal problems in import statementsstatic int
CAT_INTERNAL
Category for fatal problems which could not be addressed by external changes, but require an edit to be addressedstatic int
CAT_JAVADOC
Category for optional problems in Javadocstatic int
CAT_MEMBER
Category for fatal problems related to type members, could be addressed by some field or method changestatic int
CAT_MODULE
Category for fatal problems relating to modulesstatic int
CAT_NAME_SHADOWING_CONFLICT
Category for optional problems related to naming conflictsstatic int
CAT_NLS
Category for optional problems related to internationalization of String literalsstatic int
CAT_POTENTIAL_PROGRAMMING_PROBLEM
Category for optional problems related to potential programming flawsstatic int
CAT_PREVIEW_RELATED
Category for problems related to preview featuresstatic int
CAT_RESTRICTION
Category for optional problems related to access restrictionsstatic int
CAT_SYNTAX
Category for fatal problems related to syntaxstatic int
CAT_TYPE
Category for fatal problems related to types, could be addressed by some type changestatic int
CAT_UNCHECKED_RAW
Category for optional problems related to type safety in genericsstatic int
CAT_UNNECESSARY_CODE
Category for optional problems related to unnecessary codestatic int
CAT_UNSPECIFIED
List of standard category IDs used by Java problems, more categories will be added in the future.-
Fields inherited from interface org.eclipse.jdt.core.compiler.IProblem
AbstractMethodCannotBeOverridden, AbstractMethodInAbstractClass, AbstractMethodInEnum, AbstractMethodMustBeImplemented, AbstractMethodMustBeImplementedOverConcreteMethod, AbstractMethodsInConcreteClass, AbstractServiceImplementation, AmbiguousConstructor, AmbiguousConstructorInDefaultConstructor, AmbiguousConstructorInImplicitConstructorCall, AmbiguousField, AmbiguousMethod, AmbiguousType, AnnotatedTypeArgumentToUnannotated, AnnotatedTypeArgumentToUnannotatedSuperHint, AnnotationCannotOverrideMethod, AnnotationCircularity, AnnotationCircularitySelfReference, AnnotationFieldNeedConstantInitialization, AnnotationMembersCannotHaveParameters, AnnotationMembersCannotHaveTypeParameters, AnnotationTypeDeclarationCannotHaveConstructor, AnnotationTypeDeclarationCannotHaveSuperclass, AnnotationTypeDeclarationCannotHaveSuperinterfaces, AnnotationTypeUsedAsSuperInterface, AnnotationValueMustBeAnEnumConstant, AnnotationValueMustBeAnnotation, AnnotationValueMustBeArrayInitializer, AnnotationValueMustBeClassLiteral, AnnotationValueMustBeConstant, AnonymousClassCannotExtendFinalClass, ApplicableMethodOverriddenByInapplicable, ArgumentHidingField, ArgumentHidingLocalVariable, ArgumentIsNeverUsed, ArgumentTypeAmbiguous, ArgumentTypeCannotBeVoid, ArgumentTypeCannotBeVoidArray, ArgumentTypeInheritedNameHidesEnclosingName, ArgumentTypeInternalNameProvided, ArgumentTypeNotFound, ArgumentTypeNotVisible, ArrayConstantsOnlyInArrayInitializers, ArrayReferencePotentialNullReference, ArrayReferenceRequired, ArrowInCaseStatementsNotSupported, AssignmentHasNoEffect, AssignmentToMultiCatchParameter, AssignmentToResource, AutoManagedResourceNotBelow17, AutoManagedVariableResourceNotBelow9, BinaryLiteralNotBelow17, BodyForAbstractMethod, BodyForNativeMethod, BoundCannotBeArray, BoundHasConflictingArguments, BoundMustBeAnInterface, BoxingConversion, BytecodeExceeds64KLimit, BytecodeExceeds64KLimitForClinit, BytecodeExceeds64KLimitForConstructor, BytecodeExceeds64KLimitForSwitchTable, CannotAllocateVoidArray, CannotDeclareEnumSpecialMethod, CannotDefineAnnotationInLocalType, CannotDefineDimensionExpressionsWithInit, CannotDefineEnumInLocalType, CannotDefineInterfaceInLocalType, CannotDefineStaticInitializerInLocalType, CannotExtendEnum, CannotHideAnInstanceMethodWithAStaticMethod, CannotImplementIncompatibleNullness, CannotImportPackage, CannotInferElidedTypes, CannotInferInvocationType, CannotInvokeSuperConstructorInEnum, CannotOverrideAStaticMethodWithAnInstanceMethod, CannotReadSource, CannotReturnInInitializer, CannotThrowNull, CannotThrowType, CannotUseDiamondWithAnonymousClasses, CannotUseDiamondWithExplicitTypeArguments, CannotUseSuperInCodeSnippet, ClassExtendFinalClass, CodeCannotBeReached, CodeSnippetMissingClass, CodeSnippetMissingMethod, ComparingIdentical, Compliance, ConflictingImport, ConflictingInheritedNullAnnotations, ConflictingNullAnnotations, ConflictingPackageFromModules, ConflictingPackageFromOtherModules, ConstNonNullFieldComparisonYieldsFalse, ConstructedArrayIncompatible, ConstructionTypeMismatch, ConstructorReferenceNotBelow18, ConstructorRelated, ConstructorVarargsArgumentNeedCast, ContainerAnnotationTypeHasNonDefaultMembers, ContainerAnnotationTypeHasShorterRetention, ContainerAnnotationTypeHasWrongValueType, ContainerAnnotationTypeMustHaveValue, ContradictoryNullAnnotations, ContradictoryNullAnnotationsInferred, ContradictoryNullAnnotationsInferredFunctionType, ContradictoryNullAnnotationsOnBound, CorruptedSignature, CyclicModuleDependency, DanglingReference, DeadCode, DefaultMethodNotBelow18, DefaultMethodOverridesObjectMethod, DereferencingNullableExpression, DiamondNotBelow17, DirectInvocationOfAbstractMethod, DisallowedExplicitThisParameter, DisallowedTargetForAnnotation, DisallowedTargetForContainerAnnotationType, DiscouragedReference, DuplicateAnnotation, DuplicateAnnotationMember, DuplicateAnnotationNotMarkedRepeatable, DuplicateBlankFinalFieldInitialization, DuplicateBoundInIntersectionCast, DuplicateBounds, DuplicateCase, DuplicateDefaultCase, DuplicateExports, DuplicateField, DuplicateFinalLocalInitialization, DuplicateImport, DuplicateInheritedDefaultMethods, DuplicateInheritedMethods, DuplicateLabel, DuplicateMethod, DuplicateMethodErasure, DuplicateModifierForArgument, DuplicateModifierForField, DuplicateModifierForMethod, DuplicateModifierForType, DuplicateModifierForVariable, DuplicateModuleRef, DuplicateNestedType, DuplicateOpens, DuplicateParameterizedMethods, DuplicateRequires, DuplicateResource, DuplicateServices, DuplicateSuperInterface, DuplicateTargetInTargetAnnotation, DuplicateTypes, DuplicateTypeVariable, DuplicateUses, EmptyControlFlowStatement, EnclosingInstanceInConstructorCall, EndOfSource, EnumAbstractMethodMustBeImplemented, EnumConstantCannotDefineAbstractMethod, EnumConstantMustImplementAbstractMethod, EnumConstantsCannotBeSurroundedByParenthesis, EnumStaticFieldInInInitializerContext, EnumSwitchCannotTargetField, ExceptionParameterIsNeverUsed, ExceptionTypeAmbiguous, ExceptionTypeInheritedNameHidesEnclosingName, ExceptionTypeInternalNameProvided, ExceptionTypeNotFound, ExceptionTypeNotVisible, ExplicitAnnotationTargetRequired, ExplicitlyClosedAutoCloseable, ExplicitThisParameterNotBelow18, ExplicitThisParameterNotInLambda, ExportingForeignPackage, ExpressionShouldBeAVariable, ExternalProblemFixable, ExternalProblemNotFixable, FallthroughCase, FieldComparisonYieldsFalse, FieldHidingField, FieldHidingLocalVariable, FieldMissingDeprecatedAnnotation, FieldMustBeFinal, FieldRelated, FieldTypeAmbiguous, FieldTypeInheritedNameHidesEnclosingName, FieldTypeInternalNameProvided, FieldTypeNotFound, FieldTypeNotVisible, FinalBoundForTypeVariable, FinalFieldAssignment, FinallyMustCompleteNormally, FinalMethodCannotBeOverridden, FinalOuterLocalAssignment, ForbiddenReference, GenericConstructorTypeArgumentMismatch, GenericInferenceError, GenericMethodTypeArgumentMismatch, GenericTypeCannotExtendThrowable, HidingEnclosingType, HierarchyCircularity, HierarchyCircularitySelfReference, HierarchyHasProblems, IgnoreCategoriesMask, IllegalAbstractModifierCombinationForMethod, IllegalAccessFromTypeVariable, IllegalAnnotationForBaseType, IllegalArrayOfUnionType, IllegalArrayTypeInIntersectionCast, IllegalBasetypeInIntersectionCast, IllegalCast, IllegalClassLiteralForTypeVariable, IllegalDeclarationOfThisParameter, IllegalDefaultModifierSpecification, IllegalDefinitionToNonNullParameter, IllegalDimension, IllegalEnclosingInstanceSpecification, IllegalExtendedDimensions, IllegalExtendedDimensionsForVarArgs, IllegalGenericArray, IllegalHexaLiteral, IllegalInstanceofParameterizedType, IllegalInstanceofTypeParameter, IllegalModifierCombinationFinalAbstractForClass, IllegalModifierCombinationFinalVolatileForField, IllegalModifierCombinationForInterfaceMethod, IllegalModifierCombinationForPrivateInterfaceMethod9, IllegalModifierForAnnotationField, IllegalModifierForAnnotationMemberType, IllegalModifierForAnnotationMethod, IllegalModifierForAnnotationType, IllegalModifierForArgument, IllegalModifierForClass, IllegalModifierForConstructor, IllegalModifierForEnum, IllegalModifierForEnumConstant, IllegalModifierForEnumConstructor, IllegalModifierForField, IllegalModifierForInterface, IllegalModifierForInterfaceField, IllegalModifierForInterfaceMethod, IllegalModifierForInterfaceMethod18, IllegalModifierForInterfaceMethod9, IllegalModifierForLocalClass, IllegalModifierForLocalEnum, IllegalModifierForMemberClass, IllegalModifierForMemberEnum, IllegalModifierForMemberInterface, IllegalModifierForMethod, IllegalModifierForModule, IllegalModifierForVariable, IllegalModifiers, IllegalModifiersForElidedType, IllegalParameterNullityRedefinition, IllegalPrimitiveOrArrayTypeForEnclosingInstance, IllegalQualifiedEnumConstantLabel, IllegalQualifiedParameterizedTypeAllocation, IllegalQualifierForExplicitThis, IllegalQualifierForExplicitThis2, IllegalRedefinitionOfTypeVariable, IllegalRedefinitionToNonNullParameter, IllegalReturnNullityRedefinition, IllegalReturnNullityRedefinitionFreeTypeVariable, IllegalStaticModifierForMemberType, IllegalStrictfpForAbstractInterfaceMethod, IllegalTypeAnnotationsInStaticMemberAccess, IllegalTypeArgumentsInRawConstructorReference, IllegalTypeForExplicitThis, IllegalTypeVariableSuperReference, IllegalUnderscorePosition, IllegalUsageOfQualifiedTypeReference, IllegalUsageOfTypeAnnotations, IllegalUseOfUnderscoreAsAnIdentifier, IllegalVararg, IllegalVarargInLambda, IllegalVisibilityModifierCombinationForField, IllegalVisibilityModifierCombinationForMemberType, IllegalVisibilityModifierCombinationForMethod, IllegalVisibilityModifierForInterfaceMemberType, illFormedParameterizationOfFunctionalInterface, ImplicitObjectBoundNoNullDefault, ImportAmbiguous, ImportInheritedNameHidesEnclosingName, ImportInternalNameProvided, ImportNotFound, ImportNotVisible, ImportRelated, IncompatibleExceptionInInheritedMethodThrowsClause, IncompatibleExceptionInThrowsClause, IncompatibleExceptionInThrowsClauseForNonInheritedInterfaceMethod, IncompatibleLambdaParameterType, IncompatibleMethodReference, IncompatibleReturnType, IncompatibleReturnTypeForNonInheritedInterfaceMethod, IncompatibleTypesInConditionalOperator, IncompatibleTypesInEqualityOperator, IncompatibleTypesInForeach, IncorrectArityForParameterizedConstructor, IncorrectArityForParameterizedMethod, IncorrectArityForParameterizedType, IncorrectEnclosingInstanceReference, IncorrectSwitchType, IncorrectSwitchType17, IndirectAccessToStaticField, IndirectAccessToStaticMethod, IndirectAccessToStaticType, InheritedDefaultMethodConflictsWithOtherInherited, InheritedFieldHidesEnclosingName, InheritedIncompatibleReturnType, InheritedMethodHidesEnclosingName, InheritedMethodReducesVisibility, InheritedParameterLackingNonNullAnnotation, InheritedTypeHidesEnclosingName, InitializerMustCompleteNormally, InstanceFieldDuringConstructorInvocation, InstanceMethodDuringConstructorInvocation, InterfaceAmbiguous, InterfaceCannotHaveConstructors, InterfaceCannotHaveInitializers, InterfaceInheritedNameHidesEnclosingName, InterfaceInternalNameProvided, InterfaceNotFound, InterfaceNotFunctionalInterface, InterfaceNotVisible, InterfaceStaticMethodInvocationNotBelow18, InterfaceSuperInvocationNotBelow18, Internal, InternalTypeNameProvided, IntersectionCastNotBelow18, InvalidAnnotationMemberType, InvalidArrayConstructorReference, InvalidBinary, InvalidBreak, InvalidCatchBlockSequence, InvalidCharacterConstant, InvalidClassInstantiation, InvalidContinue, InvalidDigit, InvalidEncoding, InvalidEscape, InvalidExplicitConstructorCall, InvalidExpressionAsStatement, InvalidFileNameForPackageAnnotations, InvalidFloat, InvalidHexa, InvalidHighSurrogate, InvalidInput, InvalidLowSurrogate, InvalidNullToSynchronized, InvalidOctal, InvalidOpensStatement, InvalidOperator, InvalidParameterizedExceptionType, InvalidParenthesizedExpression, InvalidServiceImplType, InvalidServiceIntfType, InvalidTypeArguments, InvalidTypeExpression, InvalidTypeForCollection, InvalidTypeForCollectionTarget14, InvalidTypeForStaticImport, InvalidTypeToSynchronized, InvalidTypeVariableExceptionType, InvalidUnaryExpression, InvalidUnicodeEscape, InvalidUnionTypeReferenceSequence, InvalidUsageOfAnnotationDeclarations, InvalidUsageOfAnnotations, InvalidUsageOfEnumDeclarations, InvalidUsageOfForeachStatements, InvalidUsageOfStaticImports, InvalidUsageOfTypeAnnotations, InvalidUsageOfTypeArguments, InvalidUsageOfTypeParameters, InvalidUsageOfTypeParametersForAnnotationDeclaration, InvalidUsageOfTypeParametersForEnumDeclaration, InvalidUsageOfVarargs, InvalidUsageOfWildcard, InvalidVoidExpression, IsClassPathCorrect, Javadoc, JavadocAmbiguousConstructor, JavadocAmbiguousField, JavadocAmbiguousMethod, JavadocAmbiguousMethodReference, JavadocAmbiguousType, JavadocDuplicateParamName, JavadocDuplicateProvidesTag, JavadocDuplicateReturnTag, JavadocDuplicateTag, JavadocDuplicateThrowsClassName, JavadocDuplicateUsesTag, JavadocEmptyReturnTag, JavadocGenericConstructorTypeArgumentMismatch, JavadocGenericMethodTypeArgumentMismatch, JavadocHiddenReference, JavadocIncorrectArityForParameterizedConstructor, JavadocIncorrectArityForParameterizedMethod, JavadocInheritedFieldHidesEnclosingName, JavadocInheritedMethodHidesEnclosingName, JavadocInheritedNameHidesEnclosingTypeName, JavadocInternalTypeNameProvided, JavadocInvalidMemberTypeQualification, JavadocInvalidParamName, JavadocInvalidParamTagName, JavadocInvalidParamTagTypeParameter, JavadocInvalidProvidesClass, JavadocInvalidProvidesClassName, JavadocInvalidSeeArgs, JavadocInvalidSeeHref, JavadocInvalidSeeReference, JavadocInvalidSeeUrlReference, JavadocInvalidTag, JavadocInvalidThrowsClass, JavadocInvalidThrowsClassName, JavadocInvalidUsesClass, JavadocInvalidUsesClassName, JavadocInvalidValueReference, JavadocMalformedSeeReference, JavadocMessagePrefix, JavadocMissing, JavadocMissingHashCharacter, JavadocMissingIdentifier, JavadocMissingParamName, JavadocMissingParamTag, JavadocMissingProvidesClassName, JavadocMissingProvidesTag, JavadocMissingReturnTag, JavadocMissingSeeReference, JavadocMissingTagDescription, JavadocMissingThrowsClassName, JavadocMissingThrowsTag, JavadocMissingUsesClassName, JavadocMissingUsesTag, JavadocNoMessageSendOnArrayType, JavadocNoMessageSendOnBaseType, JavadocNonGenericConstructor, JavadocNonGenericMethod, JavadocNonStaticTypeFromStaticInvocation, JavadocNotAccessibleType, JavadocNotVisibleConstructor, JavadocNotVisibleField, JavadocNotVisibleMethod, JavadocNotVisibleType, JavadocParameterizedConstructorArgumentTypeMismatch, JavadocParameterizedMethodArgumentTypeMismatch, JavadocParameterMismatch, JavadocTypeArgumentsForRawGenericConstructor, JavadocTypeArgumentsForRawGenericMethod, JavadocUndefinedConstructor, JavadocUndefinedField, JavadocUndefinedMethod, JavadocUndefinedType, JavadocUnexpectedTag, JavadocUnexpectedText, JavadocUnterminatedInlineTag, JavadocUsingDeprecatedConstructor, JavadocUsingDeprecatedField, JavadocUsingDeprecatedMethod, JavadocUsingDeprecatedType, LambdaDescriptorMentionsUnmentionable, LambdaExpressionNotBelow18, lambdaParameterTypeMismatched, LambdaRedeclaresArgument, LambdaRedeclaresLocal, LambdaShapeComputationError, lambdaSignatureMismatched, LocalVariableCannotBeNull, LocalVariableCanOnlyBeNull, LocalVariableHidingField, LocalVariableHidingLocalVariable, LocalVariableIsNeverUsed, LocalVariableMayBeNull, MaskedCatch, MethodButWithConstructorName, MethodCanBePotentiallyStatic, MethodCanBeStatic, MethodMissingDeprecatedAnnotation, MethodMustOverride, MethodMustOverrideOrImplement, MethodNameClash, MethodNameClashHidden, MethodReducesVisibility, MethodReferenceNotBelow18, MethodReferenceSwingsBothWays, MethodRelated, MethodRequiresBody, MethodReturnsVoid, MethodVarargsArgumentNeedCast, MisplacedTypeAnnotations, MissingArgumentsForParameterizedMemberType, MissingDefaultCase, MissingEnclosingInstance, MissingEnclosingInstanceForConstructorCall, MissingEnumConstantCase, MissingEnumConstantCaseDespiteDefault, MissingEnumDefaultCase, MissingNonNullByDefaultAnnotationOnPackage, MissingNonNullByDefaultAnnotationOnType, MissingNullAnnotationImplicitlyUsed, MissingOverrideAnnotation, MissingOverrideAnnotationForInterfaceMethodImplementation, MissingRequiresTransitiveForTypeInAPI, MissingReturnType, MissingSemiColon, MissingSerialVersion, MissingSynchronizedModifierInInheritedMethod, MissingTypeInConstructor, MissingTypeInLambda, MissingTypeInMethod, MissingValueForAnnotationMember, MissingValueFromLambda, ModuleRelated, MultiCatchNotBelow17, MultiConstantCaseLabelsNotSupported, MultipleFunctionalInterfaces, MustDefineEitherDimensionExpressionsOrInitializer, MustSpecifyPackage, NativeMethodsCannotBeStrictfp, NeedToEmulateConstructorAccess, NeedToEmulateFieldReadAccess, NeedToEmulateFieldWriteAccess, NeedToEmulateMethodAccess, NestedServiceImpl, NoAdditionalBoundAfterTypeVariable, NoFieldOnBaseType, NoGenericLambda, NoImplicitStringConversionForCharArrayExpression, NoMessageSendOnArrayType, NoMessageSendOnBaseType, NonBlankFinalLocalAssignment, NonConstantExpression, NonDenotableTypeArgumentForAnonymousDiamond, NonExternalizedStringLiteral, NonGenericConstructor, NonGenericMethod, NonGenericType, NonNullDefaultDetailIsNotEvaluated, NonNullExpressionComparisonYieldsFalse, NonNullLocalVariableComparisonYieldsFalse, NonNullMessageSendComparisonYieldsFalse, NonNullMethodTypeVariableFromLegacyMethod, NonNullSpecdFieldComparisonYieldsFalse, NonNullTypeVariableFromLegacyMethod, NonPublicTypeInAPI, NonStaticAccessToStaticField, NonStaticAccessToStaticMethod, NonStaticContextForEnumMemberType, NonStaticFieldFromStaticInvocation, NonStaticOrAlienTypeReceiver, NonStaticTypeFromStaticInvocation, NoSuperInInterfaceContext, NotAccessibleConstructor, NotAccessibleField, NotAccessibleMethod, NotAccessiblePackage, NotAccessibleType, NotAnnotationType, NotExportedTypeInAPI, NotVisibleConstructor, NotVisibleConstructorInDefaultConstructor, NotVisibleConstructorInImplicitConstructorCall, NotVisibleField, NotVisibleMethod, NotVisibleType, NullableFieldReference, NullAnnotationAtQualifyingType, NullAnnotationUnsupportedLocation, NullAnnotationUnsupportedLocationAtType, NullExpressionReference, NullityMismatchAgainstFreeTypeVariable, NullityMismatchingTypeAnnotation, NullityMismatchingTypeAnnotationSuperHint, NullityMismatchTypeArgument, NullityUncheckedTypeAnnotationDetail, NullityUncheckedTypeAnnotationDetailSuperHint, NullLocalVariableComparisonYieldsFalse, NullLocalVariableInstanceofYieldsFalse, NullLocalVariableReference, NullNotCompatibleToFreeTypeVariable, NullSourceString, NullUnboxing, NumericValueOutOfRange, ObjectCannotBeGeneric, ObjectCannotHaveSuperTypes, ObjectHasNoSuperclass, ObjectMustBeClass, OuterLocalMustBeEffectivelyFinal, OuterLocalMustBeFinal, OverridingDeprecatedMethod, OverridingDeprecatedSinceVersionMethod, OverridingMethodWithoutSuperInvocation, OverridingNonVisibleMethod, OverridingTerminallyDeprecatedMethod, OverridingTerminallyDeprecatedSinceVersionMethod, PackageCollidesWithType, PackageDoesNotExistOrIsEmpty, PackageIsNotExpectedPackage, ParameterAssignment, ParameterizedConstructorArgumentTypeMismatch, ParameterizedMethodArgumentTypeMismatch, ParameterLackingNonNullAnnotation, ParameterLackingNullableAnnotation, ParameterMismatch, ParsingError, ParsingErrorDeleteToken, ParsingErrorDeleteTokens, ParsingErrorInsertToComplete, ParsingErrorInsertToCompletePhrase, ParsingErrorInsertToCompleteScope, ParsingErrorInsertTokenAfter, ParsingErrorInsertTokenBefore, ParsingErrorInvalidToken, ParsingErrorMergeTokens, ParsingErrorMisplacedConstruct, ParsingErrorNoSuggestion, ParsingErrorNoSuggestionForTokens, ParsingErrorOnKeyword, ParsingErrorOnKeywordNoSuggestion, ParsingErrorReplaceTokens, ParsingErrorUnexpectedEOF, PatternVariableNotInScope, PolymorphicMethodNotBelow17, PossibleAccidentalBooleanAssignment, PotentialHeapPollutionFromVararg, PotentiallyUnclosedCloseable, PotentiallyUnclosedCloseableAtExit, PotentialNullExpressionReference, PotentialNullLocalVariableReference, PotentialNullMessageSendReference, PotentialNullUnboxing, PreviewFeatureDisabled, PreviewFeatureNotSupported, PreviewFeaturesNotAllowed, PreviewFeatureUsed, PreviewRelated, ProblemNotAnalysed, ProviderMethodOrConstructorRequiredForServiceImpl, PublicClassMustMatchFileName, RawMemberTypeCannotBeParameterized, RawTypeReference, RecordAccessorMethodHasThrowsClause, RecordAccessorMethodShouldBePublic, RecordAccessorMethodShouldNotBeGeneric, RecordAccessorMethodShouldNotBeStatic, RecordCannotDefineRecordInLocalType, RecordCannotExtendRecord, RecordCanonicalConstructorHasExplicitConstructorCall, RecordCanonicalConstructorHasReturnStatement, RecordCanonicalConstructorHasThrowsClause, RecordCanonicalConstructorShouldBePublic, RecordCanonicalConstructorShouldNotBeGeneric, RecordCompactConstructorHasExplicitConstructorCall, RecordCompactConstructorHasReturnStatement, RecordComponentCannotBeVoid, RecordDuplicateComponent, RecordIllegalAccessorReturnType, RecordIllegalComponentNameInRecord, RecordIllegalModifierForInnerRecord, RecordIllegalModifierForRecord, RecordIllegalNativeModifierInRecord, RecordIllegalVararg, RecordInstanceInitializerBlockInRecord, RecordIsAReservedTypeName, RecordMultipleCanonicalConstructors, RecordNestedRecordInherentlyStatic, RecordNonStaticFieldDeclarationInRecord, RecordStaticReferenceToOuterLocalVariable, RecursiveConstructorInvocation, RedefinedArgument, RedefinedLocal, RedundantLocalVariableNullAssignment, RedundantNullAnnotation, RedundantNullCheckAgainstNonNullType, RedundantNullCheckOnConstNonNullField, RedundantNullCheckOnField, RedundantNullCheckOnNonNullExpression, RedundantNullCheckOnNonNullLocalVariable, RedundantNullCheckOnNonNullMessageSend, RedundantNullCheckOnNonNullSpecdField, RedundantNullCheckOnNullLocalVariable, RedundantNullCheckOnSpecdNonNullLocalVariable, RedundantNullDefaultAnnotation, RedundantNullDefaultAnnotationField, RedundantNullDefaultAnnotationLocal, RedundantNullDefaultAnnotationMethod, RedundantNullDefaultAnnotationModule, RedundantNullDefaultAnnotationPackage, RedundantNullDefaultAnnotationType, RedundantSpecificationOfTypeArguments, RedundantSuperinterface, ReferenceExpressionParameterNullityMismatch, ReferenceExpressionParameterNullityUnchecked, ReferenceExpressionReturnNullRedef, ReferenceExpressionReturnNullRedefUnchecked, ReferenceToForwardField, ReferenceToForwardTypeVariable, RepeatableAnnotationTypeIsDocumented, RepeatableAnnotationTypeIsInherited, RepeatableAnnotationTypeTargetMismatch, RepeatableAnnotationWithRepeatingContainerAnnotation, RepeatedAnnotationWithContainerAnnotation, RequiredNonNullButProvidedFreeTypeVariable, RequiredNonNullButProvidedNull, RequiredNonNullButProvidedPotentialNull, RequiredNonNullButProvidedSpecdNullable, RequiredNonNullButProvidedUnknown, ResourceHasToImplementAutoCloseable, ReturnTypeAmbiguous, ReturnTypeCannotBeVoidArray, ReturnTypeInheritedNameHidesEnclosingName, ReturnTypeInternalNameProvided, ReturnTypeMismatch, ReturnTypeNotFound, ReturnTypeNotVisible, SafeVarargsOnFixedArityMethod, SafeVarargsOnNonFinalInstanceMethod, ServiceImplDefaultConstructorNotPublic, ServiceImplNotDefinedByModule, ShouldImplementHashcode, ShouldReturnValue, ShouldReturnValueHintMissingDefault, SpecdNonNullLocalVariableComparisonYieldsFalse, StaticInheritedMethodConflicts, StaticInterfaceMethodNotBelow18, StaticMemberOfParameterizedType, StaticMethodRequested, StaticMethodShouldBeAccessedStatically, StringConstantIsExceedingUtf8Limit, SuperAccessCannotBypassDirectSuper, SuperCallCannotBypassOverride, SuperclassAmbiguous, SuperclassInheritedNameHidesEnclosingName, SuperclassInternalNameProvided, SuperclassMustBeAClass, SuperclassNotFound, SuperclassNotVisible, SuperfluousSemicolon, SuperInterfaceMustBeAnInterface, SuperInterfacesCollide, SuperTypeUsingWildcard, SwitchExpressionaYieldSwitchLabeledBlockCompletesNormally, SwitchExpressionBreakMissingValue, SwitchExpressionIllegalLastStatement, SwitchExpressionLastStatementCompletesNormally, SwitchExpressionMissingDefaultCase, SwitchExpressionMissingEnumConstantCase, SwitchExpressionsBreakOutOfSwitchExpression, SwitchExpressionsContinueOutOfSwitchExpression, SwitchExpressionsEmptySwitchBlock, SwitchExpressionsIncompatibleResultExpressionTypes, SwitchExpressionsNoResultExpression, SwitchExpressionsNotSupported, SwitchExpressionsReturnWithinSwitchExpression, SwitchExpressionSwitchLabeledBlockCompletesNormally, SwitchExpressionsYieldBreakNotAllowed, SwitchExpressionsYieldEmptySwitchBlock, SwitchExpressionsYieldIllegalLastStatement, SwitchExpressionsYieldIllegalStatement, SwitchExpressionsYieldIncompatibleResultExpressionTypes, SwitchExpressionsYieldLastStatementCompletesNormally, SwitchExpressionsYieldMissingDefaultCase, SwitchExpressionsYieldMissingEnumConstantCase, SwitchExpressionsYieldMissingValue, SwitchExpressionsYieldNoResultExpression, SwitchExpressionsYieldOutsideSwitchExpression, SwitchExpressionsYieldRestrictedGeneralWarning, SwitchExpressionsYieldTrailingSwitchLabels, SwitchExpressionsYieldTypeDeclarationError, SwitchExpressionsYieldTypeDeclarationWarning, SwitchExpressionsYieldUnqualifiedMethodError, SwitchExpressionsYieldUnqualifiedMethodWarning, SwitchExpressionTrailingSwitchLabels, switchMixedCase, SwitchOnEnumNotBelow15, SwitchOnStringsNotBelow17, SwitchPreviewMixedCase, Syntax, TargetTypeNotAFunctionalInterface, Task, ThisInStaticContext, ThisSuperDuringConstructorInvocation, ToleratedMisplacedTypeAnnotations, TooManyArgumentSlots, TooManyArrayDimensions, TooManyBytesForStringConstant, TooManyConstantsInConstantPool, TooManyFields, TooManyLocalVariableSlots, TooManyMethods, TooManyParametersForSyntheticMethod, TooManySyntheticArgumentSlots, TypeAnnotationAtQualifiedName, TypeArgumentMismatch, TypeArgumentsForRawGenericConstructor, TypeArgumentsForRawGenericMethod, TypeCollidesWithPackage, TypeHidingType, TypeHidingTypeParameterFromMethod, TypeHidingTypeParameterFromType, TypeMismatch, TypeMissingDeprecatedAnnotation, TypeParameterHidingType, TypeRelated, UnboxingConversion, UncheckedAccessOfValueOfFreeTypeVariable, Unclassified, UnclosedCloseable, UnclosedCloseableAtExit, UndefinedAnnotationMember, UndefinedConstructor, UndefinedConstructorInDefaultConstructor, UndefinedConstructorInImplicitConstructorCall, UndefinedField, UndefinedLabel, UndefinedMethod, UndefinedModule, UndefinedModuleAddReads, UndefinedName, UndefinedType, UndefinedTypeVariable, UnderscoresInLiteralsNotBelow17, UndocumentedEmptyBlock, UnexpectedStaticModifierForField, UnexpectedStaticModifierForMethod, UnhandledException, UnhandledExceptionInDefaultConstructor, UnhandledExceptionInImplicitConstructorCall, UnhandledExceptionOnAutoClose, UnhandledWarningToken, UninitializedBlankFinalField, UninitializedBlankFinalFieldHintMissingDefault, UninitializedFreeTypeVariableField, UninitializedFreeTypeVariableFieldHintMissingDefault, UninitializedLocalVariable, UninitializedLocalVariableHintMissingDefault, UninitializedNonNullField, UninitializedNonNullFieldHintMissingDefault, UninternedIdentityComparison, UnlikelyCollectionMethodArgumentType, UnlikelyEqualsArgumentType, UnmatchedBracket, UnnamedPackageInNamedModule, UnnecessaryArgumentCast, UnnecessaryCast, UnnecessaryElse, UnnecessaryInstanceof, UnnecessaryNLSTag, UnqualifiedFieldAccess, UnreachableCatch, UnresolvedVariable, UnsafeCast, UnsafeElementTypeConversion, UnsafeGenericArrayForVarargs, UnsafeGenericCast, UnsafeNullnessCast, UnsafeRawConstructorInvocation, UnsafeRawFieldAssignment, UnsafeRawGenericConstructorInvocation, UnsafeRawGenericMethodInvocation, UnsafeRawMethodInvocation, UnsafeReturnTypeOverride, UnsafeTypeConversion, UnstableAutoModuleName, UnterminatedComment, UnterminatedString, UnterminatedTextBlock, UnusedConstructorDeclaredThrownException, UnusedImport, UnusedLabel, UnusedMethodDeclaredThrownException, UnusedObjectAllocation, UnusedPrivateConstructor, UnusedPrivateField, UnusedPrivateMethod, UnusedPrivateType, UnusedTypeArgumentsForConstructorInvocation, UnusedTypeArgumentsForMethodInvocation, UnusedTypeParameter, UnusedWarningToken, UseAssertAsAnIdentifier, UseEnumAsAnIdentifier, UsingDeprecatedConstructor, UsingDeprecatedField, UsingDeprecatedMethod, UsingDeprecatedModule, UsingDeprecatedPackage, UsingDeprecatedSinceVersionConstructor, UsingDeprecatedSinceVersionField, UsingDeprecatedSinceVersionMethod, UsingDeprecatedSinceVersionModule, UsingDeprecatedSinceVersionPackage, UsingDeprecatedSinceVersionType, UsingDeprecatedType, UsingTerminallyDeprecatedConstructor, UsingTerminallyDeprecatedField, UsingTerminallyDeprecatedMethod, UsingTerminallyDeprecatedModule, UsingTerminallyDeprecatedPackage, UsingTerminallyDeprecatedSinceVersionConstructor, UsingTerminallyDeprecatedSinceVersionField, UsingTerminallyDeprecatedSinceVersionMethod, UsingTerminallyDeprecatedSinceVersionModule, UsingTerminallyDeprecatedSinceVersionPackage, UsingTerminallyDeprecatedSinceVersionType, UsingTerminallyDeprecatedType, VarargsConflict, VarargsElementTypeNotVisible, VarargsElementTypeNotVisibleForConstructor, VarCannotBeMixedWithNonVarParams, VariableTypeCannotBeVoid, VariableTypeCannotBeVoidArray, VarIsNotAllowedHere, VarIsReserved, VarIsReservedInFuture, VarLocalCannotBeArray, VarLocalCannotBeArrayInitalizers, VarLocalCannotBeLambda, VarLocalCannotBeMethodReference, VarLocalInitializedToNull, VarLocalInitializedToVoid, VarLocalMultipleDeclarators, VarLocalReferencesItself, VarLocalWithoutInitizalier, VoidMethodReturnsValue, WildcardConstructorInvocation, WildcardFieldAssignment, WildcardMethodInvocation
-
-
Constructor Summary
Constructors Constructor Description CategorizedProblem()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract int
getCategoryID()
Returns an integer identifying the category of this problem.String[]
getExtraMarkerAttributeNames()
Returns the names of the extra marker attributes associated to this problem when persisted into a marker by the JavaBuilder.Object[]
getExtraMarkerAttributeValues()
Returns the respective values for the extra marker attributes associated to this problem when persisted into a marker by the JavaBuilder.abstract String
getMarkerType()
Returns the marker type associated to this problem, if it gets persisted into a marker by the JavaBuilder Standard Java problems are associated to marker type "org.eclipse.jdt.core.problem").boolean
isInfo()
Returns whether the severity of this problem is 'Info'.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.jdt.core.compiler.IProblem
getArguments, getID, getMessage, getOriginatingFileName, getSourceEnd, getSourceLineNumber, getSourceStart, isError, isWarning, setSourceEnd, setSourceLineNumber, setSourceStart
-
-
-
-
Field Detail
-
CAT_UNSPECIFIED
public static final int CAT_UNSPECIFIED
List of standard category IDs used by Java problems, more categories will be added in the future.- See Also:
- Constant Field Values
-
CAT_BUILDPATH
public static final int CAT_BUILDPATH
Category for problems related to buildpath- See Also:
- Constant Field Values
-
CAT_SYNTAX
public static final int CAT_SYNTAX
Category for fatal problems related to syntax- See Also:
- Constant Field Values
-
CAT_IMPORT
public static final int CAT_IMPORT
Category for fatal problems in import statements- See Also:
- Constant Field Values
-
CAT_TYPE
public static final int CAT_TYPE
Category for fatal problems related to types, could be addressed by some type change- See Also:
- Constant Field Values
-
CAT_MEMBER
public static final int CAT_MEMBER
Category for fatal problems related to type members, could be addressed by some field or method change- See Also:
- Constant Field Values
-
CAT_INTERNAL
public static final int CAT_INTERNAL
Category for fatal problems which could not be addressed by external changes, but require an edit to be addressed- See Also:
- Constant Field Values
-
CAT_JAVADOC
public static final int CAT_JAVADOC
Category for optional problems in Javadoc- See Also:
- Constant Field Values
-
CAT_CODE_STYLE
public static final int CAT_CODE_STYLE
Category for optional problems related to coding style practices- See Also:
- Constant Field Values
-
CAT_POTENTIAL_PROGRAMMING_PROBLEM
public static final int CAT_POTENTIAL_PROGRAMMING_PROBLEM
Category for optional problems related to potential programming flaws- See Also:
- Constant Field Values
-
CAT_NAME_SHADOWING_CONFLICT
public static final int CAT_NAME_SHADOWING_CONFLICT
Category for optional problems related to naming conflicts- See Also:
- Constant Field Values
-
CAT_DEPRECATION
public static final int CAT_DEPRECATION
Category for optional problems related to deprecation- See Also:
- Constant Field Values
-
CAT_UNNECESSARY_CODE
public static final int CAT_UNNECESSARY_CODE
Category for optional problems related to unnecessary code- See Also:
- Constant Field Values
-
CAT_UNCHECKED_RAW
public static final int CAT_UNCHECKED_RAW
Category for optional problems related to type safety in generics- See Also:
- Constant Field Values
-
CAT_NLS
public static final int CAT_NLS
Category for optional problems related to internationalization of String literals- See Also:
- Constant Field Values
-
CAT_RESTRICTION
public static final int CAT_RESTRICTION
Category for optional problems related to access restrictions- See Also:
- Constant Field Values
-
CAT_MODULE
public static final int CAT_MODULE
Category for fatal problems relating to modules- Since:
- 3.14
- See Also:
- Constant Field Values
-
CAT_COMPLIANCE
public static final int CAT_COMPLIANCE
- Since:
- 3.18
- See Also:
- Constant Field Values
-
CAT_PREVIEW_RELATED
public static final int CAT_PREVIEW_RELATED
Category for problems related to preview features- Since:
- 3.20
- See Also:
- Constant Field Values
-
-
Method Detail
-
getCategoryID
public abstract int getCategoryID()
Returns an integer identifying the category of this problem. Categories, like problem IDs are defined in the context of some marker type. Custom implementations ofCategorizedProblem
may choose arbitrary values for problem/category IDs, as long as they are associated with a different marker type. Standard Java problem markers (i.e. marker type is "org.eclipse.jdt.core.problem") carry an attribute "categoryId" persisting the originating problem category ID as defined by this method).- Returns:
- id - an integer identifying the category of this problem
-
getMarkerType
public abstract String getMarkerType()
Returns the marker type associated to this problem, if it gets persisted into a marker by the JavaBuilder Standard Java problems are associated to marker type "org.eclipse.jdt.core.problem"). Note: problem markers are expected to extend "org.eclipse.core.resources.problemmarker" marker type.- Returns:
- the type of the marker which would be associated to the problem
-
getExtraMarkerAttributeNames
public String[] getExtraMarkerAttributeNames()
Returns the names of the extra marker attributes associated to this problem when persisted into a marker by the JavaBuilder. Extra attributes are only optional, and are allowing client customization of generated markers. By default, no EXTRA attributes is persisted, and a categorized problem only persists the following attributes:-
IMarker#MESSAGE
->IProblem.getMessage()
-
IMarker#SEVERITY
->IMarker#SEVERITY_ERROR
,IMarker#SEVERITY_WARNING
, orIMarker#SEVERITY_INFO
, depending onIProblem.isError()
,IProblem.isWarning()
, or orIProblem.isInfo()
-
IJavaModelMarker#ID
->IProblem.getID()
-
IMarker#CHAR_START
->IProblem.getSourceStart()
-
IMarker#CHAR_END
->IProblem.getSourceEnd()
-
IMarker#LINE_NUMBER
->IProblem.getSourceLineNumber()
-
IJavaModelMarker#ARGUMENTS
-> someString[]
used to compute quickfixes -
IJavaModelMarker#CATEGORY_ID
->getCategoryID()
IMarker#setAttributes(String[], Object[])
, and there must be as many names as values according togetExtraMarkerAttributeValues()
. Note that extra marker attributes will be inserted after default ones (as described ingetMarkerType()
, and thus could be used to override defaults.- Returns:
- the names of the corresponding marker attributes
-
-
getExtraMarkerAttributeValues
public Object[] getExtraMarkerAttributeValues()
Returns the respective values for the extra marker attributes associated to this problem when persisted into a marker by the JavaBuilder. Each value must correspond to a matching attribute name, as defined bygetExtraMarkerAttributeNames()
. The values must be eligible for marker creation, as defined byIMarker#setAttributes(String[], Object[])}
.- Returns:
- the values of the corresponding extra marker attributes
-
-