Make the Grantlee::Node::render method const.
[grantlee:grantlee.git] / templates / defaulttags / templatetag.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 TEMPLATETAGNODE_H
22 #define TEMPLATETAGNODE_H
23
24 #include "node.h"
25
26 using namespace Grantlee;
27
28 class TemplateTagNodeFactory : public AbstractNodeFactory
29 {
30   Q_OBJECT
31 public:
32   TemplateTagNodeFactory();
33
34   Node* getNode( const QString &tagContent, Parser *p ) const;
35 };
36
37 class TemplateTagNode : public Node
38 {
39   Q_OBJECT
40 public:
41
42   /**
43   The expression.
44   Nodes to render if the expression is true
45   Nodes to render if the expression is false
46   */
47   explicit TemplateTagNode( const QString &tagName, QObject *parent = 0 );
48
49   void render( OutputStream *stream, Context *c ) const;
50
51   static bool isKeyword( const QString &name );
52
53 private:
54   QString m_name;
55 };
56
57 #endif
58