public class QualTransfer<Q> extends Object implements TransferFunction<QualValue<Q>,QualStore<Q>>
TransferFunction
for the Qual Framework.
Extenders should override the methods of interest.
The default for each method is to call the QualTransferAdapter
which calls the corresponding
method in CFTransfer.Modifier and Type | Field and Description |
---|---|
protected QualTransferAdapter<Q> |
adapter |
protected QualAnalysis<Q> |
analysis |
Constructor and Description |
---|
QualTransfer(QualAnalysis<Q> analysis) |
protected final QualAnalysis<Q> analysis
protected QualTransferAdapter<Q> adapter
public QualTransfer(QualAnalysis<Q> analysis)
public void setAdapter(QualTransferAdapter<Q> adapter)
public QualStore<Q> initialStore(UnderlyingAST underlyingAST, List<LocalVariableNode> parameters)
initialStore
in interface TransferFunction<QualValue<Q>,QualStore<Q>>
parameters
is only set if the underlying AST is a method.public TransferResult<QualValue<Q>,QualStore<Q>> visitShortLiteral(ShortLiteralNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitShortLiteral
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitIntegerLiteral(IntegerLiteralNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitIntegerLiteral
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitLongLiteral(LongLiteralNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitLongLiteral
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitFloatLiteral(FloatLiteralNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitFloatLiteral
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitDoubleLiteral(DoubleLiteralNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitDoubleLiteral
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitBooleanLiteral(BooleanLiteralNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitBooleanLiteral
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitCharacterLiteral(CharacterLiteralNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitCharacterLiteral
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitStringLiteral(StringLiteralNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitStringLiteral
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitNullLiteral(NullLiteralNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitNullLiteral
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitNumericalMinus(NumericalMinusNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitNumericalMinus
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitNumericalPlus(NumericalPlusNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitNumericalPlus
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitBitwiseComplement(BitwiseComplementNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitBitwiseComplement
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitNullChk(NullChkNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitNullChk
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitStringConcatenate(StringConcatenateNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitStringConcatenate
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitNumericalAddition(NumericalAdditionNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitNumericalAddition
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitNumericalSubtraction(NumericalSubtractionNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitNumericalSubtraction
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitNumericalMultiplication(NumericalMultiplicationNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitNumericalMultiplication
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitIntegerDivision(IntegerDivisionNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitIntegerDivision
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitFloatingDivision(FloatingDivisionNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitFloatingDivision
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitIntegerRemainder(IntegerRemainderNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitIntegerRemainder
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitFloatingRemainder(FloatingRemainderNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitFloatingRemainder
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitLeftShift(LeftShiftNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitLeftShift
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitSignedRightShift(SignedRightShiftNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitSignedRightShift
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitUnsignedRightShift(UnsignedRightShiftNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitUnsignedRightShift
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitBitwiseAnd(BitwiseAndNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitBitwiseAnd
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitBitwiseOr(BitwiseOrNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitBitwiseOr
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitBitwiseXor(BitwiseXorNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitBitwiseXor
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitStringConcatenateAssignment(StringConcatenateAssignmentNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitStringConcatenateAssignment
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitLessThan(LessThanNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitLessThan
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitLessThanOrEqual(LessThanOrEqualNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitLessThanOrEqual
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitGreaterThan(GreaterThanNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitGreaterThan
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitGreaterThanOrEqual(GreaterThanOrEqualNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitGreaterThanOrEqual
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitEqualTo(EqualToNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitEqualTo
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitNotEqual(NotEqualNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitNotEqual
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitConditionalAnd(ConditionalAndNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitConditionalAnd
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitConditionalOr(ConditionalOrNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitConditionalOr
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitConditionalNot(ConditionalNotNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitConditionalNot
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitTernaryExpression(TernaryExpressionNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitTernaryExpression
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitAssignment(AssignmentNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitAssignment
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitLocalVariable(LocalVariableNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitLocalVariable
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitVariableDeclaration(VariableDeclarationNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitVariableDeclaration
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitFieldAccess(FieldAccessNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitFieldAccess
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitMethodAccess(MethodAccessNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitMethodAccess
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitArrayAccess(ArrayAccessNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitArrayAccess
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitImplicitThisLiteral(ImplicitThisLiteralNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitImplicitThisLiteral
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitExplicitThisLiteral(ExplicitThisLiteralNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitExplicitThisLiteral
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitSuper(SuperNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitSuper
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitReturn(ReturnNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitReturn
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitStringConversion(StringConversionNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitStringConversion
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitNarrowingConversion(NarrowingConversionNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitNarrowingConversion
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitWideningConversion(WideningConversionNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitWideningConversion
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitInstanceOf(InstanceOfNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitInstanceOf
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitTypeCast(TypeCastNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitTypeCast
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitSynchronized(SynchronizedNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitSynchronized
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitAssertionError(AssertionErrorNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitAssertionError
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitThrow(ThrowNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitThrow
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitCase(CaseNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitCase
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitMethodInvocation(MethodInvocationNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitMethodInvocation
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitObjectCreation(ObjectCreationNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitObjectCreation
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitMemberReference(FunctionalInterfaceNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitMemberReference
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitArrayCreation(ArrayCreationNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitArrayCreation
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitArrayType(ArrayTypeNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitArrayType
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitPrimitiveType(PrimitiveTypeNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitPrimitiveType
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitClassName(ClassNameNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitClassName
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitPackageName(PackageNameNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitPackageName
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitParameterizedType(ParameterizedTypeNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitParameterizedType
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>
public TransferResult<QualValue<Q>,QualStore<Q>> visitMarker(MarkerNode n, TransferInput<QualValue<Q>,QualStore<Q>> p)
visitMarker
in interface NodeVisitor<TransferResult<QualValue<Q>,QualStore<Q>>,TransferInput<QualValue<Q>,QualStore<Q>>>