java.lang.Object
de.fraunhofer.aisec.cpg.graph.Node
All Implemented Interfaces:
DeclarationHolder, de.fraunhofer.aisec.cpg.graph.HasBase, HasType, HasType.SecondaryTypeEdge, HasType.TypeListener, Persistable, IVisitable<de.fraunhofer.aisec.cpg.graph.Node>
Direct Known Subclasses:
ExplicitConstructorInvocation, MemberCallExpression, StaticCallExpression

public class CallExpression
extends Expression
implements HasType.TypeListener, de.fraunhofer.aisec.cpg.graph.HasBase, HasType.SecondaryTypeEdge
An expression, which calls another function. It has a list of arguments (list of Expressions) and is connected via the INVOKES edge to its FunctionDeclaration.
  • Field Details

  • Constructor Details

    • CallExpression

      public CallExpression()
  • Method Details

    • getBase

      @NotNull public Expression getBase()
      Specified by:
      getBase in interface de.fraunhofer.aisec.cpg.graph.HasBase
    • setBase

      public void setBase​(Expression base)
    • getArguments

      public @NonNull java.util.List<Expression> getArguments()
    • setArgument

      public void setArgument​(int index, Expression argument)
    • getArgumentsPropertyEdge

      public @NonNull java.util.List<de.fraunhofer.aisec.cpg.graph.edge.PropertyEdge<Expression>> getArgumentsPropertyEdge()
    • addArgument

      public void addArgument​(Expression expression)
    • addArgument

      public void addArgument​(Expression expression, @Nullable java.lang.String name)
    • setArguments

      public void setArguments​(java.util.List<Expression> arguments)
    • getInvokes

      public @NonNull java.util.List<FunctionDeclaration> getInvokes()
    • getInvokesPropertyEdge

      public java.util.List<de.fraunhofer.aisec.cpg.graph.edge.PropertyEdge<FunctionDeclaration>> getInvokesPropertyEdge()
    • setInvokes

      public void setInvokes​(java.util.List<FunctionDeclaration> invokes)
    • getSignature

      public java.util.List<Type> getSignature()
    • setTemplate

      public void setTemplate​(boolean template)
    • getTemplateParametersPropertyEdge

      public @Nullable java.util.List<de.fraunhofer.aisec.cpg.graph.edge.PropertyEdge<de.fraunhofer.aisec.cpg.graph.Node>> getTemplateParametersPropertyEdge()
    • getTemplateParameters

      public @Nullable java.util.List<de.fraunhofer.aisec.cpg.graph.Node> getTemplateParameters()
    • getTypeTemplateParameters

      public @Nullable java.util.List<Type> getTypeTemplateParameters()
    • addTemplateParameter

      public void addTemplateParameter​(Type typeTemplateParam, TemplateDeclaration.TemplateInitialization templateInitialization)
    • replaceTypeTemplateParameter

      public void replaceTypeTemplateParameter​(Type oldType, Type newType)
    • addTemplateParameter

      public void addTemplateParameter​(Expression expressionTemplateParam, TemplateDeclaration.TemplateInitialization templateInitialization)
    • addTemplateParameter

      public void addTemplateParameter​(de.fraunhofer.aisec.cpg.graph.Node templateParam, TemplateDeclaration.TemplateInitialization templateInitialization)
    • addExplicitTemplateParameter

      public void addExplicitTemplateParameter​(de.fraunhofer.aisec.cpg.graph.Node templateParameter)
    • addExplicitTemplateParameters

      public void addExplicitTemplateParameters​(java.util.List<de.fraunhofer.aisec.cpg.graph.Node> templateParameters)
    • removeRealization

      public void removeRealization​(de.fraunhofer.aisec.cpg.graph.Node templateParam)
    • setTemplateParameters

      public void setTemplateParameters​(java.util.List<de.fraunhofer.aisec.cpg.graph.edge.PropertyEdge<de.fraunhofer.aisec.cpg.graph.Node>> templateParameters)
    • getTemplateInstantiation

      public @Nullable TemplateDeclaration getTemplateInstantiation()
    • setTemplateInstantiation

      public void setTemplateInstantiation​(TemplateDeclaration templateInstantiation)
    • updateTemplateParameters

      public void updateTemplateParameters​(java.util.Map<de.fraunhofer.aisec.cpg.graph.Node,​TemplateDeclaration.TemplateInitialization> initializationType, java.util.List<de.fraunhofer.aisec.cpg.graph.Node> orderedInitializationSignature)
    • instantiatesTemplate

      public boolean instantiatesTemplate()
    • typeChanged

      public void typeChanged​(HasType src, HasType root, Type oldType)
      Specified by:
      typeChanged in interface HasType.TypeListener
    • possibleSubTypesChanged

      public void possibleSubTypesChanged​(HasType src, HasType root, java.util.Set<Type> oldSubTypes)
      Specified by:
      possibleSubTypesChanged in interface HasType.TypeListener
    • toString

      @NotNull public java.lang.String toString()
      Overrides:
      toString in class Expression
    • getFqn

      public java.lang.String getFqn()
    • setFqn

      public void setFqn​(java.lang.String fqn)
    • equals

      public boolean equals​(java.lang.Object o)
      Overrides:
      equals in class Expression
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Expression
    • updateType

      public void updateType​(java.util.Collection<Type> typeState)
      Specified by:
      updateType in interface HasType.SecondaryTypeEdge