Make the Grantlee::Node::render method const.
[grantlee:grantlee.git] / templates / lib / nodebuiltins_p.h
1 /*
2   This file is part of the Grantlee template system.
3
4   Copyright (c) 2009,2010 Stephen Kelly <steveire@gmail.com>
5
6   This library is free software; you can redistribute it and/or
7   modify it under the terms of the GNU Lesser General Public
8   License as published by the Free Software Foundation; either version
9   2.1 of the Licence, or (at your option) any later version.
10
11   This library is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14   Lesser General Public License for more details.
15
16   You should have received a copy of the GNU Lesser General Public
17   License along with this library.  If not, see <http://www.gnu.org/licenses/>.
18
19 */
20
21 #ifndef NODE_BUILTINS_H
22 #define NODE_BUILTINS_H
23
24 #include "node.h"
25
26 namespace Grantlee
27 {
28
29 /**
30   @internal
31
32   A Node for plain text. Plain text is everything between variables, comments and template tags.
33 */
34 class GRANTLEE_TEMPLATES_EXPORT TextNode : public Node
35 {
36   Q_OBJECT
37 public:
38   explicit TextNode( const QString &content, QObject *parent = 0 );
39
40   /* reimp */ void render( OutputStream *stream, Context *c ) const { // krazy:exclude:inline
41     Q_UNUSED( c );
42     ( *stream ) << m_content;
43   }
44
45 private:
46   const QString m_content;
47 };
48
49 /**
50   @internal
51
52   A node for a variable or filter expression substitution.
53 */
54 class GRANTLEE_TEMPLATES_EXPORT VariableNode : public Node
55 {
56   Q_OBJECT
57 public:
58   explicit VariableNode( const FilterExpression &fe, QObject *parent = 0 );
59
60   /* reimp */ void render( OutputStream *stream, Context *c ) const;
61
62 private:
63   FilterExpression m_filterExpression;
64 };
65
66 }
67
68 #endif