Grantlee 5.3.0

Public Member Functions | Protected Member Functions | List of all members
Grantlee::Node Class Referenceabstract

Base class for all nodes. More...

`#include <grantlee/node.h>`

Inheritance diagram for Grantlee::Node:
[legend]

## Public Member Functions
| Node (QObject *parent={})
| ~Node () override
virtual void | render (OutputStream *stream, Context *c) const =0

## Protected Member Functions
TemplateImpl * | containerTemplate () const
void | streamValueInContext (OutputStream *stream, const QVariant &input, Grantlee::Context *c) const

## Detailed Description

The Node class can be implemented to make additional functionality available to Templates.

A node is represented in template markup as content surrounded by percent signed tokens.

text content
{% some_tag arg1 arg2 %}
text content
{% some_other_tag arg1 arg2 %}
text content
{% end_some_other_tag %}
text content

This is parsed into a tree of Node objects by an implementation of AbstractNodeFactory. The Node objects can then later be rendered by their render method.

Rendering a Node will usually mean writing some output to the stream. The content written to the stream could be determined by the arguments to the tag, or by the content of child nodes between a start and end tag, or both.

See also
  FilterExpression
  Tags

Author
  Stephen Kelly steve.nosp@m.ire@.nosp@m.gmail.nosp@m..com

Definition at line 82 of file node.h.

## Constructor & Destructor Documentation

## ◆ Node()

Grantlee::Node::Node | ( | QObject * | parent = `{}` | ) |
| explicit

Constructor.

Parameters

  parent | The parent QObject

## ◆ ~Node()

Grantlee::Node::~Node | ( |  | ) |
| override

Destructor.

## Member Function Documentation

## ◆ containerTemplate()

TemplateImpl * Grantlee::Node::containerTemplate | ( |  | ) | const
| protected

Returns a raw pointer to the Template this Node is in.

## ◆ render()

virtual void Grantlee::Node::render | ( | OutputStream * | stream,
|  | Context * | c
| ) |  | const
| pure virtual

Reimplement this to render the template in the Context `c`.

This will also involve calling render on and child nodes.

## ◆ streamValueInContext()

void Grantlee::Node::streamValueInContext | ( | OutputStream * | stream,
|  | const QVariant & | input,
|  | Grantlee::Context * | c
| ) |  | const
| protected

Renders the value `input` in the Context `c`. This will involve escaping `input` if necessary.

This is only relevant to developing template tags.