From 379ffeb21fd4f067ea542e6b45967bab1ca004d5 Mon Sep 17 00:00:00 2001 From: Renaud G Date: Mon, 6 Apr 2015 14:26:23 +0200 Subject: -Creation of dedicated class for alias management --- dicealias.cpp | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 dicealias.cpp (limited to 'dicealias.cpp') diff --git a/dicealias.cpp b/dicealias.cpp new file mode 100644 index 0000000..2a09206 --- /dev/null +++ b/dicealias.cpp @@ -0,0 +1,67 @@ +#include "dicealias.h" +#include + +DiceAlias::DiceAlias(QString cmd, QString key, bool isReplace) + : m_command(cmd),m_value(key) +{ + if(isReplace) + { + m_type = REPLACE; + } + else + { + m_type = REGEXP; + } +} + +DiceAlias::~DiceAlias() +{ + +} + +bool DiceAlias::resolved(QString & str) +{ + if((m_type == REPLACE)&&(str.contains(m_command))) + { + str.replace(m_command,m_value); + return true; + } + else if(m_type == REGEXP) + { + QRegularExpression exp(m_command); + str.replace(exp,m_value); + return true; + } + return false; +} + +void DiceAlias::setCommand(QString key) +{ + m_command = key; +} + +void DiceAlias::setValue(QString value) +{ + m_value = value; +} + +void DiceAlias::setType(RESOLUTION_TYPE type) +{ + m_type = type; +} +QString DiceAlias::getCommand() +{ + return m_command; +} + +QString DiceAlias::getValue() +{ + return m_value; +} + +bool DiceAlias::isReplace() +{ + return (m_type == REPLACE) ? true : false; +} + + -- cgit v1.2.3-70-g09d2 From 64048b3fd2dba4220cb19946caf588f9a6f26093 Mon Sep 17 00:00:00 2001 From: Renaud G Date: Wed, 15 Apr 2015 01:07:36 +0200 Subject: add API to make easier the use of DiceParser. --- dicealias.cpp | 32 ++++++++++++++++++++++++++ dicealias.h | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- diceparser.cpp | 7 ++++++ diceparser.h | 4 ++++ 4 files changed, 110 insertions(+), 4 deletions(-) (limited to 'dicealias.cpp') diff --git a/dicealias.cpp b/dicealias.cpp index 2a09206..f9c366c 100644 --- a/dicealias.cpp +++ b/dicealias.cpp @@ -1,3 +1,24 @@ +/*************************************************************************** +* Copyright (C) 2014 by Renaud Guezennec * +* http://renaudguezennec.homelinux.org/accueil,3.html * +* * +* This file is part of DiceParser * +* * +* DiceParser is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License for more details. * +* * +* You should have received a copy of the GNU General Public License * +* along with this program; if not, write to the * +* Free Software Foundation, Inc., * +* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * +***************************************************************************/ #include "dicealias.h" #include @@ -65,3 +86,14 @@ bool DiceAlias::isReplace() } +void DiceAlias::setReplace(bool b) +{ + if(b) + { + m_type= REPLACE; + } + else + { + m_type = REGEXP; + } +} diff --git a/dicealias.h b/dicealias.h index 565b903..ebf7a02 100644 --- a/dicealias.h +++ b/dicealias.h @@ -1,24 +1,87 @@ +/*************************************************************************** +* Copyright (C) 2014 by Renaud Guezennec * +* http://renaudguezennec.homelinux.org/accueil,3.html * +* * +* This file is part of DiceParser * +* * +* DiceParser is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, * +* but WITHOUT ANY WARRANTY; without even the implied warranty of * +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +* GNU General Public License for more details. * +* * +* You should have received a copy of the GNU General Public License * +* along with this program; if not, write to the * +* Free Software Foundation, Inc., * +* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * +***************************************************************************/ #ifndef DICEALIAS_H #define DICEALIAS_H #include - +/** + * @brief The DiceAlias class + */ class DiceAlias { public: + enum RESOLUTION_TYPE { REPLACE,REGEXP}; + /** + * @brief DiceAlias + * @param cmd + * @param key + * @param isReplace + */ DiceAlias(QString cmd, QString key, bool isReplace = true); - ~DiceAlias(); - + /** + * @brief ~DiceAlias + */ + virtual ~DiceAlias(); + /** + * @brief resolved + * @param str + * @return + */ bool resolved(QString & str); - + /** + * @brief setCommand + * @param key + */ void setCommand(QString key); + /** + * @brief setValue + * @param value + */ void setValue(QString value); + /** + * @brief setType + */ void setType(RESOLUTION_TYPE ); + /** + * @brief getCommand + * @return + */ QString getCommand(); + /** + * @brief getValue + * @return + */ QString getValue(); + /** + * @brief isReplace + * @return + */ bool isReplace(); + /** + * @brief setReplace + */ + void setReplace(bool); private: QString m_command; QString m_value; diff --git a/diceparser.cpp b/diceparser.cpp index 5e6d06f..6933071 100644 --- a/diceparser.cpp +++ b/diceparser.cpp @@ -136,6 +136,13 @@ QList* DiceParser::getAliases() { return m_aliasList; } +void DiceParser::insertAlias(DiceAlias* dice, int i) +{ + if(i>m_aliasList->size()) + { + m_aliasList->insert(i, dice); + } +} bool DiceParser::parseLine(QString str) { diff --git a/diceparser.h b/diceparser.h index 1636fc9..b4fd429 100644 --- a/diceparser.h +++ b/diceparser.h @@ -167,6 +167,10 @@ public: * @return */ QList* getAliases(); + /** + * @brief insertAlias + */ + void insertAlias(DiceAlias*, int); /** * @brief DiceParser::convertAlias * @param str -- cgit v1.2.3-70-g09d2