STORMM Source Documentation
Loading...
Searching...
No Matches
citation.h
1// -*-c++-*-
2#ifndef STORMM_CITATION_H
3#define STORMM_CITATION_H
4
5#include <string>
6#include <vector>
7#include "copyright.h"
8#include "DataTypes/stormm_vector_types.h"
9
10namespace stormm {
11namespace parse {
12
14class Citation {
15public:
16
18 Citation(const std::string &byline_in, int index_in = 0);
19
21 int getCitationIndex() const;
22
24 std::string getByline() const;
25
29 void addAuthor(const std::string &author_in);
30
34 void addAuthors(const std::vector<std::string> &authors_in);
35
39 void addEditor(const std::string &editor_in);
40
44 void addEditors(const std::vector<std::string> &editors_in);
45
49 void addTitle(const std::string &title_in);
50
54 void addJournal(const std::string &journal_in);
55
59 void addPublisher(const std::string &publisher_in);
60
64 void addVolume(int volume_in);
65
69 void addIssue(int issue_in);
70
74 void addStartPage(int page_start_in);
75
79 void addEndPage(int page_end_in);
80
84 void addYear(int year_in);
85
90 void addDoI(const std::string &part_a, const std::string &part_b);
91
92private:
93 int index;
95 std::string byline;
96 std::vector<std::string> authors;
97 std::vector<std::string> editors;
98 std::string title;
99 std::string journal;
100 std::string publisher;
101 int volume;
102 int issue;
103 int page_start;
104 int page_end;
106 int year;
107 std::string digital_object_identifier_a;
108 std::string digital_object_identifier_b;
109};
110
111} // namespace parse
112} // namespace stormm
113
114#endif
115
void addPublisher(const std::string &publisher_in)
Add the name of the publisher (if applicable)
Definition citation.cpp:55
void addEditors(const std::vector< std::string > &editors_in)
Add multiple editors to the citation.
Definition citation.cpp:40
void addIssue(int issue_in)
Add the journal issue.
Definition citation.cpp:65
void addTitle(const std::string &title_in)
Add the title of the publication or book.
Definition citation.cpp:45
void addVolume(int volume_in)
Add the journal volume.
Definition citation.cpp:60
Citation(const std::string &byline_in, int index_in=0)
Constructor can take all attributes, but prioritizes the byline and index.
Definition citation.cpp:8
void addJournal(const std::string &journal_in)
Add the name of the journal (if applicable)
Definition citation.cpp:50
void addYear(int year_in)
Add the year of publication.
Definition citation.cpp:80
void addEndPage(int page_end_in)
Add the ending page (for a journal or book)
Definition citation.cpp:75
std::string getByline() const
Get the byline.
Definition citation.cpp:20
int getCitationIndex() const
Get the citation number.
Definition citation.cpp:15
void addDoI(const std::string &part_a, const std::string &part_b)
Add the digital object identifier.
Definition citation.cpp:85
void addAuthors(const std::vector< std::string > &authors_in)
Add multiple authors to the citation.
Definition citation.cpp:30
void addStartPage(int page_start_in)
Add the starting page (for a journal or book)
Definition citation.cpp:70
void addAuthor(const std::string &author_in)
Add one author to the citation.
Definition citation.cpp:25
void addEditor(const std::string &editor_in)
Add one editor to the citation.
Definition citation.cpp:35