CodeQL library for Java/Kotlin
codeql/java-all 4.2.1 (changelog, source)
Search

Class MetricRefType

This class provides access to metrics information for reference types.

Import path

import java

Direct supertypes

Indirect supertypes

Predicates

accessesLocalField

Holds if method m accesses field f and both are declared in this type.

getADependency

Gets a dependency of this element, for use with John Lakos’s “level metric”.

getADepth

Gets the length of some path to the root of the hierarchy.

getADepth

Gets the length of some path to the specified reference type.

getAccessedField

Any field declared in this type that is accessed by a method declared in this type.

getAccessingMethod

Any method declared in this type that accesses a field declared in this type.

getAfferentCoupling

The afferent coupling of a type is the number of types that directly depend on it.

getCyclomaticComplexity

Gets the cyclomatic complexity of a type, estimated as the sum of the cyclomatic complexities of its callables.

getEfferentCoupling

The efferent coupling of a type is the number of types that it directly depends on.

getEfferentSourceCoupling

The efferent source coupling of a type is the number of source types that it directly depends on.

getHalsteadLength

Gets the Halstead length of a type, estimated as the sum of the Halstead lengths of its callables.

getHalsteadVocabulary

Gets the Halstead vocabulary of a type, estimated as the sum of the Halstead vocabularies of its callables.

getInheritanceDepth

Gets the depth of the inheritance tree.

getInheritanceDepth

Gets the depth of inheritance metric relative to the specified reference type.

getLackOfCohesionCK

Gets the Chidamber-Kemerer lack of cohesion metric.

getLackOfCohesionHS

Gets the Henderson-Sellers lack of cohesion metric.

getNumberOfAncestors

Gets the number of (direct or indirect) supertypes.

getNumberOfCallables

Gets the number of callables declared in this type.

getNumberOfChildren

Gets the number of immediate descendants of a reference type.

getNumberOfCommentLines

Gets the number of lines of comments in this reference type.

getNumberOfExplicitFields

Gets the number of fields declared in this type, excluding enum constants.

getNumberOfFields

Gets the number of fields declared in this type.

getNumberOfLinesOfCode

Gets the number of lines of code in this reference type.

getNumberOfPublicCallables

The number of public methods gives an indication of the size of an API provided by a type.

getNumberOverridden

Gets the number of methods that are overridden by this class.

getOverrides

Gets a method that overrides a non-abstract method in a super type.

getPercentageOfComments

Gets the percentage of lines in this reference type that consist of comments.

getResponse

Gets the response for a type.

getSpecialisationIndex

The specialization index metric measures the extent to which subclasses override (replace) the behavior of their ancestor classes. If they override many methods, it is an indication that the original abstraction in the superclasses may have been inappropriate. On the whole, subclasses should add behavior to their superclasses, but not alter that behavior dramatically.

getTotalNumberOfLines

Gets the total number of lines in this reference type, including code, comments and whitespace-only lines.

ignoreOverride

Exclusions from the number of overriding methods, for use with the specialization index metric.

includeInLackOfCohesionCK

Holds if the specified callable should be included in the CK cohesion computation.

Inherited predicates

commonSubtype

A common (reflexive, transitive) subtype of the erasures of types t1 and t2, if it exists.

from RefType
compilerGeneratedReason

Gets the reason this element was generated by the compiler, if any.

from Element
contains

Holds if this element transitively contains the specified element e.

from Element
declaresField

Holds if this type declares a field with the specified name.

from RefType
declaresMethod

Holds if this type declares a method with the specified name.

from RefType
declaresMethod

Holds if this type declares a method with the specified name and number of parameters.

from RefType
extendsOrImplements

Holds if t is an immediate super-type of this type using only the immediate extends or implements relationships. In particular, this excludes parameter containment sub-typing for parameterized types.

from RefType
fromSource

Holds if this element pertains to a source file.

from Element
getACallable

Gets a method or constructor declared in this type.

from RefType
getAConstructor

Gets a constructor declared in this type.

from RefType
getADeclaredAnnotation

Gets an annotation that is declared on this element, excluding inherited annotations. The retention policy of the annotation type is not considered.

from Annotatable
getADependencySrc

Gets a dependency of this element that is from source.

from MetricElement
getADescendant

Gets a direct or indirect descendant of this type, including itself.

from RefType
getAField

Gets a field declared in this type.

from RefType
getALevel

An element has no level defined if it is cyclically dependent on itself. Otherwise, it has:

from MetricElement
getAMember

Gets a member declared in this type.

from RefType
getAMethod

Gets a method declared in this type.

from RefType
getAModifier

Gets a modifier of this element.

from Modifiable
getAPrimaryQlClass

Gets the name of a primary CodeQL class to which this element belongs.

from Top
getASourceSupertype

Gets the source declaration of a direct supertype of this type, excluding itself.

from RefType
getAStrictAncestor

Gets a direct or indirect supertype of this type. This does not include itself, unless this type is part of a cycle in the type hierarchy.

from RefType
getASubtype

Gets a direct subtype of this type.

from RefType
getASupertype

Gets a direct supertype of this type.

from RefType
getAnAncestor

Gets a direct or indirect supertype of this type, including itself.

from RefType
getAnAnnotation

Gets an annotation that applies to this element, including inherited annotations. The results only include direct annotations; indirect annotations, that is repeated annotations in an (implicit) container annotation, are not included. The retention policy of the annotation type is not considered.

from Annotatable
getAnAssociatedAnnotation

Gets an annotation associated with this element, that is: - An annotation directly present on this element, or - An annotation indirectly present on this element (in the form of a repeated annotation), or - If an annotation of a type is neither directly nor indirectly present the result is an associated inherited annotation (recursively)

from Annotatable
getCompilationUnit

Gets the compilation unit in which this type is declared.

from RefType
getDoc

Cast this element to a Documentable.

from Element
getEnclosingType

Gets the type in which this reference type is enclosed, if any.

from RefType
getErasure

Gets the erasure of this type.

from Type
getFile

Gets the file associated with this element.

from Top
getHalsteadVolume

The Halstead volume is the product of Halstead length and binary logarithm of Halstead vocabulary.

from MetricElement
getLevel

John Lakos’ level metric.

from MetricElement
getLocation

Gets the source location for this element.

from Top
getMaintainabilityIndex

The maintainability index is a composite number expressing the ease of maintainability of a program or one of its components.

from MetricElement
getMaintainabilityIndexCommentWeight

Gets the maintainability index comment weight.

from MetricElement
getMaintainabilityIndexWithoutComments

Gets the maintainability index without comment weight.

from MetricElement
getMetrics

Cast this reference type to a class that provides access to metrics information.

from RefType
getName

Gets the name of this element.

from Element
getNestedName

Gets the nested name of this type.

from RefType
getNumberOfMethods

Gets the number of methods declared in this type.

from RefType
getPackage

Gets the package in which this type is declared.

from RefType
getPrimaryQlClasses

Gets a comma-separated list of the names of the primary CodeQL classes to which this element belongs.

from Top
getQualifiedName

Gets the qualified name of this type, consisting of the package name followed by a . and the name of this type.

from RefType
getSourceDeclaration

Gets the source declaration of this type.

from RefType
getTypeDescriptor

Gets the JVM descriptor for this type, as used in bytecode.

from RefType
hasAnnotation

Holds if this element has an annotation, including inherited annotations. The retention policy of the annotation type is not considered.

from Annotatable
hasAnnotation

Holds if this element has the specified annotation, including inherited annotations. The retention policy of the annotation type is not considered.

from Annotatable
hasChildElement

Holds if this element is the immediate parent of the specified element e.

from Element
hasDeclaredAnnotation

Holds if this element has a declared annotation, excluding inherited annotations. The retention policy of the annotation type is not considered.

from Annotatable
hasLocationInfo

Holds if this element is at the specified location. The location spans column startcolumn of line startline to column endcolumn of line endline in file filepath. For more information, see Locations.

from Top
hasMember

Holds if this type declares any members.

from RefType
hasMethod

Holds if this type declares or inherits method m, which is declared in declaringType.

from RefType
hasMethod

Holds if this type declares or inherits method m, which is declared in declaringType. Methods that would be inherited if they were public, but are not inherited due to being package protected, are also included and indicated by hidden being true.

from RefType
hasModifier

Holds if this element has modifier m.

from Modifiable
hasName

Holds if this element has the specified name.

from Element
hasNoModifier

Holds if this element has no modifier.

from Modifiable
hasQualifiedName

Holds if this type is declared in a specified package with the specified name.

from RefType
hasSubtype

Holds if t is an immediate subtype of this type.

from RefType
hasSupertype

Holds if t is an immediate supertype of this type.

from RefType
inherits

Holds if this type declares or inherits the specified member.

from RefType
isAbstract

Holds if this element has an abstract modifier or is implicitly abstract.

from Modifiable
isCompilerGenerated

Holds if this is an auxiliary program element generated by the compiler.

from Element
isCrossinline

Holds if this element has a crossinline modifier.

from Modifiable
isDefault

Holds if this element has a default modifier.

from Modifiable
isFinal

Holds if this element has a final modifier or is implicitly final.

from Modifiable
isIn

Holds if this element has an in modifier.

from Modifiable
isInline

Holds if this element has an inline modifier.

from Modifiable
isInternal

Holds if this element has an internal modifier.

from Modifiable
isLateinit

Holds if this element has a lateinit modifier.

from Modifiable
isNative

Holds if this element has a native modifier.

from Modifiable
isNoinline

Holds if this element has a noinline modifier.

from Modifiable
isOut

Holds if this element has an out modifier.

from Modifiable
isPrivate

Holds if this element has a private modifier or is implicitly private.

from Modifiable
isProtected

Holds if this element has a protected modifier.

from Modifiable
isPublic

Holds if this element has a public modifier or is implicitly public.

from Modifiable
isReified

Holds if this element has a reified modifier.

from Modifiable
isSealedKotlin

Holds if this element has a sealed modifier.

from Modifiable
isSourceDeclaration

Holds if this type is the same as its source declaration.

from RefType
isStatic

Holds if this element has a static modifier or is implicitly static.

from Modifiable
isStrictfp

Holds if this element has a strictfp modifier.

from Modifiable
isStub

Holds if this element is from source and classified as a stub implementation. An implementation is considered a stub, if the the path to the source file contains /stubs/.

from Element
isSuspend

Holds if this element has a suspend modifier.

from Modifiable
isSynchronized

Holds if this element has a synchronized modifier.

from Modifiable
isTopLevel

Holds if this is a top-level type, which is not nested inside any other types.

from RefType
isTransient

Holds if this element has a transient modifier.

from Modifiable
isVolatile

Holds if this element has a volatile modifier.

from Modifiable
nestedName

DEPRECATED: Alias for getNestedName.

from RefType
suppressesWarningsAbout

Holds if this or any enclosing Annotatable has a @SuppressWarnings("<category>") annotation attached to it for the specified category.

from Annotatable
toString

Gets a textual representation of this element.

from Top