26#include <QLoggingCategory>
30class QXmlStreamReader;
31class QXmlStreamAttributes;
36Q_DECLARE_LOGGING_CATEGORY(lcParser)
150 void load(
const QString &fileName,
const QString &codecName,
const int &defNodeSize,
151 const QString &defNodeColor,
const QString &defNodeShape,
const QString &defNodeNumberColor,
152 const int &defNodeNumberSize,
const QString &defNodeLabelColor,
const int &defNodeLabelSize,
153 const QString &defEdgeColor,
const int &canvasWidth,
const int &canvasHeight,
const int &format,
154 const QString &delim = QString(),
const int &sm_mode = 1,
const bool &sm_has_labels =
false);
162 bool parseAsDL(
const QByteArray &rawData);
172 bool &fullmatrixFormat,
173 bool &edgelist1Format,
174 bool &diagonalPresent);
177 QString &shape, QString &color, QString &fontName,
179 QHash<QString, QString> &customAttrs);
196 void createRandomNodes(
const int &fixedNum = 1,
const QString &label = QString(),
197 const int &newNodes = 1);
The CompareActors class Implements a min-priority queue Used while parsing weighted edge lists.
Definition parser.h:54
bool operator()(Actor &t1, Actor &t2)
Definition parser.h:56
QString initNodeCustomIcon
Definition parser.h:121
void readGraphMLElementNodeGraphics(QXmlStreamReader &)
Reads node graphics data and properties: label, color, shape, size, coordinates, etc.
Definition parser_graphml.cpp:838
int totalNodes
Definition parser.h:133
bool missingNode
Definition parser.h:138
QString initEdgeLabel
Definition parser.h:123
bool parseAsGraphML(const QByteArray &rawData)
Parses the data as GraphML (not GML) formatted network.
Definition parser_graphml.cpp:32
void createRandomNodes(const int &fixedNum=1, const QString &label=QString(), const int &newNodes=1)
Signals to create either a single new node (numbered fixedNum) or multiple new nodes (numbered from 1...
Definition parser_dl.cpp:975
qreal bez_p1_y
Definition parser.h:137
QHash< QString, QString > edgesMissingNodesHash
Definition parser.h:114
QString initNodeNumberColor
Definition parser.h:122
Parser()
Definition parser.cpp:34
int nodeSize
Definition parser.h:135
QHash< QString, QString > keyName
Definition parser.h:113
QString networkName
Definition parser.h:120
bool parseAsTwoModeSociomatrix(const QByteArray &rawData)
Parses a two-mode (bipartite) sociomatrix file (.2sm / .aff).
Definition parser_adjacency.cpp:385
bool parseAsDot(const QByteArray &rawData)
Parses the data as GraphViz (DOT) formatted network.
Definition parser_dot.cpp:55
bool containsReservedKeywords(const QString &str) const
Definition parser_adjacency.cpp:343
bool createEdgesForRow(const QStringList ¤tRow, int rowIndex)
Definition parser_adjacency.cpp:297
bool fileLoaded
Definition parser.h:138
qreal edgeWeight
Definition parser.h:136
bool fileContainsLinkLabels
Definition parser.h:142
int initNodeNumberSize
Definition parser.h:134
QString initNodeShape
Definition parser.h:121
void readGraphMLElementNode(QXmlStreamReader &)
Reads basic node attributes and sets the nodeNumber.
Definition parser_graphml.cpp:457
QString key_type
Definition parser.h:130
int gwHeight
Definition parser.h:132
bool bezier
Definition parser.h:139
bool parseAsDL(const QByteArray &rawData)
Parses the given raw data as DL formatted (UCINET) data.
Definition parser_dl.cpp:53
void load(const QString &fileName, const QString &codecName, const int &defNodeSize, const QString &defNodeColor, const QString &defNodeShape, const QString &defNodeNumberColor, const int &defNodeNumberSize, const QString &defNodeLabelColor, const int &defNodeLabelSize, const QString &defEdgeColor, const int &canvasWidth, const int &canvasHeight, const int &format, const QString &delim=QString(), const int &sm_mode=1, const bool &sm_has_labels=false)
Loads the data of the given network file, and calls the relevant method to parse it.
Definition parser.cpp:90
QString edge_weight
Definition parser.h:131
~Parser()
Definition parser.cpp:39
QString initNodeColor
Definition parser.h:121
std::unique_ptr< SocNetV::IO::IGraphParseSink > m_ownedParseSink
Definition parser.h:111
bool readDLKeywords(QStringList &strList, int &N, int &NM, int &NR, int &NC, bool &fullmatrixFormat, bool &edgelist1Format, bool &diagonalPresent)
Reads and parses DL keywords from a given QStringList.
Definition parser_dl.cpp:824
QMultiMap< int, int > firstModeMultiMap
Definition parser.h:116
int gwWidth
Definition parser.h:132
qreal bez_p1_x
Definition parser.h:137
int fileFormat
Definition parser.h:133
bool parseAsEdgeListWeighted(const QByteArray &rawData, const QString &delimiter)
Parses the data as weighted edgelist formatted network.
Definition parser_edgelist.cpp:56
void readDotProperties(QString str, qreal &nValue, QString &label, QString &shape, QString &color, QString &fontName, QString &fontColor, QHash< QString, QString > &customAttrs)
Reads the properties of a dot element with improved handling of quoted values.
Definition parser_dot.cpp:638
double randY
Definition parser.h:143
qreal initEdgeWeight
Definition parser.h:136
void setOwnedParseSink(std::unique_ptr< SocNetV::IO::IGraphParseSink > sink)
Definition parser.cpp:66
QString initEdgeColor
Definition parser.h:123
void readGraphMLElementGraph(QXmlStreamReader &)
Reads a graph definition.
Definition parser_graphml.cpp:287
QString key_name
Definition parser.h:130
void createMissingNodeEdges()
Creates any missing node edges.
Definition parser_graphml.cpp:1042
bool validateAndInitialize(const QByteArray &rawData, const QString &delimiter, const bool &sm_has_labels, QStringList &nodeLabels)
Definition parser_adjacency.cpp:112
QString preprocessDotContent(const QString &dotContent)
Preprocesses the content of a DOT file to normalize its formatting, improve parsing and readability.
Definition parser_dot.cpp:538
bool fileContainsNodeCoords
Definition parser.h:141
QMultiMap< int, int > secondModeMultiMap
Definition parser.h:116
QHash< QString, int > nodeHash
Definition parser.h:112
int edgeDirType
Definition parser.h:133
QHash< QString, QString > keyDefaultValue
Definition parser.h:113
QString edge_source
Definition parser.h:131
void readGraphMLElementDefaultValue(QXmlStreamReader &)
Reads default key values.
Definition parser_graphml.cpp:371
QString fileDirPath
Definition parser.h:118
QString errorMessage
Definition parser.h:124
QString nodeIconPath
Definition parser.h:126
QString key_value
Definition parser.h:130
QString edgeLabel
Definition parser.h:125
int target
Definition parser.h:135
bool parseAsAdjacency(const QByteArray &rawData, const ParseConfig &cfg, const QString &delimiter)
Definition parser_adjacency.cpp:61
void createNodeWithDefaults(int nodeIndex, const QString &label)
Definition parser_adjacency.cpp:274
int initNodeLabelSize
Definition parser.h:134
static QString normalizeQuotedIdentifier(const QString &s)
Normalizes a quoted identifier from external network formats.
Definition parser_pajek.cpp:850
QString node_id
Definition parser.h:131
QString nodeNumberColor
Definition parser.h:127
int source
Definition parser.h:135
bool conv_OK
Definition parser.h:139
int totalLinks
Definition parser.h:133
QString edgeColor
Definition parser.h:125
QXmlStreamReader * xml
Definition parser.h:117
qreal arrowSize
Definition parser.h:136
QString edge_id
Definition parser.h:131
QString delimiter
Definition parser.h:123
bool isComment(QString str)
Helper. Checks if the string parameter is a comment (starts with a known char, i.e #).
Definition parser_common.cpp:28
void endGraphMLElementNode(QXmlStreamReader &)
Signals to create a new node.
Definition parser_graphml.cpp:490
QHash< QString, QString > nodeCustomAttributes
Definition parser.h:128
bool bool_key
Definition parser.h:140
QString key_what
Definition parser.h:130
bool fileContainsNodeColors
Definition parser.h:140
qreal bez_p2_y
Definition parser.h:137
void readGraphMLElementEdgeGraphics(QXmlStreamReader &)
Reads edge graphics data and properties: path, linestyle,width, arrows, etc.
Definition parser_graphml.cpp:921
bool readGraphML(QXmlStreamReader &)
Checks the xml token name and calls the appropriate function.
Definition parser_graphml.cpp:192
QStringList edgeMissingNodesList
Definition parser.h:115
int nodeLabelSize
Definition parser.h:135
void readGraphMLElementData(QXmlStreamReader &)
Reads data for edges and nodes.
Definition parser_graphml.cpp:651
QString m_textCodecName
Definition parser.h:119
QHash< QString, QString > edgeCustomAttributes
Definition parser.h:129
bool doParseAdjacency(QTextStream &ts, const QString &delimiter, const QStringList &nodeLabels)
Definition parser_adjacency.cpp:203
QString edge_directed
Definition parser.h:131
int nodeNumberSize
Definition parser.h:134
QString initNodeLabelColor
Definition parser.h:122
int two_sm_mode
Definition parser.h:133
bool parseAsEdgeListSimple(const QByteArray &rawData, const QString &delimiter)
Parses the data as simple edgelist formatted.
Definition parser_edgelist.cpp:375
QString nodeLabel
Definition parser.h:125
void readGraphMLElementEdge(QXmlStreamAttributes &)
Reads basic edge creation properties.
Definition parser_graphml.cpp:555
bool bool_node
Definition parser.h:140
bool fileContainsLinkColors
Definition parser.h:141
bool parseAsGML(const QByteArray &rawData)
Parses the data as GML formatted network.
Definition parser_gml.cpp:54
QString key_id
Definition parser.h:130
void readGraphMLElementUnknown(QXmlStreamReader &)
Trivial call for unknown elements.
Definition parser_graphml.cpp:1033
QStringList edgeMissingNodesListData
Definition parser.h:115
bool bool_edge
Definition parser.h:140
QHash< QString, QString > keyType
Definition parser.h:113
QString nodeLabelColor
Definition parser.h:127
bool arrows
Definition parser.h:139
qreal bez_p2_x
Definition parser.h:137
QString edgeType
Definition parser.h:125
int initNodeSize
Definition parser.h:134
void resetCounters()
Definition parser_adjacency.cpp:184
void readGraphMLElementKey(QXmlStreamAttributes &)
Reads a key definition.
Definition parser_graphml.cpp:336
QHash< QString, QString > initNodeCustomAttributes
Definition parser.h:128
bool parseAsPajek(const QByteArray &rawData)
Parse a Pajek-formatted network from raw bytes.
Definition parser_pajek.cpp:50
SocNetV::IO::IGraphParseSink * m_parseSink
Definition parser.h:110
QHash< QString, QString > keyFor
Definition parser.h:113
QStringList relationsList
Definition parser.h:115
void endGraphMLElementEdge(QXmlStreamReader &)
Signals for a new edge to be created/added.
Definition parser_graphml.cpp:623
void setParseSink(SocNetV::IO::IGraphParseSink *sink)
Definition parser.cpp:62
double randX
Definition parser.h:143
QString nodeShape
Definition parser.h:125
QString nodeColor
Definition parser.h:125
QString edge_target
Definition parser.h:131
Explicit mutation surface for parse-time graph construction.
Definition graph_parse_sink.h:33
Transitional mutation sink interface for Parser -> Graph IO operations.
The Actor struct Used while parsing edge lists.
Definition parser.h:43
QString key
Definition parser.h:44
int value
Definition parser.h:45
ParseConfig boundary - the immutable config object.
Definition parser.h:87
int initNodeNumberSize
Definition parser.h:100
QString initNodeLabelColor
Definition parser.h:101
bool sm_has_labels
Definition parser.h:94
int sm_mode
Definition parser.h:93
QString initNodeShape
Definition parser.h:98
QString delim
Definition parser.h:92
QString codecName
Definition parser.h:89
int gwHeight
Definition parser.h:107
int initNodeSize
Definition parser.h:96
QString fileName
Definition parser.h:88
int gwWidth
Definition parser.h:106
QString initNodeNumberColor
Definition parser.h:99
QString initEdgeColor
Definition parser.h:104
int fileFormat
Definition parser.h:91
QString initNodeColor
Definition parser.h:97
int initNodeLabelSize
Definition parser.h:102