14#include "keyple/core/service/resource/CardResourceProfileConfigurator.hpp"
16#include "keyple/core/util/KeypleAssert.hpp"
17#include "keyple/core/util/cpp/Pattern.hpp"
18#include "keyple/core/util/cpp/exception/IllegalArgumentException.hpp"
19#include "keyple/core/util/cpp/exception/IllegalStateException.hpp"
20#include "keyple/core/util/cpp/exception/PatternSyntaxException.hpp"
27using keyple::core::util::Assert;
28using keyple::core::util::cpp::Pattern;
29using keyple::core::util::cpp::exception::IllegalArgumentException;
30using keyple::core::util::cpp::exception::IllegalStateException;
31using keyple::core::util::cpp::exception::PatternSyntaxException;
37CardResourceProfileConfigurator::CardResourceProfileConfigurator(
39: mProfileName(builder->mProfileName)
40, mCardResourceProfileExtension(builder->mCardResourceProfileExtension)
41, mPlugins(builder->mPlugins)
42, mReaderNameRegex(builder->mReaderNameRegex)
43, mReaderGroupReference(builder->mReaderGroupReference)
50CardResourceProfileConfigurator::getProfileName()
const
55std::shared_ptr<CardResourceProfileExtension>
56CardResourceProfileConfigurator::getCardResourceProfileExtension()
const
58 return mCardResourceProfileExtension;
61const std::vector<std::shared_ptr<Plugin>>&
62CardResourceProfileConfigurator::getPlugins()
const
68CardResourceProfileConfigurator::getReaderNameRegex()
const
70 return mReaderNameRegex;
74CardResourceProfileConfigurator::getReaderGroupReference()
const
76 return mReaderGroupReference;
80CardResourceProfileConfigurator::builder(
81 const std::string& profileName,
82 std::shared_ptr<CardResourceProfileExtension> cardResourceProfileExtension)
84 return new Builder(profileName, cardResourceProfileExtension);
90 const std::string& profileName,
91 std::shared_ptr<CardResourceProfileExtension> cardResourceProfileExtension)
92: mProfileName(profileName)
93, mCardResourceProfileExtension(cardResourceProfileExtension)
95, mReaderGroupReference(
"")
97 Assert::getInstance().notNull(
98 cardResourceProfileExtension,
"cardResourceProfileExtension");
102Builder::withPlugins(
const std::vector<std::shared_ptr<Plugin>>& plugins)
104 for (
const auto& plugin : plugins) {
105 Assert::getInstance().notNull(plugin,
"plugin");
106 mPlugins.push_back(plugin);
113Builder::withReaderNameRegex(
const std::string& readerNameRegex)
115 Assert::getInstance().notEmpty(readerNameRegex,
"readerNameRegex");
117 if (mReaderNameRegex !=
"") {
118 throw IllegalStateException(
"Reader name regex has already been set");
122 Pattern::compile(readerNameRegex);
123 }
catch (
const PatternSyntaxException&) {
124 throw IllegalArgumentException(
125 "Invalid regular expression [regex=" + readerNameRegex +
"]");
128 mReaderNameRegex = readerNameRegex;
134Builder::withReaderGroupReference(
const std::string& readerGroupReference)
136 Assert::getInstance().notEmpty(
137 readerGroupReference,
"readerGroupReference");
139 if (mReaderGroupReference !=
"") {
140 throw IllegalStateException(
141 "Reader group reference has already been set");
144 mReaderGroupReference = readerGroupReference;
149std::shared_ptr<CardResourceProfileConfigurator>
152 return std::make_shared<CardResourceProfileConfigurator>(
this);
CardResourceProfileConfigurator::Builder Builder