summaryrefslogtreecommitdiff
path: root/xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/FlatXml.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/FlatXml.cxx')
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/FlatXml.cxx523
1 files changed, 0 insertions, 523 deletions
diff --git a/xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/FlatXml.cxx b/xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/FlatXml.cxx
deleted file mode 100644
index 3aa3c7be2ad5..000000000000
--- a/xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/FlatXml.cxx
+++ /dev/null
@@ -1,523 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_xmerge.hxx"
-#include <stdio.h>
-#include <osl/mutex.hxx>
-#include <osl/thread.h>
-#include <cppuhelper/factory.hxx>
-
-#include <cppuhelper/servicefactory.hxx>
-
-#include <com/sun/star/uno/XNamingService.hpp>
-
-#include <com/sun/star/registry/XImplementationRegistration.hpp>
-
-#include <com/sun/star/connection/XConnector.hpp>
-
-#include <com/sun/star/bridge/XUnoUrlResolver.hpp>
-#include <com/sun/star/lang/XMain.hpp>
-#include <com/sun/star/lang/XComponent.hpp>
-
-#include <com/sun/star/frame/XComponentLoader.hpp>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Type.hxx>
-#include <com/sun/star/beans/PropertyValue.hpp>
-#include <com/sun/star/text/XTextDocument.hpp>
-#include <cppuhelper/implbase1.hxx>
-#include <cppuhelper/implbase2.hxx>
-#include <cppuhelper/implbase3.hxx>
-#include <cppuhelper/implbase.hxx>
-#include <com/sun/star/xml/sax/XDocumentHandler.hpp>
-#include <com/sun/star/xml/sax/SAXException.hpp>
-#include <com/sun/star/xml/XImportFilter.hpp>
-
-#include <com/sun/star/xml/XExportFilter.hpp>
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/io/XOutputStream.hpp>
-#include <com/sun/star/frame/XConfigManager.hpp>
-#include <rtl/textenc.h>
-#include <com/sun/star/xml/sax/XParser.hpp>
-#include <com/sun/star/xml/sax/InputSource.hpp>
-using namespace ::rtl;
-using namespace ::cppu;
-using namespace ::osl;
-
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::registry;
-using namespace ::com::sun::star::connection;
-using namespace ::com::sun::star::container;
-using namespace ::com::sun::star::bridge;
-using namespace ::com::sun::star::text;
-using namespace ::com::sun::star::frame;
-using com::sun::star::uno::Sequence;
-using com::sun::star::uno::Reference;
-using com::sun::star::uno::Any;
-using com::sun::star::uno::UNO_QUERY;
-using com::sun::star::uno::XInterface;
-using com::sun::star::xml::sax::XDocumentHandler;
-using rtl::OUString;
-
-namespace XFlatXml {
-
-void mygetchar()
-{
-#ifdef SAL_W32
- _fgetchar();
-#else
- getchar();
-#endif
-}
-
-
-
-//,com::sun::star::xml::sax::XDocumentHandler,com::sun::star::xml::XExportFilter
-class XFlatXml : public WeakImplHelper3< com::sun::star::xml::XImportFilter,com::sun::star::xml::XExportFilter,com::sun::star::xml::sax::XDocumentHandler>
-{
-private:
- Reference< XMultiServiceFactory > xMSF;
- int indentation;
- bool followsEndNode;
- bool followsStartNode;
-
-
-public:
-
- XFlatXml( const Reference< XMultiServiceFactory > &r ) : xMSF( r )
- {}
-
- virtual sal_Bool SAL_CALL importer(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aSourceData, const com::sun::star::uno::Reference<com::sun::star::xml::sax::XDocumentHandler>& xHandler, const com::sun::star::uno::Sequence<rtl::OUString>& msUserData) throw(RuntimeException);
-
- virtual sal_Bool SAL_CALL exporter(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aSourceData, const com::sun::star::uno::Sequence<rtl::OUString>& msUserData) throw(RuntimeException);
- Reference < com::sun::star::io::XOutputStream > xOutputStream;
-
- virtual void SAL_CALL startDocument() throw (com::sun::star::xml::sax::SAXException,RuntimeException) ;
- virtual void SAL_CALL endDocument() throw (com::sun::star::xml::sax::SAXException,RuntimeException);
- virtual void SAL_CALL startElement(const rtl::OUString& str, const com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList>& attriblist) throw (com::sun::star::xml::sax::SAXException,RuntimeException);
- virtual void SAL_CALL endElement(const rtl::OUString& str) throw (com::sun::star::xml::sax::SAXException,RuntimeException);
- virtual void SAL_CALL characters(const rtl::OUString& str) throw (com::sun::star::xml::sax::SAXException,RuntimeException);
- virtual void SAL_CALL ignorableWhitespace(const rtl::OUString& str) throw (com::sun::star::xml::sax::SAXException,RuntimeException);
- virtual void SAL_CALL processingInstruction(const rtl::OUString& str, const rtl::OUString& str2) throw (com::sun::star::xml::sax::SAXException,RuntimeException) ;
- virtual void SAL_CALL setDocumentLocator(const com::sun::star::uno::Reference<com::sun::star::xml::sax::XLocator>& doclocator) throw (com::sun::star::xml::sax::SAXException,RuntimeException) ;
-
-};
-
- OUString replace(OUString origString, OUString origChar, OUString replaceChar){
- OUString tmp=rtl::OUString::createFromAscii("");
- int index=origString.indexOf(origChar);
- if(index !=-1){
- while (index !=-1){
- OUString first =origString.copy(0,index);
- first=first.concat(replaceChar);
- tmp=tmp.concat(first);
- origString=origString.copy(index+1,origString.getLength());
- index=origString.indexOf(origChar);
- if(index==-1) {
- tmp=tmp.concat(origString);
- }
-
- }
-
- }
-
- return tmp;
- }
-
-OUString needsMask(OUString origString){
-
- if (origString.indexOf(rtl::OUString::createFromAscii("&"))!=-1){
- origString=replace(origString,rtl::OUString::createFromAscii("&"),rtl::OUString::createFromAscii("&amp;"));
- }
- if (origString.indexOf(rtl::OUString::createFromAscii("\""))!=-1){
- origString=replace(origString,rtl::OUString::createFromAscii("\""),rtl::OUString::createFromAscii("&quot;"));
- }
- if (origString.indexOf(rtl::OUString::createFromAscii("<"))!=-1){
- origString=replace(origString,rtl::OUString::createFromAscii("<"),rtl::OUString::createFromAscii("&lt;"));
- }
- if (origString.indexOf(rtl::OUString::createFromAscii(">"))!=-1){
- origString=replace(origString,rtl::OUString::createFromAscii(">"),rtl::OUString::createFromAscii("&gt;"));
- }
- return origString;
-
- }
-
-
-sal_Bool XFlatXml::importer(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aSourceData, const com::sun::star::uno::Reference<com::sun::star::xml::sax::XDocumentHandler>& xHandler, const com::sun::star::uno::Sequence<rtl::OUString>& msUserData) throw (RuntimeException)
-{
- /*
- fprintf (stderr,"\nFound the C++ importer");
-
- fprintf(stderr,"\nUserData : %s",OUStringToOString( msUserData[0], RTL_TEXTENCODING_ASCII_US ).getStr());
-
- fprintf(stderr,"\nUserData : %s",OUStringToOString( msUserData[1], RTL_TEXTENCODING_ASCII_US ).getStr());
-
- fprintf(stderr,"\nUserData : %s",OUStringToOString( msUserData[2], RTL_TEXTENCODING_ASCII_US ).getStr());
- fprintf(stderr,"\nUserData : %s",OUStringToOString( msUserData[3], RTL_TEXTENCODING_ASCII_US ).getStr());
- */
- OUString udConvertClass=msUserData[0];
- OUString udJarPath=msUserData[1];
- OUString udImport =msUserData[2];
- OUString udExport =msUserData[3];
- sal_Int32 nLength = aSourceData.getLength();
- OUString sFileName= OUString::createFromAscii("");
- OUString sDirectory = OUString::createFromAscii("");
- OUString sURL = OUString::createFromAscii("");
- Reference<com::sun::star::io::XInputStream> xInputStream;
- Sequence<com::sun::star::beans::PropertyValue> pValue=aSourceData;
- for ( sal_Int32 i = 0 ; i < nLength; i++)
- {
-
- if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "InputStream" ) ) )
- pValue[i].Value >>= xInputStream;
-
- else if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "FileName" ) ) )
- pValue[i].Value >>= sFileName;
- else if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "URL" ) ) )
- {
- pValue[i].Value >>= sURL;
- sal_Int32 stringIndex = sURL.lastIndexOf(OUString::createFromAscii("/"));
- sFileName = sURL.copy(stringIndex+1, sURL.getLength()-stringIndex);
- sDirectory = sURL.copy(7,sURL.getLength()-7);
- }
- }
- if ( !xInputStream.is() )
- {
- OSL_ASSERT( 0 );
- return sal_False;
- }
- Reference<XConfigManager > xConfMgr( XFlatXml::xMSF->createInstance(
- OUString::createFromAscii("com.sun.star.config.SpecialConfigManager")),UNO_QUERY );
-
- if(! xConfMgr.is()){
- fprintf (stderr, "::com::sun::star::frame::XConfigManager service missing\n" );
- return sal_False;
- }
-
-
- const OUString sSaxParser ( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.xml.sax.Parser") );
- OUString sXMLImportService ( udImport );
- Reference < com::sun::star::xml::sax::XParser > xSaxParser( XFlatXml::xMSF->createInstance( sSaxParser ), UNO_QUERY );
- Reference <XInterface> xPipe;
- xPipe= XFlatXml::xMSF->createInstance(OUString::createFromAscii("com.sun.star.io.Pipe"));
- if(!xPipe.is()){
- fprintf(stderr,"XMLReader::Read:com.sun.star.io.Pipe service missing\n");
- return sal_False;
- }
- //else fprintf(stderr,"pipe created\n");
-
-
- Reference< com::sun::star::io::XInputStream > xPipeInput (xPipe,UNO_QUERY);
-
- //inputStream from pipe
-
- Reference< com::sun::star::io::XOutputStream > xTmpOutputStream (xPipe,UNO_QUERY);
-
- com::sun::star::xml::sax::InputSource aInput;
- aInput.sSystemId = sFileName;
- //aInput.aInputStream = xPipeInput;
- aInput.aInputStream =xInputStream;
- xSaxParser->setDocumentHandler ( xHandler );
- try
- {
-
- xSaxParser->parseStream ( aInput );
- }
- catch( Exception &exc)
- {
- fprintf(stderr,"\nParseStream Exception\n");
- fprintf(stderr, "Fell into the catch block!: %s\n",OUStringToOString(
- exc.Message, RTL_TEXTENCODING_ASCII_US).getStr() );
-
- }
-
- return sal_True;
-}
-
-sal_Bool XFlatXml::exporter(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>& aSourceData, const com::sun::star::uno::Sequence<rtl::OUString>& msUserData) throw (RuntimeException){
- /*
- fprintf (stderr,"\nFound the C++ exporter");
-
- fprintf(stderr,"\nUserData : %s",OUStringToOString( msUserData[0], RTL_TEXTENCODING_ASCII_US ).getStr());
-
- fprintf(stderr,"\nUserData : %s",OUStringToOString( msUserData[1], RTL_TEXTENCODING_ASCII_US ).getStr());
-
- fprintf(stderr,"\nUserData : %s",OUStringToOString( msUserData[2], RTL_TEXTENCODING_ASCII_US ).getStr());
- fprintf(stderr,"\nUserData : %s",OUStringToOString( msUserData[3], RTL_TEXTENCODING_ASCII_US ).getStr());
- */
-
- sal_Int32 nLength = aSourceData.getLength();
- Sequence<com::sun::star::beans::PropertyValue> pValue = aSourceData;
- OUString sFileName=OUString::createFromAscii("");
- OUString sDirectory= OUString::createFromAscii("");
- OUString sURL =OUString::createFromAscii("") ;
- for ( sal_Int32 i = 0 ; i < nLength; i++)
- {
-
- if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "OutputStream" ) ) )
- {
- pValue[i].Value >>= XFlatXml::xOutputStream;
- break;
- }
- else if ( pValue[i].Name.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "URL" ) ) )
- { pValue[i].Value >>= sURL;
- sal_Int32 stringIndex = sURL.lastIndexOf(OUString::createFromAscii("/"));
- sFileName = sURL.copy(stringIndex+1, sURL.getLength()-stringIndex);
- sDirectory = sURL.copy(7,sURL.getLength()-7);
- }
- }
-
-
-
- return sal_True;
-}
-
-
-
-
-
- void XFlatXml::startDocument() throw (com::sun::star::xml::sax::SAXException,RuntimeException){
- //fprintf(stderr,"\nStartDocument ");
- indentation=0;
- followsEndNode=false;
- followsStartNode=false;
- // xExportHandler->startDocument();
-
- }
-
- void XFlatXml::endDocument() throw (com::sun::star::xml::sax::SAXException,RuntimeException){
- //fprintf(stderr,"\nEndDocument ");
- //xExportHandler->endDocument();
- }
-
- void XFlatXml::startElement(const rtl::OUString& str, const com::sun::star::uno::Reference<com::sun::star::xml::sax::XAttributeList>& attriblist) throw (com::sun::star::xml::sax::SAXException,RuntimeException)
- {
- OUString indent=OUString::createFromAscii("");
- if (followsStartNode){
- indent+=OUString::createFromAscii("\n");
- for (int i=0 ;i<indentation;i++){
- indent+=OUString::createFromAscii(" ");
- }
- }
- OUString lt =indent;
- lt+=OUString::createFromAscii("<");
- lt+= (str);
-
- if (attriblist !=NULL)
- {
- lt += OUString::createFromAscii(" ");
- int len=attriblist->getLength();
- for (short i=0;i<len;i++)
- {
- lt +=attriblist->getNameByIndex(i);
- lt +=OUString::createFromAscii("=\"");
- lt +=needsMask(attriblist->getValueByIndex(i));
- lt +=OUString::createFromAscii("\" ");
- }
- }
- lt+=OUString::createFromAscii(">");
- OString sStr= OUStringToOString(lt, RTL_TEXTENCODING_UTF8);
- Sequence <sal_Int8> b((const sal_Int8 *)sStr.getStr(),sStr.getLength());
- //Sequence <sal_Int8>b((const sal_Int8 *)OUStringToOString( lt, RTL_TEXTENCODING_UTF8 ).getStr(),(OUStringToOString( lt, RTL_TEXTENCODING_UTF8 ).getStr()).getLength());
- try{
-
- XFlatXml::xOutputStream->writeBytes(b);
- }
- catch ( Exception &exc){
- fprintf(stderr,"Exception");
- }
- indentation++;
- }
-
- void XFlatXml::endElement(const rtl::OUString& str) throw (com::sun::star::xml::sax::SAXException,RuntimeException) {
- OUString indent=OUString::createFromAscii("");
- indentation--;
- if (followsEndNode){
- indent+=OUString::createFromAscii("\n");
- for (int i=0 ;i<indentation;i++){
- indent+=OUString::createFromAscii(" ");
- }
- }
- OUString lt =indent;
- lt+=OUString::createFromAscii("</");
- //OUString lt =OUString::createFromAscii("</");
- lt+= (str);
-
- lt+=OUString::createFromAscii(">");
- //System.out.println(str);
- //fprintf(stderr,"%s",OUStringToOString( lt, RTL_TEXTENCODING_ASCII_US ).getStr());
- OString sStr= OUStringToOString(lt, RTL_TEXTENCODING_UTF8);
- Sequence <sal_Int8> b((const sal_Int8 *)sStr.getStr(),sStr.getLength());
- try{
-
- XFlatXml::xOutputStream->writeBytes(b);
- }
- catch ( Exception &exc){
-
- }
- followsEndNode=true;
- followsStartNode=true;
-}
-
- void XFlatXml::characters(const rtl::OUString& str) throw (com::sun::star::xml::sax::SAXException,RuntimeException) {
- //fprintf(stderr,"\n %s ",OUStringToOString(str, RTL_TEXTENCODING_ASCII_US).getStr());
- OUString newStr = needsMask(str);
- OString sStr= OUStringToOString(newStr, RTL_TEXTENCODING_UTF8);
- Sequence <sal_Int8> b((const sal_Int8 *)sStr.getStr(),sStr.getLength());
- try{
-
- XFlatXml::xOutputStream->writeBytes(b);
- }
- catch ( Exception &exc){
-
- }
- followsEndNode=false;
- followsStartNode=false;
- }
-
-
- void XFlatXml::ignorableWhitespace(const rtl::OUString& str) throw (com::sun::star::xml::sax::SAXException,RuntimeException){
- //xExportHandler->ignorableWhitespace( str);
-
- //fprintf(stderr,"%s",OUStringToOString( str, RTL_TEXTENCODING_ASCII_US ).getStr());
- /*
- OString sStr= OUStringToOString(str, RTL_TEXTENCODING_UTF8);
- Sequence <sal_Int8> b((const sal_Int8 *)sStr.getStr(),sStr.getLength());
- try{
-
- XFlatXml::xOutputStream->writeBytes(b);
- }
- catch ( Exception &exc){
-
- }
- */
-
-}
-
- void XFlatXml::processingInstruction(const rtl::OUString& str, const rtl::OUString& str2) throw (com::sun::star::xml::sax::SAXException,RuntimeException) {
- //xExportHandler->processingInstruction( str, str2);
-}
-
- void XFlatXml::setDocumentLocator(const com::sun::star::uno::Reference<com::sun::star::xml::sax::XLocator>& doclocator) throw (com::sun::star::xml::sax::SAXException,RuntimeException) {
- //xExportHandler->setDocumentLocator( doclocator);
- }
-
-
-
-Reference< XInterface > SAL_CALL CreateInstance( const Reference< XMultiServiceFactory > &r)
-{
- //fprintf(stderr,"\nCreateInstance\n");
- //return Reference< XInterface > ( ( OWeakObject * ) new OfficeClientMain(r) );
- return Reference< XInterface > ( ( OWeakObject * ) new XFlatXml(r) );
-}
-
-Sequence< OUString > getSupportedServiceNames()
-{
- //fprintf(stderr,"\ngetSupportedServiceNames\n");
- static Sequence < OUString > *pNames = 0;
- if( ! pNames )
- {
- MutexGuard guard( Mutex::getGlobalMutex() );
- if( !pNames )
- {
- static Sequence< OUString > seqNames(2);
- seqNames.getArray()[0] = OUString::createFromAscii( "com.sun.star.documentconversion.XFlatXml" );
- pNames = &seqNames;
- }
- }
- return *pNames;
-}
-
-}
-
-using namespace XFlatXml;
-#define IMPLEMENTATION_NAME "com.sun.star.documentconversion.XFlatXml"
-
-
-extern "C"
-{
-//==================================================================================================
-void SAL_CALL component_getImplementationEnvironment(
- const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
-{
- // printf("\ncomponent_getImplementationEnvironment\n");
- *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
-
-}
-//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
-
- //fprintf(stderr,"\ncomponent_writeInfo\n");
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- OUString::createFromAscii( "/" IMPLEMENTATION_NAME "/UNO/SERVICES" ) ) );
-
- const Sequence< OUString > & rSNL = getSupportedServiceNames();
- const OUString * pArray = rSNL.getConstArray();
- for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-//==================================================================================================
-void * SAL_CALL component_getFactory(
- const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
-{
- //fprintf(stderr,"\ncomponent_getFactory");
- void * pRet = 0;
-
- if (pServiceManager && rtl_str_compare( pImplName, IMPLEMENTATION_NAME ) == 0)
- {
- Reference< XSingleServiceFactory > xFactory( createSingleFactory(
- reinterpret_cast< XMultiServiceFactory * >( pServiceManager ),
- OUString::createFromAscii( pImplName ),
- CreateInstance, getSupportedServiceNames() ) );
-
- if (xFactory.is())
- {
- xFactory->acquire();
- pRet = xFactory.get();
- }
- }
-
- return pRet;
-}
-}