CodeQL library for Java
Search

Class TaintTracking::FluentMethod

A method that returns the exact value of its qualifier (e.g., return this;)

Extend this class to add additional value-preserving steps from qualifier to return value through a method that should be added to the basic local flow step relation.

These steps will be visible for all global data-flow purposes, as well as via DataFlow::Node.getASuccessor and other related functions exposing intraprocedural dataflow.

Import path

import semmle.code.java.dataflow.TaintTracking

Direct supertypes

Indirect supertypes

Known direct subtypes

    Predicates

    returnsValue

    Holds if this method returns precisely the value passed into argument arg. arg is a parameter index, or is -1 to indicate the qualifier.

    Inherited predicates

    accesses

    Holds if field f may be either read or written within the body of this callable.

    from Callable
    calls

    Holds if this callable calls target.

    from Callable
    callsConstructor

    Holds if this callable calls c using either a super(...) constructor call or a this(...) constructor call.

    from Callable
    callsImpl

    Holds if c is a viable implementation of a callable called by this callable, taking virtual dispatch resolution into account.

    from Callable
    callsSuper

    Holds if this callable calls target using a super method call.

    from Callable
    callsSuperConstructor

    Holds if this callable calls target using a super(...) constructor call.

    from Callable
    callsThis

    Holds if this callable calls target using a this(...) constructor call.

    from Callable
    contains

    Holds if this element transitively contains the specified element e.

    from Element
    fromSource

    Holds if this element pertains to a source file.

    from Element
    getACallSite

    Gets the call site of a call from this callable to a callee.

    from Callable
    getACallee

    Gets a callee that may be called from this callable.

    from Callable
    getAModifier

    Gets a modifier of this element.

    from Modifiable
    getAParamType

    Gets the type of a formal parameter of this callable.

    from Callable
    getAParameter

    Gets a formal parameter of this callable.

    from Callable
    getAPossibleImplementation

    All the methods that could possibly be called when this method is called. For class methods this includes the method itself and all its overriding methods (if any), and for interface methods this includes matching methods defined on or inherited by implementing classes.

    from Method
    getAPrimaryQlClass

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

    from Method
    getAReference

    Gets a call site that references this callable.

    from Method
    getASourceOverriddenMethod

    Gets the source declaration of a method overridden by this method.

    from Method
    getAThrownExceptionType

    Gets an exception type that occurs in the throws clause of this callable.

    from Callable
    getAnAccessedField

    Gets a field accessed in this callable.

    from Callable
    getAnAnnotation

    Gets an annotation that applies to this element.

    from Annotatable
    getAnException

    Gets an exception that occurs in the throws clause of this callable.

    from Callable
    getAnOverride

    Gets a method (directly or transitively) overridden by this method.

    from Method
    getBody

    Gets the body of this callable, if any.

    from Callable
    getCompilationUnit

    Gets the compilation unit that this element belongs to.

    from Element
    getDeclaringType

    Gets the type in which this member is declared.

    from Member
    getDoc

    Cast this element to a Documentable.

    from Element
    getEnclosingCallable

    Gets the immediately enclosing callable, if this member is declared in an anonymous or local class or interface.

    from Member
    getFile

    Gets the file associated with this element.

    from Top
    getLocation

    Gets the source location for this element.

    from Top
    getMethodDescriptor

    Gets the bytecode method descriptor, encoding parameter and return types, but not the name of the callable.

    from Callable
    getMetrics

    Cast this callable to a class that provides access to metrics information.

    from Callable
    getName

    Gets the name of this element.

    from Element
    getNumberOfCommentLines

    Gets the number of comment lines that this element ranges over.

    from Top
    getNumberOfLinesOfCode

    Gets the number of lines of code that this element ranges over.

    from Top
    getNumberOfParameters

    Gets the number of formal parameters of this callable.

    from Callable
    getParameter

    Gets the formal parameter at the specified (zero-based) position.

    from Callable
    getParameterType

    Gets the type of the formal parameter at the specified (zero-based) position.

    from Callable
    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 member.

    from Member
    getReturnType

    Gets the declared return type of this callable (void for constructors).

    from Callable
    getSignature

    Gets the signature of this callable, where all types in the signature have a fully-qualified name. The parameter types are only separated by a comma (without space). If this callable has no parameters, the callable name is followed by ().

    from Method
    getSourceDeclaration

    Gets the source declaration of this callable.

    from Method
    getStringSignature

    Gets the signature of this callable, including its name and the types of all its parameters, identified by their simple (unqualified) names.

    from Callable
    getTotalNumberOfLines

    Gets the total number of lines that this element ranges over, including lines of code, comment and whitespace-only lines.

    from Top
    hasAnnotation

    Holds if this element has an annotation.

    from Annotatable
    hasAnnotation

    Holds if this element has the specified annotation.

    from Annotatable
    hasChildElement

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

    from Element
    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
    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
    hasNoParameters

    Holds if this callable does not have any formal parameters.

    from Callable
    hasQualifiedName

    Holds if this member has the specified name and is declared in the specified package and type.

    from Member
    hasStringSignature

    Holds if this callable has the specified string signature.

    from Callable
    isAbstract

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

    from Method
    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
    isInheritable

    Holds if this method is neither private nor a static interface method nor an initializer method, and hence could be inherited.

    from Method
    isNative

    Holds if this element has a native modifier.

    from Modifiable
    isOverridable

    Holds if this method can be overridden.

    from Method
    isPackageProtected

    Holds if this member is package protected, that is, neither public nor private nor protected.

    from Member
    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 Method
    isSourceDeclaration

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

    from Callable
    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 Method
    isSynchronized

    Holds if this element has a synchronized modifier.

    from Modifiable
    isTransient

    Holds if this element has a transient modifier.

    from Modifiable
    isVarargs

    Holds if the last parameter of this callable is a varargs (variable arity) parameter.

    from Callable
    isVirtual

    Holds if this method is neither private nor static, and hence uses dynamic dispatch.

    from Method
    isVolatile

    Holds if this element has a volatile modifier.

    from Modifiable
    overrides

    Holds if this method (directly) overrides the specified callable.

    from Method
    overridesOrInstantiates

    Holds if this method either overrides m, or m is the source declaration of this method (and not equal to it).

    from Method
    paramsString

    Gets a parenthesized string containing all parameter types of this callable, separated by a comma and space. For the parameter types the unqualified string representation is used. If this callable has no parameters, the result is ().

    from Callable
    polyCalls

    Holds if this callable may call the specified callable, taking virtual dispatch into account.

    from Callable
    reads

    Holds if field f may be read within the body of this callable.

    from Callable
    sameParamTypes

    Holds if this method and method m are declared in the same type and have the same parameter types.

    from Method
    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
    writes

    Holds if field f may be assigned a value within the body of this callable.

    from Callable