diff -r 82e40295dfb4 -r 0cfbaf5c57a6 src/Configuration.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/Configuration.h Sat May 15 18:18:10 2021 +0200 @@ -0,0 +1,87 @@ +/** + * Relational pipes + * Copyright © 2021 František Kučera (Frantovo.cz, GlobalCode.info) + * + * This program 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, version 3 of the License. + * + * 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, see . + */ +#pragma once + +#include +#include +#include + +#include + + +namespace relpipe { +namespace tr { +namespace sed { + +enum class ENTITY { + RELATION, + ATTRIBUTE, + VALUE +}; + +class RewriteRule { +public: + + RewriteRule(std::map caseSensitive, std::map invertMatch) : caseSensitive(caseSensitive), invertMatch(invertMatch) { + } + + virtual ~RewriteRule() { + } + + relpipe::common::type::StringX attribute; + relpipe::common::type::StringX value; + relpipe::common::type::StringX replacement; + std::wregex attributePattern; + std::wregex valuePattern; + std::map caseSensitive; + std::map invertMatch; +}; + +class RelationConfiguration { +public: + + RelationConfiguration() { + caseSensitive[ENTITY::RELATION] = true; + caseSensitive[ENTITY::ATTRIBUTE] = true; + caseSensitive[ENTITY::VALUE] = true; + invertMatch[ENTITY::RELATION] = false; + invertMatch[ENTITY::ATTRIBUTE] = false; + invertMatch[ENTITY::VALUE] = false; + } + + virtual ~RelationConfiguration() { + + } + + relpipe::common::type::StringX relation; + std::wregex relationPattern; + std::vector rules; + std::map caseSensitive; + std::map invertMatch; +}; + +class Configuration { +public: + std::vector relationConfigurations; + + virtual ~Configuration() { + } +}; + +} +} +}