| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /*
- Copyright 2017 Herik Lima de Castro and Marcelo Medeiros Eler
- Distributed under MIT license, or public domain if desired and
- recognized in your jurisdiction.
- See file LICENSE for detail.
- */
- #include "cstlcompilerif.h"
- #include "constants.h"
- CWF_BEGIN_NAMESPACE
- CSTLCompilerIf::CSTLCompilerIf(const QXmlStreamAttributes &attr)
- {
- int size = attr.size();
- if (size == 0 || size == 1) {
- relationalOperator = RelationalOperator::ERROR;
- attributes.insert(CSTL::TAG::PROPERTY::ERROR,
- "***ERROR IF TAG - IF TAG NEEDS TWO ATTRIBUTES ***");
- } else if (size == 2) {
- for (int i = 0; i < size; ++i) {
- QString name(attr[i].name().toString().toLower());
- QString value(attr[i].value().toString());
- if (name == CSTL::TAG::PROPERTY::VAR) {
- attributes.insert(CSTL::TAG::PROPERTY::VAR, value);
- } else {
- if (name == CSTL::TAG::PROPERTY::IF::EQUAL) {
- relationalOperator = RelationalOperator::EQUAL;
- } else if (name == CSTL::TAG::PROPERTY::IF::DIFFERENT) {
- relationalOperator = RelationalOperator::DIFFERENT;
- } else if (name == CSTL::TAG::PROPERTY::IF::GREATER) {
- relationalOperator = RelationalOperator::GREATER;
- } else if (name == CSTL::TAG::PROPERTY::IF::GREATER_EQUAL) {
- relationalOperator = RelationalOperator::GREATER_EQUAL;
- } else if (name == CSTL::TAG::PROPERTY::IF::LESS) {
- relationalOperator = RelationalOperator::LESS;
- } else if (name == CSTL::TAG::PROPERTY::IF::LESS_EQUAL) {
- relationalOperator = RelationalOperator::LESS_EQUAL;
- } else {
- relationalOperator = RelationalOperator::ERROR;
- attributes
- .insert(CSTL::TAG::PROPERTY::ERROR,
- "***ERROR IF TAG - IF TAG DOESN'T PERMITS AN ATTRIBUTE CALLED \""
- + name + "\"***");
- break;
- }
- value.toDouble(&isNumber);
- attributes.insert(CSTL::TAG::PROPERTY::CONDITION, value);
- }
- }
- } else if (size > 2) {
- relationalOperator = RelationalOperator::ERROR;
- attributes.insert(CSTL::TAG::PROPERTY::ERROR,
- "***ERROR IF TAG - IF TAG DOESN'T PERMITS MORE THAN ONE ATTRIBUTE ***");
- }
- }
- CWF_END_NAMESPACE
|