1 /* This file is part of the KDE project
2 Copyright 2002 Cornelius Schumacher <schumacher@kde.org>
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public
6 License version 2 or at your option version 3 as published
7 by the Free Software Foundation.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; see the file COPYING. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
20 #ifndef DOCENTRYTRAVERSER_H
21 #define DOCENTRYTRAVERSER_H
28 class DocEntryTraverser
31 DocEntryTraverser() : mNotifyee( 0 ), mParent( 0 ), mParentEntry( 0 ) {}
32 virtual ~DocEntryTraverser() {}
34 void setNotifyee( DocMetaInfo
* );
36 virtual void process( DocEntry
* ) = 0;
38 virtual void startProcess( DocEntry
* );
40 virtual DocEntryTraverser
*createChild( DocEntry
*parentEntry
) = 0;
42 virtual void deleteTraverser();
44 virtual void finishTraversal() {}
46 DocEntryTraverser
*childTraverser( DocEntry
*parentEntry
);
47 virtual DocEntryTraverser
*parentTraverser();
49 void setParentEntry( DocEntry
* );
50 DocEntry
*parentEntry();
53 DocMetaInfo
*mNotifyee
;
54 DocEntryTraverser
*mParent
;
57 DocEntry
*mParentEntry
;