31#include <com/sun/star/beans/XPropertyState.hpp>
32#include <com/sun/star/beans/PropertyAttribute.hpp>
33#include <com/sun/star/frame/XModel.hpp>
34#include <com/sun/star/util/XNumberFormatsSupplier.hpp>
35#include <com/sun/star/sdb/XFormDocumentsSupplier.hpp>
36#include <com/sun/star/sdb/XOfficeDatabaseDocument.hpp>
37#include <com/sun/star/sdb/XReportDocumentsSupplier.hpp>
38#include <com/sun/star/sdb/XQueryDefinitionsSupplier.hpp>
39#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
40#include <com/sun/star/sdbcx/XDataDescriptorFactory.hpp>
42#include <com/sun/star/awt/TextAlign.hpp>
45#include <com/sun/star/awt/FontDescriptor.hpp>
61extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
63 css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any>
const&)
65 return cppu::acquire(new ::dbaxml::ODBExport(context,
66 "com.sun.star.comp.sdb.DBExportFilter"));
69extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
71 css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any>
const&)
73 return cppu::acquire(new ::dbaxml::ODBExport(context,
74 "com.sun.star.comp.sdb.XMLSettingsExporter",
75 SvXMLExportFlags::SETTINGS | SvXMLExportFlags::PRETTY ));
78extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
80 css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any>
const&)
82 return cppu::acquire(new ::dbaxml::ODBExport(context,
83 "com.sun.star.comp.sdb.XMLFullExporter",
84 SvXMLExportFlags::ALL));
95 switch (_rType.getTypeClass())
97 case TypeClass_STRING:
99 case TypeClass_DOUBLE:
101 case TypeClass_BOOLEAN:
104 case TypeClass_SHORT:
108 case TypeClass_HYPER:
114 OSL_FAIL(
"lcl_implGetPropertyXMLType: unsupported value type!" );
129 virtual void handleSpecialItem(
134 const std::vector< XMLPropertyState > * ,
135 sal_uInt32 )
const override
146,m_aTypeCollection(_rxContext)
147,m_bAllreadyFilled(false)
158 if( nExportFlag & (SvXMLExportFlags::STYLES|SvXMLExportFlags::MASTERSTYLES|SvXMLExportFlags::AUTOSTYLES|SvXMLExportFlags::FONTDECLS) )
161 if( nExportFlag & (SvXMLExportFlags::META|SvXMLExportFlags::STYLES|SvXMLExportFlags::MASTERSTYLES|SvXMLExportFlags::AUTOSTYLES|SvXMLExportFlags::CONTENT|SvXMLExportFlags::SCRIPTS|SvXMLExportFlags::SETTINGS) )
165 if( nExportFlag & SvXMLExportFlags::SETTINGS )
170 if( nExportFlag & (SvXMLExportFlags::STYLES|SvXMLExportFlags::MASTERSTYLES|SvXMLExportFlags::AUTOSTYLES|SvXMLExportFlags::CONTENT|SvXMLExportFlags::FONTDECLS) )
185 XmlStyleFamily::TABLE_TABLE,
191 XmlStyleFamily::TABLE_COLUMN,
197 XmlStyleFamily::TABLE_CELL,
203 XmlStyleFamily::TABLE_ROW,
213 Reference<XPropertySet> xProp(
getDataSource(), UNO_SET_THROW );
215 bool bAutoIncrementEnabled =
true;
218 Reference< XPropertySet > xDataSourceSettings;
219 OSL_VERIFY( xProp->getPropertyValue(
PROPERTY_SETTINGS ) >>= xDataSourceSettings );
220 Reference< XPropertyState > xSettingsState( xDataSourceSettings, UNO_QUERY_THROW );
221 Reference< XPropertySetInfo > xSettingsInfo( xDataSourceSettings->getPropertySetInfo(), UNO_SET_THROW );
230 const OUString sURL = ::comphelper::getString(xProp->getPropertyValue(
PROPERTY_URL));
231 const ::comphelper::NamedValueCollection& aDriverSupportedProperties( aDriverConfig.
getProperties( sURL ) );
233 static OUString s_sTrue(::xmloff::token::GetXMLToken(
XML_TRUE ));
234 static OUString s_sFalse(::xmloff::token::GetXMLToken(
XML_FALSE ));
244 catch (
const UnknownPropertyException&)
248 Sequence< Property >
aProperties = xSettingsInfo->getProperties();
251 for ( ; pProperties != pPropertiesEnd; ++pProperties )
254 Any aValue = xDataSourceSettings->getPropertyValue( pProperties->Name );
255 switch ( aValue.getValueTypeClass() )
257 case TypeClass_STRING:
260 case TypeClass_DOUBLE:
262 sValue = OUString::number(
getDouble( aValue ) );
264 case TypeClass_BOOLEAN:
268 case TypeClass_SHORT:
271 sValue = OUString::number(
getINT32( aValue ) );
281 const OUString sPropertyName;
283 const ::std::optional< OUString > aXMLDefault;
286 :sPropertyName(std::move( _sPropertyName ))
287 ,eAttributeToken( _eToken )
293 :sPropertyName(std::move( _sPropertyName ))
294 ,eAttributeToken( _eToken )
295 ,aXMLDefault( _rDefault )
315 bool bIsXMLDefault =
false;
316 for (
const auto & aToken : aTokens)
318 if ( pProperties->Name == aToken.sPropertyName )
320 eToken = aToken.eAttributeToken;
322 if ( !!aToken.aXMLDefault
323 && ( sValue == *aToken.aXMLDefault )
326 bIsXMLDefault =
true;
340 if ( ( pProperties->Attributes & PropertyAttribute::REMOVABLE ) == 0 )
342 PropertyState ePropertyState = xSettingsState->getPropertyState( pProperties->Name );
343 if ( PropertyState_DEFAULT_VALUE == ePropertyState )
351 sValue =
"equal-integer";
352 else if ( sValue ==
"1" )
353 sValue =
"is-boolean";
354 else if ( sValue ==
"2" )
355 sValue =
"equal-boolean";
356 else if ( sValue ==
"3" )
357 sValue =
"equal-use-only-zero";
358 if ( sValue ==
"equal-integer" )
364 aValue >>= bAutoIncrementEnabled;
369 aAutoIncrement.first = sValue;
374 aAutoIncrement.second = sValue;
379 aDelimiter.
sText = sValue;
380 aDelimiter.
bUsed =
true;
385 aDelimiter.
sField = sValue;
386 aDelimiter.
bUsed =
true;
392 aDelimiter.
bUsed =
true;
398 aDelimiter.
bUsed =
true;
408 if ( !aDriverSupportedProperties.has(pProperties->Name) || aDriverSupportedProperties.get(pProperties->Name) != aValue )
411 pProperties->Name, pProperties->Type, aValue );
417 aSettingsMap.emplace(
eToken,sValue);
419 if ( bAutoIncrementEnabled && !(aAutoIncrement.first.isEmpty() && aAutoIncrement.second.isEmpty()) )
421 if ( aDelimiter.
bUsed )
438 const ::xmloff::token::XMLTokenEnum pSettings[] = {
450 TSettingsMap::const_iterator aFind = _aSettings.find(
i);
451 if ( aFind != _aSettings.end() )
457 Sequence< OUString> aValue;
459 if ( aValue.hasElements() )
466 if ( aValue.hasElements() )
474 const ::xmloff::token::XMLTokenEnum pSettings[] = {
483 TSettingsMap::const_iterator aFind = _aSettings.find(nSetting);
484 if ( aFind != _aSettings.end() )
508 if ( sOrigUrl == sFileName )
512 if (sURL.isEmpty() || sURL[sURL.getLength() - 1] !=
'/')
528 Reference< XPropertySet > xDataSourceSettings;
529 OSL_VERIFY( xProp->getPropertyValue(
PROPERTY_SETTINGS ) >>= xDataSourceSettings );
532 if ( !sExtension.isEmpty() )
543 OUString sDatabaseName,sHostName;
544 sal_Int32 nPort = -1;
546 if ( sHostName.getLength() )
555 if ( sDatabaseName.getLength() )
560 Reference< XPropertySet > xDataSourceSettings( xProp->getPropertyValue(
PROPERTY_SETTINGS ), UNO_QUERY_THROW );
561 Reference< XPropertySetInfo > xSettingsInfo( xDataSourceSettings->getPropertySetInfo(), UNO_SET_THROW );
564 static constexpr OUStringLiteral sPropertyName =
u"LocalSocket";
565 if ( xSettingsInfo->hasPropertyByName( sPropertyName ) )
567 OUString sPropertyValue;
568 if ( ( xDataSourceSettings->getPropertyValue( sPropertyName ) >>= sPropertyValue ) && !sPropertyValue.isEmpty() )
594 std::vector< TypedPropertyValue >::iterator
const & in)
596 css::uno::Sequence<T> anySeq;
597 bool bSuccess =
in->Value >>= anySeq;
598 assert(bSuccess); (void)bSuccess;
599 for (T
const &
i : std::as_const(anySeq) )
615 for ( ; aIter != aEnd; ++aIter )
617 const bool bIsSequence = TypeClass_SEQUENCE == aIter->Type.getTypeClass();
625 if ( bIsSequence && aSimpleType.getTypeClass() == TypeClass_ANY )
628 aIter->Value >>=
aSeq;
629 if (
aSeq.hasElements() )
646 switch (aSimpleType.getTypeClass())
648 case TypeClass_STRING:
649 exportDataSourceSettingsSequence< OUString >(
652 case TypeClass_DOUBLE:
653 exportDataSourceSettingsSequence< double >( aIter );
655 case TypeClass_BOOLEAN:
656 exportDataSourceSettingsSequence< sal_Bool >( aIter );
659 exportDataSourceSettingsSequence< sal_Int8 >( aIter );
661 case TypeClass_SHORT:
662 exportDataSourceSettingsSequence< sal_Int16 >( aIter );
665 exportDataSourceSettingsSequence< sal_Int32 >( aIter );
668 exportDataSourceSettingsSequence< Any >( aIter );
671 OSL_FAIL(
"unsupported sequence type !");
714 if ( _aValue.hasElements() )
718 const OUString* pIter = _aValue.getConstArray();
719 const OUString* pEnd = pIter + _aValue.getLength();
720 for(;pIter != pEnd;++pIter)
733 bool bAddLogin = !sValue.isEmpty();
747 ,enum ::xmloff::token::XMLTokenEnum _eComponents
748 ,enum ::xmloff::token::XMLTokenEnum _eSubComponents
749 ,
bool _bExportContext
750 ,const ::comphelper::mem_fun1_t<ODBExport,XPropertySet* >& _aMemFunc
753 if ( !_xCollection.is() )
756 std::unique_ptr<SvXMLElementExport> pComponents;
757 if ( _bExportContext )
759 Sequence< OUString>
aSeq = _xCollection->getElementNames();
760 const OUString* pIter =
aSeq.getConstArray();
761 const OUString* pEnd = pIter +
aSeq.getLength();
762 for(;pIter != pEnd;++pIter)
764 Reference<XPropertySet> xProp(_xCollection->getByName(*pIter),UNO_QUERY);
767 Reference< XNameAccess > xSub(xProp,UNO_QUERY);
770 exportCollection(xSub,_eSubComponents,_eSubComponents,_bExportContext,_aMemFunc);
772 else if ( xProp.is() )
773 _aMemFunc(
this,xProp.get());
782 _xProp->getPropertyValue(
"IsForm") >>= bIsForm;
784 sValue =
"forms/" + sValue;
786 sValue =
"reports/" + sValue;
790 bool bAsTemplate =
false;
813 Reference<XColumnsSupplier> xCol(_xProp,UNO_QUERY);
837 Reference<XColumnsSupplier> xCol(_xProp,UNO_QUERY);
845 Reference<XPropertySet> xFind(_xProp);
853 TPropertyStyleMap::const_iterator aFind = _rMap.find(_xProp);
854 if ( aFind != _rMap.end() )
866 if ( sValue.isEmpty() )
871 if ( !sValue.isEmpty() )
874 if ( !sValue.isEmpty() )
884 ,
const OUString& _sProp
885 ,enum ::xmloff::token::XMLTokenEnum _eStatementType)
889 _xProp->getPropertyValue(_sProp) >>= sCommand;
890 if ( !sCommand.isEmpty() )
900 OSL_PRECOND( _xColSup.is(),
"ODBExport::exportColumns: invalid columns supplier!" );
901 if ( !_xColSup.is() )
906 Reference<XNameAccess> xNameAccess( _xColSup->getColumns(), UNO_SET_THROW );
907 if ( !xNameAccess->hasElements() )
909 Reference< XPropertySet > xComponent(_xColSup,UNO_QUERY);
924 Sequence< OUString>
aSeq = xNameAccess->getElementNames();
925 const OUString* pIter =
aSeq.getConstArray();
926 const OUString* pEnd = pIter +
aSeq.getLength();
927 for( ; pIter != pEnd ; ++pIter)
929 Reference<XPropertySet> xProp(xNameAccess->getByName(*pIter),UNO_QUERY);
941 if ( bHidden || !sValue.isEmpty() || aColumnDefault.hasValue() || pAtt->getLength() )
947 if ( !sValue.isEmpty() )
950 if ( aColumnDefault.hasValue() )
952 OUStringBuffer sColumnDefaultString,
sType;
954 sColumnDefaultString,
sType, aColumnDefault );
959 if ( pAtt->getLength() )
982 if ( !sService.isEmpty() )
985 Reference<XFormDocumentsSupplier> xSup(
GetModel(),UNO_QUERY);
988 Reference< XNameAccess > xCollection = xSup->getFormDocuments();
989 if ( xCollection.is() && xCollection->hasElements() )
1002 aValue >>= sService;
1003 if ( !sService.isEmpty() )
1006 Reference<XReportDocumentsSupplier> xSup(
GetModel(),UNO_QUERY);
1009 Reference< XNameAccess > xCollection = xSup->getReportDocuments();
1010 if ( xCollection.is() && xCollection->hasElements() )
1023 aValue >>= sService;
1024 if ( !sService.isEmpty() )
1027 Reference<XQueryDefinitionsSupplier> xSup(
getDataSource(),UNO_QUERY);
1031 Reference< XNameAccess > xCollection = xSup->getQueryDefinitions();
1032 if ( xCollection.is() && xCollection->hasElements() )
1034 std::unique_ptr< ::comphelper::mem_fun1_t<ODBExport,XPropertySet* > > pMemFunc;
1035 if ( _bExportContext )
1050 Reference< XNameAccess > xCollection = xSup->getTables();
1051 if ( xCollection.is() && xCollection->hasElements() )
1053 std::unique_ptr< ::comphelper::mem_fun1_t<ODBExport,XPropertySet* > > pMemFunc;
1054 if ( _bExportContext )
1064 typedef std::pair<TPropertyStyleMap*,XmlStyleFamily> TEnumMapperPair;
1065 typedef std::pair< rtl::Reference < SvXMLExportPropertyMapper> , TEnumMapperPair> TExportPropMapperPair;
1066 Reference<XColumnsSupplier> xSup(_xProp,UNO_QUERY);
1069 const TExportPropMapperPair pExportHelper[] = {
1075 for (
const auto &
i : pExportHelper)
1077 std::vector< XMLPropertyState > aPropertyStates =
i.first->Filter(*
this, _xProp);
1078 if ( !aPropertyStates.empty() )
1079 i.second.first->emplace( _xProp,
GetAutoStylePool()->
Add(
i.second.second, std::move(aPropertyStates) ) );
1082 Reference< XNameAccess > xCollection;
1085 xCollection.set( xSup->getColumns(), UNO_SET_THROW );
1086 awt::FontDescriptor aFont;
1089 static_cast<FontPitch>(aFont.Pitch),aFont.CharSet );
1094 Reference< XDataDescriptorFactory> xFac(xCollection,UNO_QUERY);
1097 Reference< XPropertySet>
xColumn = xFac->createDataDescriptor();
1116 const TExportPropMapperPair pExportHelper[] = {
1120 for (
const auto &
i : pExportHelper)
1122 std::vector< XMLPropertyState > aPropStates =
i.first->Filter(*
this, _xProp);
1123 if ( !aPropStates.empty() )
1126 for (
auto & propState : aPropStates)
1128 if ( propState.mnIndex != -1 )
1130 switch ( pStyle->GetEntryContextId(propState.mnIndex) )
1134 sal_Int32 nNumberFormat = -1;
1135 if ( propState.maValue >>= nNumberFormat )
1140 if ( !propState.maValue.hasValue() )
1141 propState.maValue <<= css::awt::TextAlign::LEFT;
1148 if ( XmlStyleFamily::TABLE_CELL ==
i.second.second )
1150 if ( !aPropStates.empty() )
1151 i.second.first->emplace( _xProp,
GetAutoStylePool()->
Add(
i.second.second, std::move(aPropStates) ) );
1186 Reference<XQueryDefinitionsSupplier> xSup(
getDataSource(),UNO_QUERY);
1190 Reference< XNameAccess > xCollection = xSup->getQueryDefinitions();
1191 if ( !(xCollection.is() && xCollection->hasElements()) )
1196 sal_Int32
nLength = aProps.getLength();
1198 auto pProps = aProps.getArray();
1199 pProps[
nLength].Name =
"Queries";
1200 Sequence< OUString>
aSeq = xCollection->getElementNames();
1201 const OUString* pIter =
aSeq.getConstArray();
1202 const OUString* pEnd = pIter +
aSeq.getLength();
1204 Sequence<PropertyValue> aQueries(
aSeq.getLength());
1205 auto aQueriesRange = asNonConstRange(aQueries);
1206 for(sal_Int32
i = 0;pIter != pEnd;++pIter,++
i)
1208 Reference<XPropertySet> xProp(xCollection->getByName(*pIter),UNO_QUERY);
1211 aQueriesRange[
i].Name = *pIter;
1215 pProps[
nLength].Value <<= aQueries;
1230 sal_Int32
nLength = aProps.getLength();
1234 Sequence< PropertyValue > aPropValues;
1235 aValue >>= aPropValues;
1236 if ( aPropValues.hasElements() )
1239 auto pProps = aProps.getArray();
1240 pProps[
nLength].Name =
"layout-settings";
1241 pProps[
nLength].Value = aValue;
1246 OSL_FAIL(
"Could not access layout information from the data source!");
1253 switch (_rValue.getValueTypeClass())
1255 case TypeClass_STRING:
1257 OUString sCurrentValue;
1258 _rValue >>= sCurrentValue;
1259 aBuffer.append(sCurrentValue);
1262 case TypeClass_DOUBLE:
1266 case TypeClass_BOOLEAN:
1269 case TypeClass_BYTE:
1270 case TypeClass_SHORT:
1271 case TypeClass_LONG:
1276 OSL_FAIL(
"ODBExport::implConvertAny: Invalid type");
1279 return aBuffer.makeStringAndClear();
1316 Reference<XOfficeDatabaseDocument> xOfficeDoc(xDoc,UNO_QUERY_THROW);
1317 m_xDataSource.set(xOfficeDoc->getDataSource(),UNO_QUERY_THROW);
PropertiesInfo aProperties
const SvXMLNamespaceMap & GetNamespaceMap() const
OUString GetRelativeReference(const OUString &rValue)
void AddAttributeList(const css::uno::Reference< css::xml::sax::XAttributeList > &xAttrList)
void AddAttribute(sal_uInt16 nPrefix, const OUString &rName, const OUString &rValue)
void Characters(const OUString &rChars)
SvXMLExportFlags getExportFlags() const
SvXMLNamespaceMap & GetNamespaceMap_()
virtual void exportDataStyles()
const css::uno::Reference< css::frame::XModel > & GetModel() const
rtl::Reference< XMLFontAutoStylePool > const & GetFontAutoStylePool()
virtual void ExportFontDecls_()
rtl::Reference< XMLPageExport > const & GetPageExport()
virtual void SAL_CALL setSourceDocument(const css::uno::Reference< css::lang::XComponent > &xDoc) override
rtl::Reference< SvXMLAutoStylePoolP > const & GetAutoStylePool()
virtual void addDataStyle(const sal_Int32 nNumberFormat, bool bTimeFormat=false)
const css::uno::Reference< css::uno::XComponentContext > & getComponentContext() const
const SvXMLUnitConverter & GetMM100UnitConverter() const
comphelper::AttributeList & GetAttrList()
void SetNumberFormatsSupplier(const css::uno::Reference< css::util::XNumberFormatsSupplier > &_xNumberFormatSupplier)
sal_uInt16 Add(const OUString &rPrefix, const OUString &rName, sal_uInt16 nKey=XML_NAMESPACE_UNKNOWN)
void SetCoreMeasureUnit(sal_Int16 const eCoreMeasureUnit)
void SetXMLMeasureUnit(sal_Int16 const eXMLMeasureUnit)
OUString SubstituteVariable(const OUString &rVar) const
void AddAttribute(const OUString &sName, const OUString &sValue)
const ::comphelper::NamedValueCollection & getProperties(std::u16string_view _sURL) const
DATASOURCE_TYPE determineType(std::u16string_view _rDsn) const
OUString cutPrefix(std::u16string_view _sURL) const
on a given string, cut the type prefix and return the result
bool isFileSystemBased(std::u16string_view _sURL) const
check if the given data source type is based on the file system - i.e. the URL is a prefix plus a fil...
OUString getMediaType(std::u16string_view _sURL) const
returns the media type of a file based database
OUString getPrefix(std::u16string_view _sURL) const
on a given string, return the type prefix
void extractHostNamePort(const OUString &_rDsn, OUString &_sDatabaseName, OUString &_rHostname, sal_Int32 &_nPortNumber) const
virtual void GetViewSettings(css::uno::Sequence< css::beans::PropertyValue > &aProps) override
std::map< ::xmloff::token::XMLTokenEnum, OUString > TSettingsMap
Reference< XPropertySet > m_xDataSource
void exportDriverSettings(const TSettingsMap &_aSettings)
rtl::Reference< SvXMLExportPropertyMapper > m_xCellExportHelper
void exportTable(XPropertySet *_xProp)
rtl::Reference< XMLPropertySetMapper > const & GetTableStylesPropertySetMapper() const
rtl::Reference< SvXMLExportPropertyMapper > m_xRowExportHelper
rtl::Reference< XMLPropertySetMapper > m_xTableStylesPropertySetMapper
void exportQuery(XPropertySet *_xProp)
rtl::Reference< SvXMLExportPropertyMapper > m_xColumnExportHelper
virtual void ExportContent_() override
virtual void SAL_CALL setSourceDocument(const css::uno::Reference< css::lang::XComponent > &xDoc) override
void exportDataSourceSettingsSequence(std::vector< TypedPropertyValue >::iterator const &in)
std::pair< OUString,OUString > TStringPair
void exportCollection(const Reference< XNameAccess > &_xCollection, enum ::xmloff::token::XMLTokenEnum _eComponents, enum ::xmloff::token::XMLTokenEnum _eSubComponents, bool _bExportContext, const ::comphelper::mem_fun1_t< ODBExport, XPropertySet * > &_aMemFunc)
virtual void ExportFontDecls_() override
std::vector< TypedPropertyValue > m_aDataSourceSettings
::dbaccess::ODsnTypeCollection m_aTypeCollection
void exportTables(bool _bExportContext)
void exportColumns(const Reference< XColumnsSupplier > &_xColSup)
void exportTableName(XPropertySet *_xProp, bool _bUpdate)
void exportComponent(XPropertySet *_xProp)
void exportFilter(XPropertySet *_xProp, const OUString &_sProp, enum ::xmloff::token::XMLTokenEnum _eStatementType)
void exportStyleName(XPropertySet *_xProp, comphelper::AttributeList &_rAtt)
rtl::Reference< SvXMLExportPropertyMapper > m_xExportHelper
void exportAutoIncrement()
std::unique_ptr< TDelimiter > m_aDelimiter
virtual SvXMLAutoStylePoolP * CreateAutoStylePool() override
TPropertyStyleMap m_aCellAutoStyleNames
rtl::Reference< XMLPropertySetMapper > m_xCellStylesPropertySetMapper
void exportSequence(const Sequence< OUString > &_aValue,::xmloff::token::XMLTokenEnum _eTokenFilter,::xmloff::token::XMLTokenEnum _eTokenType)
void exportDataSourceSettings()
TPropertyStyleMap m_aAutoStyleNames
void exportQueries(bool _bExportContext)
rtl::Reference< XMLPropertySetMapper > m_xColumnStylesPropertySetMapper
rtl::Reference< XMLPropertySetMapper > const & GetColumnStylesPropertySetMapper() const
const Reference< XPropertySet > & getDataSource() const
void collectComponentStyles()
void exportConnectionData()
virtual void ExportAutoStyles_() override
std::optional< TStringPair > m_oAutoIncrement
virtual void ExportMasterStyles_() override
TTableColumnMap m_aTableDummyColumns
std::vector< XMLPropertyState > m_aCurrentPropertyStates
void exportAutoStyle(XPropertySet *_xProp)
static OUString implConvertAny(const Any &_rValue)
void exportApplicationConnectionSettings(const TSettingsMap &_aSettings)
TPropertyStyleMap m_aRowAutoStyleNames
virtual void GetConfigurationSettings(css::uno::Sequence< css::beans::PropertyValue > &aProps) override
rtl::Reference< XMLPropertySetMapper > const & GetCellStylesPropertySetMapper() const
static rtl::Reference< XMLPropertySetMapper > GetRowStylesPropertySetMapper()
static rtl::Reference< XMLPropertySetMapper > GetCellStylesPropertySetMapper(bool bForExport)
static rtl::Reference< XMLPropertySetMapper > GetColumnStylesPropertySetMapper(bool bForExport)
static rtl::Reference< XMLPropertySetMapper > GetTableStylesPropertySetMapper(bool bForExport)
static void convertDouble(OUStringBuffer &rBuffer, double fNumber, bool bWriteUnits, sal_Int16 nSourceUnit, sal_Int16 nTargetUnit)
static bool convertAny(OUStringBuffer &rsValue, OUStringBuffer &rsType, const css::uno::Any &rValue)
OUString get(NOTATION _eOutputNotation) const
#define TOOLS_WARN_EXCEPTION(area, stream)
#define DBG_UNHANDLED_EXCEPTION(...)
constexpr OUStringLiteral XML_STYLE_FAMILY_TABLE_ROW_STYLES_PREFIX
constexpr OUStringLiteral XML_STYLE_FAMILY_TABLE_CELL_STYLES_PREFIX
constexpr OUStringLiteral XML_STYLE_FAMILY_TABLE_COLUMN_STYLES_NAME
constexpr OUStringLiteral XML_STYLE_FAMILY_TABLE_COLUMN_STYLES_PREFIX
constexpr OUStringLiteral XML_STYLE_FAMILY_TABLE_TABLE_STYLES_PREFIX
constexpr OUStringLiteral XML_STYLE_FAMILY_TABLE_ROW_STYLES_NAME
constexpr OUStringLiteral XML_STYLE_FAMILY_TABLE_CELL_STYLES_NAME
constexpr OUStringLiteral XML_STYLE_FAMILY_TABLE_TABLE_STYLES_NAME
Sequence< sal_Int8 > aSeq
#define SAL_WARN_IF(condition, area, stream)
double getLength(const B2DPolygon &rCandidate)
OString stripEnd(const OString &rIn, char c)
bool getBOOL(const Any &_rAny)
Type getSequenceElementType(const Type &_rSequenceType)
double getDouble(const Any &_rAny)
sal_Int32 getINT32(const Any &_rAny)
OUString getString(const Any &_rAny)
DATASOURCE_TYPE
known datasource types
static OUString lcl_implGetPropertyXMLType(const Type &_rType)
constexpr OUStringLiteral implementationName
std::map< sal_Int32, STLPropertyMapEntry > PropertyMap
XML_ROW_RETRIEVING_STATEMENT
XML_IGNORE_DRIVER_PRIVILEGES
XML_TABLE_REPRESENTATIONS
XML_SUPPRESS_VERSION_COLUMNS
XML_IS_TABLE_NAME_LENGTH_LIMITED
XML_SYSTEM_DRIVER_SETTINGS
XML_DEFAULT_CELL_STYLE_NAME
XML_DATA_SOURCE_SETTING_NAME
XML_DATA_SOURCE_SETTING_TYPE
XML_IS_FIRST_ROW_HEADER_LINE
XML_PARAMETER_NAME_SUBSTITUTION
XML_DATA_SOURCE_SETTING_IS_LIST
XML_APPEND_TABLE_ALIAS_NAME
XML_APPLICATION_CONNECTION_SETTINGS
XML_BOOLEAN_COMPARISON_MODE
XML_ADDITIONAL_COLUMN_STATEMENT
XML_DATA_SOURCE_SETTING_VALUE
XML_DEFAULT_ROW_STYLE_NAME
const OUString & GetXMLToken(enum XMLTokenEnum eToken)
constexpr OUStringLiteral PROPERTY_COMMAND(u"Command")
constexpr OUStringLiteral PROPERTY_TABLEFILTER(u"TableFilter")
constexpr OUStringLiteral INFO_TEXTFILEEXTENSION
constexpr OUStringLiteral PROPERTY_USER(u"User")
constexpr OUStringLiteral INFO_SHOWDELETEDROWS
constexpr OUStringLiteral PROPERTY_URL(u"URL")
constexpr OUStringLiteral PROPERTY_UPDATE_TABLENAME(u"UpdateTableName")
constexpr OUStringLiteral INFO_AUTORETRIEVEVALUE
constexpr OUStringLiteral PROPERTY_CONTROLDEFAULT(u"ControlDefault")
constexpr OUStringLiteral PROPERTY_NUMBERFORMATSSUPPLIER(u"NumberFormatsSupplier")
constexpr OUStringLiteral PROPERTY_ENABLESQL92CHECK(u"EnableSQL92Check")
constexpr OUStringLiteral INFO_DECIMALDELIMITER
constexpr OUStringLiteral INFO_APPEND_TABLE_ALIAS
constexpr OUStringLiteral INFO_TEXTFILEHEADER
constexpr OUStringLiteral PROPERTY_UPDATE_SCHEMANAME(u"UpdateSchemaName")
constexpr OUStringLiteral PROPERTY_SETTINGS(u"Settings")
constexpr OUStringLiteral INFO_CONN_LDAP_ROWCOUNT
constexpr OUStringLiteral PROPERTY_SCHEMANAME(u"SchemaName")
constexpr OUStringLiteral INFO_PARAMETERNAMESUBST
constexpr OUStringLiteral PROPERTY_DESCRIPTION(u"Description")
constexpr OUStringLiteral PROPERTY_PERSISTENT_NAME(u"PersistentName")
constexpr OUStringLiteral PROPERTY_APPLYFILTER(u"ApplyFilter")
constexpr OUStringLiteral INFO_IGNOREDRIVER_PRIV
constexpr OUStringLiteral INFO_TEXTDELIMITER
constexpr OUStringLiteral PROPERTY_BOOLEANCOMPARISONMODE(u"BooleanComparisonMode")
constexpr OUStringLiteral PROPERTY_APPLYORDER(u"ApplyOrder")
constexpr OUStringLiteral PROPERTY_FILTER(u"Filter")
constexpr OUStringLiteral INFO_AUTORETRIEVEENABLED
constexpr OUStringLiteral PROPERTY_TABLETYPEFILTER(u"TableTypeFilter")
constexpr OUStringLiteral PROPERTY_FONT(u"FontDescriptor")
constexpr OUStringLiteral PROPERTY_ESCAPE_PROCESSING(u"EscapeProcessing")
constexpr OUStringLiteral INFO_CHARSET
constexpr OUStringLiteral PROPERTY_CATALOGNAME(u"CatalogName")
constexpr OUStringLiteral PROPERTY_HELPTEXT(u"HelpText")
constexpr OUStringLiteral PROPERTY_AS_TEMPLATE(u"AsTemplate")
constexpr OUStringLiteral INFO_ADDITIONALOPTIONS
constexpr OUStringLiteral PROPERTY_SUPPRESSVERSIONCL(u"SuppressVersionColumns")
constexpr OUStringLiteral INFO_ALLOWLONGTABLENAMES
constexpr OUStringLiteral PROPERTY_NAME(u"Name")
constexpr OUStringLiteral PROPERTY_UPDATE_CATALOGNAME(u"UpdateCatalogName")
constexpr OUStringLiteral PROPERTY_LAYOUTINFORMATION(u"LayoutInformation")
constexpr OUStringLiteral INFO_FIELDDELIMITER
constexpr OUStringLiteral INFO_THOUSANDSDELIMITER
constexpr OUStringLiteral PROPERTY_HIDDEN(u"Hidden")
constexpr OUStringLiteral PROPERTY_AUTOINCREMENTCREATION(u"AutoIncrementCreation")
constexpr OUStringLiteral INFO_CONN_LDAP_BASEDN
constexpr OUStringLiteral PROPERTY_ISPASSWORDREQUIRED(u"IsPasswordRequired")
constexpr OUStringLiteral PROPERTY_ORDER(u"Order")
constexpr OUStringLiteral INFO_USECATALOG
std::unique_ptr< char[]> aBuffer
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_sdb_XMLFullExporter_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_sdb_DBExportFilter_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_sdb_XMLSettingsExporter_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
#define CTF_DB_COLUMN_TEXT_ALIGN
#define CTF_DB_NUMBERFORMAT
constexpr sal_uInt16 XML_NAMESPACE_DB
constexpr sal_uInt16 XML_NAMESPACE_XLINK
constexpr sal_uInt16 XML_NAMESPACE_SVG
constexpr sal_uInt16 XML_NAMESPACE_TABLE
constexpr sal_uInt16 XML_NAMESPACE_OFFICE
constexpr sal_uInt16 XML_NAMESPACE_CONFIG
constexpr sal_uInt16 XML_NAMESPACE_OOO
constexpr sal_uInt16 XML_NAMESPACE_STYLE
constexpr sal_uInt16 XML_NAMESPACE_FO
constexpr sal_uInt16 XML_NAMESPACE_NUMBER