/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * 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 * * for a copy of the LGPLv3 License. * ************************************************************************/ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_shell.hxx" //------------------------------------------------------------------------ // includes //------------------------------------------------------------------------ #include #include "cmdmailmsg.hxx" #include #include #include #include //------------------------------------------------------------------------ // namespace directives //------------------------------------------------------------------------ using com::sun::star::lang::IllegalArgumentException; using com::sun::star::lang::WrappedTargetException; using com::sun::star::container::NoSuchElementException; using com::sun::star::container::XNameAccess; using rtl::OUString; using osl::MutexGuard; using namespace cppu; using namespace com::sun::star::uno; //------------------------------------------------ void SAL_CALL CmdMailMsg::setRecipient( const ::rtl::OUString& aRecipient ) throw (RuntimeException) { MutexGuard aGuard( m_aMutex ); m_aRecipient = aRecipient; } //------------------------------------------------ ::rtl::OUString SAL_CALL CmdMailMsg::getRecipient( ) throw (RuntimeException) { MutexGuard aGuard( m_aMutex ); return m_aRecipient; } //------------------------------------------------ void SAL_CALL CmdMailMsg::setCcRecipient( const Sequence< OUString >& aCcRecipient ) throw (RuntimeException) { MutexGuard aGuard( m_aMutex ); m_CcRecipients = aCcRecipient; } //------------------------------------------------ Sequence< OUString > SAL_CALL CmdMailMsg::getCcRecipient( ) throw (RuntimeException) { MutexGuard aGuard( m_aMutex ); return m_CcRecipients; } //------------------------------------------------ void SAL_CALL CmdMailMsg::setBccRecipient( const Sequence< OUString >& aBccRecipient ) throw (RuntimeException) { MutexGuard aGuard( m_aMutex ); m_BccRecipients = aBccRecipient; } //------------------------------------------------ Sequence< OUString > SAL_CALL CmdMailMsg::getBccRecipient( ) throw (RuntimeException) { MutexGuard aGuard( m_aMutex ); return m_BccRecipients; } //------------------------------------------------ void SAL_CALL CmdMailMsg::setOriginator( const OUString& aOriginator ) throw (RuntimeException) { MutexGuard aGuard( m_aMutex ); m_aOriginator = aOriginator; } //------------------------------------------------ OUString SAL_CALL CmdMailMsg::getOriginator( ) throw (RuntimeException) { MutexGuard aGuard( m_aMutex ); return m_aOriginator; } //------------------------------------------------ void SAL_CALL CmdMailMsg::setSubject( const OUString& aSubject ) throw (RuntimeException) { MutexGuard aGuard( m_aMutex ); m_aSubject = aSubject; } //------------------------------------------------ OUString SAL_CALL CmdMailMsg::getSubject( ) throw (RuntimeException) { MutexGuard aGuard( m_aMutex ); return m_aSubject; } //------------------------------------------------ void SAL_CALL CmdMailMsg::setAttachement( const Sequence< ::rtl::OUString >& aAttachment ) throw (IllegalArgumentException, RuntimeException) { MutexGuard aGuard( m_aMutex ); m_Attachments = aAttachment; } //------------------------------------------------ Sequence< OUString > SAL_CALL CmdMailMsg::getAttachement( ) throw (RuntimeException) { MutexGuard aGuard( m_aMutex ); return m_Attachments; } //------------------------------------------------ Any SAL_CALL CmdMailMsg::getByName( const OUString& aName ) throw (NoSuchElementException, WrappedTargetException, RuntimeException) { MutexGuard aGuard( m_aMutex ); if( 0 == aName.compareToAscii( "from" ) && m_aOriginator.getLength() ) return makeAny( m_aOriginator ); else if( 0 == aName.compareToAscii( "to" ) && m_aRecipient.getLength() ) return makeAny( m_aRecipient ); else if( 0 == aName.compareToAscii( "cc" ) && m_CcRecipients.getLength() ) return makeAny( m_CcRecipients ); else if( 0 == aName.compareToAscii( "bcc" ) && m_BccRecipients.getLength() ) return makeAny( m_BccRecipients ); else if( 0 == aName.compareToAscii( "subject" ) && m_aSubject.getLength() ) return makeAny( m_aSubject ); else if( 0 == aName.compareToAscii( "attachment" ) && m_Attachments.getLength() ) return makeAny( m_Attachments ); throw NoSuchElementException( OUString(RTL_CONSTASCII_USTRINGPARAM("key not found: ")) + aName, static_cast < XNameAccess * > (this) ); } //------------------------------------------------ Sequence< OUString > SAL_CALL CmdMailMsg::getElementNames( ) throw (::com::sun::star::uno::RuntimeException) { MutexGuard aGuard( m_aMutex ); sal_Int32 nItems = 0; Sequence< OUString > aRet( 6 ); if( m_aOriginator.getLength() ) aRet[nItems++] = OUString(RTL_CONSTASCII_USTRINGPARAM("from")); if( m_aRecipient.getLength() ) aRet[nItems++] = OUString(RTL_CONSTASCII_USTRINGPARAM("to")); if( m_CcRecipients.getLength() ) aRet[nItems++] = OUString(RTL_CONSTASCII_USTRINGPARAM("cc")); if( m_BccRecipients.getLength() ) aRet[nItems++] = OUString(RTL_CONSTASCII_USTRINGPARAM("bcc")); if( m_aSubject.getLength() ) aRet[nItems++] = OUString(RTL_CONSTASCII_USTRINGPARAM("subject")); if( m_Attachments.getLength() ) aRet[nItems++] = OUString(RTL_CONSTASCII_USTRINGPARAM("attachment")); aRet.realloc( nItems ); return aRet; } //------------------------------------------------ sal_Bool SAL_CALL CmdMailMsg::hasByName( const ::rtl::OUString& aName ) throw (RuntimeException) { MutexGuard aGuard( m_aMutex ); if( 0 == aName.compareToAscii( "from" ) && m_aOriginator.getLength() ) return sal_True; else if( 0 == aName.compareToAscii( "to" ) && m_aRecipient.getLength() ) return sal_True; else if( 0 == aName.compareToAscii( "cc" ) && m_CcRecipients.getLength() ) return sal_True; else if( 0 == aName.compareToAscii( "bcc" ) && m_BccRecipients.getLength() ) return sal_True; else if( 0 == aName.compareToAscii( "subject" ) && m_aSubject.getLength() ) return sal_True; else if( 0 == aName.compareToAscii( "attachment" ) && m_Attachments.getLength() ) return sal_True; return sal_False; } //------------------------------------------------ Type SAL_CALL CmdMailMsg::getElementType( ) throw (RuntimeException) { // returning void for multi type container return Type(); } //------------------------------------------------ sal_Bool SAL_CALL CmdMailMsg::hasElements( ) throw (RuntimeException) { return 0 != getElementNames().getLength(); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */