21#include <com/sun/star/linguistic2/XConversionDictionary.hpp>
22#include <com/sun/star/linguistic2/XConversionPropertyType.hpp>
23#include <com/sun/star/util/XFlushable.hpp>
24#include <com/sun/star/lang/XServiceInfo.hpp>
30#include <unordered_map>
34#define CONV_DIC_DOT_EXT ".tcd"
36inline constexpr OUStringLiteral
SN_CONV_DICTIONARY =
u"com.sun.star.linguistic2.ConversionDictionary";
41typedef std::unordered_multimap<OUString, OUString>
ConvMap;
42typedef std::unordered_multimap<OUString, sal_Int16>
PropTypeMap;
45 public ::cppu::WeakImplHelper
47 css::linguistic2::XConversionDictionary,
48 css::linguistic2::XConversionPropertyType,
49 css::util::XFlushable,
50 css::lang::XServiceInfo
79 static ConvMap::iterator
GetEntry(
ConvMap &rMap,
const OUString &rFirstText, std::u16string_view rSecondText );
88 const OUString &rMainURL);
92 virtual OUString SAL_CALL
getName( )
override;
93 virtual css::lang::Locale SAL_CALL
getLocale( )
override;
97 virtual void SAL_CALL
clear( )
override;
98 virtual css::uno::Sequence< OUString > SAL_CALL
getConversions(
const OUString& aText, sal_Int32 nStartPos, sal_Int32 nLength, css::linguistic2::ConversionDirection eDirection, sal_Int32 nTextConversionOptions )
override;
99 virtual css::uno::Sequence< OUString > SAL_CALL
getConversionEntries( css::linguistic2::ConversionDirection eDirection )
override;
100 virtual void SAL_CALL
addEntry(
const OUString& aLeftText,
const OUString& aRightText )
override;
101 virtual void SAL_CALL
removeEntry(
const OUString& aLeftText,
const OUString& aRightText )
override;
102 virtual sal_Int16 SAL_CALL
getMaxCharCount( css::linguistic2::ConversionDirection eDirection )
override;
105 virtual void SAL_CALL
setPropertyType(
const OUString& aLeftText,
const OUString& aRightText, ::sal_Int16 nPropertyType )
override;
106 virtual ::sal_Int16 SAL_CALL
getPropertyType(
const OUString& aLeftText,
const OUString& aRightText )
override;
109 virtual void SAL_CALL
flush( )
override;
110 virtual void SAL_CALL
addFlushListener(
const css::uno::Reference< css::util::XFlushListener >& l )
override;
111 virtual void SAL_CALL
removeFlushListener(
const css::uno::Reference< css::util::XFlushListener >& l )
override;
118 bool HasEntry(
const OUString &rLeftText, std::u16string_view rRightText );
119 void AddEntry(
const OUString &rLeftText,
const OUString &rRightText );
120 void RemoveEntry(
const OUString &rLeftText,
const OUString &rRightText );
virtual css::lang::Locale SAL_CALL getLocale() override
virtual void SAL_CALL addEntry(const OUString &aLeftText, const OUString &aRightText) override
sal_Int16 nConversionType
sal_Int16 nMaxRightCharCount
virtual ~ConvDic() override
void RemoveEntry(const OUString &rLeftText, const OUString &rRightText)
virtual ::sal_Int16 SAL_CALL getPropertyType(const OUString &aLeftText, const OUString &aRightText) override
bool bMaxCharCountIsValid
std::unique_ptr< ConvMap > pFromRight
virtual sal_Int16 SAL_CALL getConversionType() override
sal_Int16 nMaxLeftCharCount
virtual void SAL_CALL removeFlushListener(const css::uno::Reference< css::util::XFlushListener > &l) override
std::unique_ptr< PropTypeMap > pConvPropType
virtual OUString SAL_CALL getImplementationName() override
void AddEntry(const OUString &rLeftText, const OUString &rRightText)
virtual sal_Bool SAL_CALL isActive() override
virtual void SAL_CALL clear() override
::comphelper::OInterfaceContainerHelper3< css::util::XFlushListener > aFlushListeners
ConvDic & operator=(const ConvDic &)
virtual void SAL_CALL setPropertyType(const OUString &aLeftText, const OUString &aRightText, ::sal_Int16 nPropertyType) override
virtual css::uno::Sequence< OUString > SAL_CALL getConversions(const OUString &aText, sal_Int32 nStartPos, sal_Int32 nLength, css::linguistic2::ConversionDirection eDirection, sal_Int32 nTextConversionOptions) override
virtual OUString SAL_CALL getName() override
static ConvMap::iterator GetEntry(ConvMap &rMap, const OUString &rFirstText, std::u16string_view rSecondText)
virtual void SAL_CALL removeEntry(const OUString &aLeftText, const OUString &aRightText) override
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
virtual css::uno::Sequence< OUString > SAL_CALL getConversionEntries(css::linguistic2::ConversionDirection eDirection) override
virtual void SAL_CALL addFlushListener(const css::uno::Reference< css::util::XFlushListener > &l) override
virtual void SAL_CALL flush() override
virtual void SAL_CALL setActive(sal_Bool bActivate) override
bool HasEntry(const OUString &rLeftText, std::u16string_view rRightText)
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual sal_Int16 SAL_CALL getMaxCharCount(css::linguistic2::ConversionDirection eDirection) override
constexpr OUStringLiteral CONV_DIC_EXT
constexpr OUStringLiteral SN_CONV_DICTIONARY
bool IsConvDic(const OUString &rFileURL, LanguageType &nLang, sal_Int16 &nConvType)
std::unordered_multimap< OUString, OUString > ConvMap
std::unordered_multimap< OUString, sal_Int16 > PropTypeMap