|
Packit |
1c1d7e |
/******************************************************************************
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* $Id$
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Copyright (C) 1997-2015 by Dimitri van Heesch.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Permission to use, copy, modify, and distribute this software and its
|
|
Packit |
1c1d7e |
* documentation under the terms of the GNU General Public License is hereby
|
|
Packit |
1c1d7e |
* granted. No representations are made about the suitability of this software
|
|
Packit |
1c1d7e |
* for any purpose. It is provided "as is" without express or implied warranty.
|
|
Packit |
1c1d7e |
* See the GNU General Public License for more details.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#ifndef _PARAMHANDLER_H
|
|
Packit |
1c1d7e |
#define _PARAMHANDLER_H
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#include <qstring.h>
|
|
Packit |
1c1d7e |
#include <qlist.h>
|
|
Packit |
1c1d7e |
#include <qxml.h>
|
|
Packit |
1c1d7e |
#include <doxmlintf.h>
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#include "stringimpl.h"
|
|
Packit |
1c1d7e |
#include "basehandler.h"
|
|
Packit |
1c1d7e |
#include "baseiterator.h"
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class LinkedTextImpl;
|
|
Packit |
1c1d7e |
class LinkedTextHandler;
|
|
Packit |
1c1d7e |
class DocHandler;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class ParamHandler : public IParam, public BaseHandler<ParamHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
virtual void startParam(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endParam();
|
|
Packit |
1c1d7e |
virtual void startType(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endDeclName();
|
|
Packit |
1c1d7e |
virtual void endDefName();
|
|
Packit |
1c1d7e |
virtual void endAttrib();
|
|
Packit |
1c1d7e |
virtual void endArray();
|
|
Packit |
1c1d7e |
virtual void startDefVal(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startBriefDesc(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
ParamHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~ParamHandler();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IParam
|
|
Packit |
1c1d7e |
virtual ILinkedTextIterator *type() const;
|
|
Packit |
1c1d7e |
virtual const IString * declarationName() const { return &m_declName; }
|
|
Packit |
1c1d7e |
virtual const IString * definitionName() const { return &m_defName; }
|
|
Packit |
1c1d7e |
virtual const IString * attrib() const { return &m_attrib; }
|
|
Packit |
1c1d7e |
virtual const IString * arraySpecifier() const { return &m_array; }
|
|
Packit |
1c1d7e |
virtual ILinkedTextIterator *defaultValue() const;
|
|
Packit |
1c1d7e |
virtual IDocRoot *briefDescription() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// XML elements:
|
|
Packit |
1c1d7e |
// -------------
|
|
Packit |
1c1d7e |
QList<LinkedTextImpl> m_type; // type
|
|
Packit |
1c1d7e |
StringImpl m_declName; // declname
|
|
Packit |
1c1d7e |
StringImpl m_defName; // defname
|
|
Packit |
1c1d7e |
StringImpl m_array; // array
|
|
Packit |
1c1d7e |
QList<LinkedTextImpl> m_defVal; // defval
|
|
Packit |
1c1d7e |
DocHandler *m_brief; // briefdescription
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
StringImpl m_attrib; // TODO: not yet in XML output
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
LinkedTextHandler *m_linkedTextHandler;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class ParamIterator : public BaseIterator<IParamIterator,IParam,ParamHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
ParamIterator(const QList<ParamHandler> &list) :
|
|
Packit |
1c1d7e |
BaseIterator<IParamIterator,IParam,ParamHandler>(list) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class TemplateParamListHandler : public BaseHandler<TemplateParamListHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
virtual void startParam(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endParam();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
virtual void startTemplateParamList(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endTemplateParamList();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
TemplateParamListHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~TemplateParamListHandler() {}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
ParamIterator* templateParams() { return new ParamIterator(m_templateParams); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
protected:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<ParamHandler> m_templateParams;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#endif
|