Doxygen
Loading...
Searching...
No Matches
DocCite Class Reference

Node representing a citation of some bibliographic reference. More...

#include <src/docnode.h>

Inheritance diagram for DocCite:
Collaboration diagram for DocCite:

Public Member Functions

 DocCite (DocParser *parser, DocNodeVariant *parent, const QCString &target, const QCString &context, CiteInfoOption opt)
QCString file () const
QCString relPath () const
QCString ref () const
QCString anchor () const
QCString target () const
CiteInfoOption option () const
QCString getText () const
Public Member Functions inherited from DocNode
 DocNode (DocParser *parser, DocNodeVariant *parent)
 ~DocNode ()=default
DocNodeVariantparent ()
const DocNodeVariantparent () const
DocNodeVariantthisVariant ()
const DocNodeVariantthisVariant () const
void setThisVariant (DocNodeVariant *thisVariant)
DocParserparser ()
const DocParserparser () const
void setParent (DocNodeVariant *parent)
bool isPreformatted () const

Private Attributes

QCString m_file
QCString m_relPath
QCString m_ref
QCString m_anchor
QCString m_target
CiteInfoOption m_option

Additional Inherited Members

Protected Types inherited from DocNode
enum  RefType {
  Unknown , Anchor , Section , Table ,
  Requirement
}
Protected Member Functions inherited from DocNode
void setInsidePreformatted (bool p)

Detailed Description

Node representing a citation of some bibliographic reference.

Definition at line 244 of file docnode.h.

Constructor & Destructor Documentation

◆ DocCite()

DocCite::DocCite ( DocParser * parser,
DocNodeVariant * parent,
const QCString & target,
const QCString & context,
CiteInfoOption opt )

Definition at line 936 of file docnode.cpp.

937{
938 size_t numBibFiles = Config_getList(CITE_BIB_FILES).size();
939 //printf("DocCite::DocCite(target=%s)\n",qPrint(target));
940 ASSERT(!target.isEmpty());
941 m_relPath = parser->context.relPath;
942 const CitationManager &ct = CitationManager::instance();
943 const CiteInfo *cite = ct.find(target);
944 //printf("cite=%p text='%s' numBibFiles=%d\n",cite,cite?qPrint(cite->text):"<null>",numBibFiles);
945 m_option = opt;
947 if (numBibFiles>0 && cite && !cite->text().isEmpty()) // ref to citation
948 {
949 m_ref = "";
950 m_anchor = ct.anchorPrefix()+cite->label();
952 //printf("CITE ==> m_text=%s,m_ref=%s,m_file=%s,m_anchor=%s\n",
953 // qPrint(m_text),qPrint(m_ref),qPrint(m_file),qPrint(m_anchor));
954 return;
955 }
956 if (numBibFiles==0)
957 {
958 warn_doc_error(parser->context.fileName,parser->tokenizer.getLineNr(),"\\cite command found but no bib files specified via CITE_BIB_FILES!");
959 }
960 else if (cite==nullptr)
961 {
962 warn_doc_error(parser->context.fileName,parser->tokenizer.getLineNr(),"unable to resolve reference to '{}' for \\cite command",
963 target);
964 }
965 else
966 {
967 warn_doc_error(parser->context.fileName,parser->tokenizer.getLineNr(),"\\cite command to '{}' does not have an associated number",
968 target);
969 }
970}
QCString anchorPrefix() const
Definition cite.cpp:126
const CiteInfo * find(const QCString &label) const
Return the citation info for a given label.
Definition cite.cpp:101
static CitationManager & instance()
Definition cite.cpp:85
QCString fileName() const
Definition cite.cpp:121
QCString m_anchor
Definition docnode.h:260
QCString m_target
Definition docnode.h:261
QCString m_relPath
Definition docnode.h:258
QCString m_ref
Definition docnode.h:259
QCString target() const
Definition docnode.h:252
QCString m_file
Definition docnode.h:257
CiteInfoOption m_option
Definition docnode.h:262
DocNode(DocParser *parser, DocNodeVariant *parent)
Definition docnode.h:85
DocParser * parser()
Definition docnode.h:98
DocNodeVariant * parent()
Definition docnode.h:90
bool isEmpty() const
Returns TRUE iff the string is empty.
Definition qcstring.h:163
#define Config_getList(name)
Definition config.h:38
#define warn_doc_error(file, line, fmt,...)
Definition message.h:112
#define TRUE
Definition qcstring.h:37
#define FALSE
Definition qcstring.h:34
#define ASSERT(x)
Definition qcstring.h:39
virtual QCString text() const =0
virtual QCString label() const =0
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
Definition util.cpp:3485

References CitationManager::anchorPrefix(), ASSERT, Config_getList, convertNameToFile(), DocNode::DocNode(), FALSE, CitationManager::fileName(), CitationManager::find(), CitationManager::instance(), QCString::isEmpty(), CiteInfo::label(), m_anchor, m_file, m_option, m_ref, m_relPath, m_target, DocNode::parent(), DocNode::parser(), target(), CiteInfo::text(), TRUE, and warn_doc_error.

Member Function Documentation

◆ anchor()

◆ file()

◆ getText()

QCString DocCite::getText ( ) const

Definition at line 972 of file docnode.cpp.

973{
974 QCString txt;
975 auto opt = m_option;
976 const CitationManager &ct = CitationManager::instance();
977 const CiteInfo *citeInfo = ct.find(m_target);
978
979 if (!opt.noPar()) txt += "[";
980
981 if (citeInfo)
982 {
983 if (opt.isNumber()) txt += citeInfo->text();
984 else if (opt.isShortAuthor()) txt += citeInfo->shortAuthor();
985 else if (opt.isYear()) txt += citeInfo->year();
986 }
987
988 if (!opt.noPar()) txt += "]";
989 return txt;
990}
virtual QCString shortAuthor() const =0
virtual QCString year() const =0

References CitationManager::find(), CitationManager::instance(), m_option, m_target, CiteInfo::shortAuthor(), CiteInfo::text(), and CiteInfo::year().

Referenced by DocbookDocVisitor::operator()(), HtmlDocVisitor::operator()(), LatexDocVisitor::operator()(), ManDocVisitor::operator()(), PerlModDocVisitor::operator()(), PrintDocVisitor::operator()(), RTFDocVisitor::operator()(), and XmlDocVisitor::operator()().

◆ option()

◆ ref()

QCString DocCite::ref ( ) const
inline

◆ relPath()

QCString DocCite::relPath ( ) const
inline

Definition at line 249 of file docnode.h.

249{ return m_relPath; }

References m_relPath.

Referenced by HtmlDocVisitor::operator()().

◆ target()

Member Data Documentation

◆ m_anchor

QCString DocCite::m_anchor
private

Definition at line 260 of file docnode.h.

Referenced by anchor(), and DocCite().

◆ m_file

QCString DocCite::m_file
private

Definition at line 257 of file docnode.h.

Referenced by DocCite(), and file().

◆ m_option

CiteInfoOption DocCite::m_option
private

Definition at line 262 of file docnode.h.

Referenced by DocCite(), getText(), and option().

◆ m_ref

QCString DocCite::m_ref
private

Definition at line 259 of file docnode.h.

Referenced by DocCite(), and ref().

◆ m_relPath

QCString DocCite::m_relPath
private

Definition at line 258 of file docnode.h.

Referenced by DocCite(), and relPath().

◆ m_target

QCString DocCite::m_target
private

Definition at line 261 of file docnode.h.

Referenced by DocCite(), getText(), and target().


The documentation for this class was generated from the following files: