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>>>