1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: SvXMLAutoCorrectExport.cxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 // MARKER(update_precomp.py): autogen include statement, do not remove
32 #include "precompiled_svx.hxx"
33 #include <SvXMLAutoCorrectExport.hxx>
34 #define _SVSTDARR_STRINGSISORTDTOR
35 #define _SVSTDARR_STRINGSDTOR
36 #include <svtools/svstdarr.hxx>
37 #include <xmloff/xmltoken.hxx>
39 using namespace ::com::sun::star::uno
;
40 using namespace ::com::sun::star
;
41 using namespace ::xmloff::token
;
42 using namespace ::rtl
;
45 SvXMLAutoCorrectExport::SvXMLAutoCorrectExport(
46 const ::com::sun::star::uno::Reference
< ::com::sun::star::lang::XMultiServiceFactory
> xServiceFactory
,
47 const SvxAutocorrWordList
* pNewAutocorr_List
,
48 const rtl::OUString
&rFileName
,
49 com::sun::star::uno::Reference
< com::sun::star::xml::sax::XDocumentHandler
> &rHandler
)
50 : SvXMLExport( xServiceFactory
, rFileName
, rHandler
),
51 pAutocorr_List( pNewAutocorr_List
)
53 _GetNamespaceMap().Add( GetXMLToken ( XML_NP_BLOCK_LIST
),
54 GetXMLToken ( XML_N_BLOCK_LIST
),
55 XML_NAMESPACE_BLOCKLIST
);
58 sal_uInt32
SvXMLAutoCorrectExport::exportDoc(enum XMLTokenEnum
/*eClass*/)
60 GetDocHandler()->startDocument();
62 AddAttribute ( XML_NAMESPACE_NONE
,
63 _GetNamespaceMap().GetAttrNameByKey ( XML_NAMESPACE_BLOCKLIST
),
64 _GetNamespaceMap().GetNameByKey ( XML_NAMESPACE_BLOCKLIST
) );
66 SvXMLElementExport
aRoot (*this, XML_NAMESPACE_BLOCKLIST
, XML_BLOCK_LIST
, sal_True
, sal_True
);
67 sal_uInt16 nBlocks
= pAutocorr_List
->Count();
68 for ( sal_uInt16 i
= 0; i
< nBlocks
; i
++)
70 SvxAutocorrWord
* p
= pAutocorr_List
->GetObject(i
);
72 AddAttribute( XML_NAMESPACE_BLOCKLIST
,
74 OUString(p
->GetShort()));
75 AddAttribute( XML_NAMESPACE_BLOCKLIST
,
77 OUString(p
->IsTextOnly() ? p
->GetLong() : p
->GetShort()));
79 SvXMLElementExport
aBlock( *this, XML_NAMESPACE_BLOCKLIST
, XML_BLOCK
, sal_True
, sal_True
);
82 GetDocHandler()->endDocument();
87 SvXMLExceptionListExport::SvXMLExceptionListExport(
88 const ::com::sun::star::uno::Reference
< ::com::sun::star::lang::XMultiServiceFactory
> xServiceFactory
,
89 const SvStringsISortDtor
&rNewList
,
90 const rtl::OUString
&rFileName
,
91 com::sun::star::uno::Reference
< com::sun::star::xml::sax::XDocumentHandler
> &rHandler
)
92 : SvXMLExport( xServiceFactory
, rFileName
, rHandler
),
95 _GetNamespaceMap().Add( GetXMLToken ( XML_NP_BLOCK_LIST
),
96 GetXMLToken ( XML_N_BLOCK_LIST
),
97 XML_NAMESPACE_BLOCKLIST
);
100 sal_uInt32
SvXMLExceptionListExport::exportDoc(enum XMLTokenEnum
/*eClass*/)
102 GetDocHandler()->startDocument();
104 AddAttribute ( XML_NAMESPACE_NONE
,
105 _GetNamespaceMap().GetAttrNameByKey ( XML_NAMESPACE_BLOCKLIST
),
106 _GetNamespaceMap().GetNameByKey ( XML_NAMESPACE_BLOCKLIST
) );
108 SvXMLElementExport
aRoot (*this, XML_NAMESPACE_BLOCKLIST
, XML_BLOCK_LIST
, sal_True
, sal_True
);
109 sal_uInt16 nBlocks
= rList
.Count();
110 for ( sal_uInt16 i
= 0; i
< nBlocks
; i
++)
112 AddAttribute( XML_NAMESPACE_BLOCKLIST
,
113 XML_ABBREVIATED_NAME
,
114 OUString( *rList
[i
] ) );
115 SvXMLElementExport
aBlock( *this, XML_NAMESPACE_BLOCKLIST
, XML_BLOCK
, sal_True
, sal_True
);
118 GetDocHandler()->endDocument();