Class TemplateDeclaration

java.lang.Object
de.fraunhofer.aisec.cpg.graph.Node
de.fraunhofer.aisec.cpg.graph.declarations.Declaration
de.fraunhofer.aisec.cpg.graph.declarations.TemplateDeclaration
All Implemented Interfaces:
DeclarationHolder, Persistable, IVisitable<de.fraunhofer.aisec.cpg.graph.Node>
Direct Known Subclasses:
ClassTemplateDeclaration, FunctionTemplateDeclaration

public abstract class TemplateDeclaration
extends Declaration
implements DeclarationHolder
Abstract class representing the template concept
  • Field Details

    • parameters

      protected java.util.List<de.fraunhofer.aisec.cpg.graph.edge.PropertyEdge<Declaration>> parameters
      Parameters the Template requires for instantiation
  • Constructor Details

    • TemplateDeclaration

      public TemplateDeclaration()
  • Method Details

    • getParameters

      public java.util.List<Declaration> getParameters()
    • getParametersOfClazz

      public java.util.List<Declaration> getParametersOfClazz​(java.lang.Class<? extends Declaration> clazz)
    • getParametersPropertyEdge

      public java.util.List<de.fraunhofer.aisec.cpg.graph.edge.PropertyEdge<Declaration>> getParametersPropertyEdge()
    • getParametersWithDefaults

      public java.util.List<Declaration> getParametersWithDefaults()
    • getParameterDefaults

      public java.util.List<de.fraunhofer.aisec.cpg.graph.Node> getParameterDefaults()
    • addParameter

      public void addParameter​(TypeParamDeclaration parameterizedType)
    • addParameter

      public void addParameter​(ParamVariableDeclaration nonTypeTemplateParamDeclaration)
    • getDeclarations

      public @NonNull java.util.List<Declaration> getDeclarations()
      Specified by:
      getDeclarations in interface DeclarationHolder
    • removeParameter

      public void removeParameter​(TypeParamDeclaration parameterizedType)
    • removeParameter

      public void removeParameter​(ParamVariableDeclaration nonTypeTemplateParamDeclaration)
    • getRealizationDeclarations

      public abstract java.util.List<Declaration> getRealizationDeclarations()
    • equals

      public boolean equals​(java.lang.Object o)
      Overrides:
      equals in class de.fraunhofer.aisec.cpg.graph.Node
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class de.fraunhofer.aisec.cpg.graph.Node