diff options
Diffstat (limited to 'framework/source/services/mediatypedetectionhelper.cxx')
-rw-r--r-- | framework/source/services/mediatypedetectionhelper.cxx | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/framework/source/services/mediatypedetectionhelper.cxx b/framework/source/services/mediatypedetectionhelper.cxx new file mode 100644 index 000000000000..1033cbda7913 --- /dev/null +++ b/framework/source/services/mediatypedetectionhelper.cxx @@ -0,0 +1,111 @@ +/************************************************************************* + * + * 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_framework.hxx" + +//_________________________________________________________________________________________________________________ +// my own includes +//_________________________________________________________________________________________________________________ +#include <services/mediatypedetectionhelper.hxx> +#include <services.h> +#include <svl/inettype.hxx> +#include <tools/string.hxx> +#include <rtl/logfile.hxx> + +//_________________________________________________________________________________________________________________ +// interface includes +//_________________________________________________________________________________________________________________ + +//_________________________________________________________________________________________________________________ +// namespace +//_________________________________________________________________________________________________________________ + +namespace framework +{ + +using namespace ::com::sun::star ; +using namespace ::rtl ; + +//_________________________________________________________________________________________________________________ +// declarations +//_________________________________________________________________________________________________________________ + +//***************************************************************************************************************** +// constructor +//***************************************************************************************************************** +MediaTypeDetectionHelper::MediaTypeDetectionHelper( const uno::Reference< lang::XMultiServiceFactory >& xFactory ) + : m_xFactory( xFactory ) +{ +} + +//***************************************************************************************************************** +// destructor +//***************************************************************************************************************** +MediaTypeDetectionHelper::~MediaTypeDetectionHelper() +{ +} + +DEFINE_XSERVICEINFO_ONEINSTANCESERVICE ( MediaTypeDetectionHelper + , ::cppu::OWeakObject + , SERVICENAME_MEDIATYPEDETECTIONHELPER + , IMPLEMENTATIONNAME_MEDIATYPEDETECTIONHELPER + ) + +DEFINE_INIT_SERVICE ( MediaTypeDetectionHelper, + { + } + ) + +//***************************************************************************************************************** +// XStringMapping +//***************************************************************************************************************** + +//virtual +sal_Bool SAL_CALL MediaTypeDetectionHelper::mapStrings( + uno::Sequence< OUString >& rSeq ) + throw(uno::RuntimeException) +{ + sal_Bool bModified = sal_False; + for( sal_Int32 i = rSeq.getLength(); i--; ) + { + + OUString& rUrl = rSeq[i]; + INetContentType eType = INetContentTypes::GetContentTypeFromURL( rUrl ); + + UniString aType( INetContentTypes::GetContentType( eType ) ); + if( aType.Len() ) + { + rUrl = aType; + bModified = sal_True; + } + } + return bModified; +} + +} // namespace framework + |