6#include <inflection/dialog/fwd.hpp>
7#include <inflection/Object.hpp>
8#include <inflection/dialog/SemanticFeature.hpp>
9#include <inflection/dialog/SpeakableConcept.hpp>
33 ::std::map<SemanticFeature, ::std::u16string> constraints { };
63 virtual void putConstraintByName(::std::u16string_view featureName, ::std::u16string_view featureValue);
Abstract base class of SpeakableConcept with inflectable constraints.
virtual void clearConstraintByName(::std::u16string_view featureName)
virtual bool hasConstraint(const SemanticFeature &feature) const
virtual SpeakableString * getFeatureValue(const SemanticFeature &feature) const =0
~SemanticFeatureConceptBase() override
virtual void putConstraintByName(::std::u16string_view featureName, ::std::u16string_view featureValue)
virtual bool isExists() const =0
virtual SemanticFeatureConceptBase * clone() const =0
virtual const ::std::u16string * getConstraint(const SemanticFeature &feature) const
SemanticFeatureConceptBase(const SemanticFeatureModel *model)
virtual void clearConstraint(const SemanticFeature &feature)
virtual void putConstraint(const SemanticFeature &feature, ::std::u16string_view featureValue)
SemanticFeatureConceptBase(const SemanticFeatureConceptBase &other)
virtual const SemanticFeatureModel * getModel() const
virtual SpeakableString * getFeatureValueByName(::std::u16string_view featureName) const
virtual const SemanticFeature * getSpeakFeature() const
A semantic model that contains display data for semantic values and provides feature functions for de...
Represents a single semantic feature.
The base interface for all concepts that can be formatted to a SpeakableString.
Represents a string with both a spoken and written representation.
The C++ namespace for Inflection.