Inflection
Morphology Inflection
Loading...
Searching...
No Matches
DictionaryMetaData.hpp
1/*
2 * Copyright 2016-2024 Apple Inc. All rights reserved.
3 */
4#pragma once
5
6#include <inflection/dictionary/fwd.hpp>
7#include <inflection/dictionary/DictionaryKeyIterator.hpp>
8#include <inflection/util/fwd.hpp>
9#include <inflection/Object.hpp>
10#include <map>
11#include <memory>
12#include <string>
13#include <vector>
14#include <string_view>
15
19class INFLECTION_CLASS_API inflection::dictionary::DictionaryMetaData
20 : public virtual ::inflection::Object
21{
22
23public:
25 typedef ::inflection::Object super;
27
28public:
34 static const DictionaryMetaData* createDictionary(const ::inflection::util::ULocale& locale);
35
36private:
37 static ::std::u16string* transform(::std::u16string* dest, std::u16string_view str, const ::inflection::util::ULocale& locale);
38
39public:
43 int64_t* getCombinedBinaryType(int64_t* result, std::u16string_view word) const;
44
48 ::std::vector<::std::u16string> getPropertyNames(int64_t binaryProperties) const;
52 ::std::u16string getPropertyName(int64_t singleProperty) const;
56 bool isKnownWord(std::u16string_view word) const;
63 bool hasProperty(std::u16string_view word, std::u16string_view partOfSpeech) const;
67 bool hasAllProperties(std::u16string_view word, int64_t partOfSpeech) const;
71 bool hasAnyProperty(std::u16string_view word, int64_t partOfSpeech) const;
78 int64_t* getBinaryProperties(int64_t* result, const ::std::vector<::std::u16string>& properties) const;
83 int64_t getBinaryProperties(const ::std::vector<::std::u16string>& properties) const;
87 ::std::vector<::std::u16string> getProperties(std::u16string_view word) const;
91 ::std::vector<::std::u16string> getPropertyValues(std::u16string_view word, std::u16string_view partOfSpeech) const;
95 bool getPropertyValues(::std::vector<::std::u16string>* result, std::u16string_view word, std::u16string_view partOfSpeech) const;
103 int32_t getKnownWordsSize() const;
104
105private:
106 explicit DictionaryMetaData(DictionaryMetaData_MMappedDictionary* dictionary);
107 DictionaryMetaData(const DictionaryMetaData& other) = delete;
108 DictionaryMetaData& operator=(const DictionaryMetaData& other) = delete;
109 ~DictionaryMetaData() override;
110
111private:
112 std::unique_ptr<DictionaryMetaData_MMappedDictionary> dictionary;
113private:
114 friend class Inflector;
115 friend class Inflector_MMappedDictionary;
116};
Inflection's root object.
Definition Object.hpp:14
Provides the ability to iterate over the words from a DictionaryMetaData object.
Provides an interface to read Inflection's lexical dictionaries.
::std::u16string getPropertyName(int64_t singleProperty) const
::inflection::dictionary::DictionaryKeyIterator getKnownWords() const
::std::vector<::std::u16string > getPropertyNames(int64_t binaryProperties) const
static const DictionaryMetaData * createDictionary(const ::inflection::util::ULocale &locale)
bool getPropertyValues(::std::vector<::std::u16string > *result, std::u16string_view word, std::u16string_view partOfSpeech) const
bool isKnownWord(std::u16string_view word) const
::std::vector<::std::u16string > getProperties(std::u16string_view word) const
int64_t * getBinaryProperties(int64_t *result, const ::std::vector<::std::u16string > &properties) const
bool hasProperty(std::u16string_view word, std::u16string_view partOfSpeech) const
bool hasAnyProperty(std::u16string_view word, int64_t partOfSpeech) const
int64_t * getCombinedBinaryType(int64_t *result, std::u16string_view word) const
::std::vector<::std::u16string > getPropertyValues(std::u16string_view word, std::u16string_view partOfSpeech) const
int64_t getBinaryProperties(const ::std::vector<::std::u16string > &properties) const
bool hasAllProperties(std::u16string_view word, int64_t partOfSpeech) const
The C++ namespace for Inflection.
Definition fwd.hpp:11