/************************************************************************* * * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: cmdmailmsg.cxx,v $ * * $Revision: 1.5 $ * * last change: $Author: rt $ $Date: 2005-09-07 19:51:19 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. * * * GNU Lesser General Public License Version 2.1 * ============================================= * Copyright 2005 by Sun Microsystems, Inc. * 901 San Antonio Road, Palo Alto, CA 94303, USA * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License version 2.1, as published by the Free Software Foundation. * * This library 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 for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA * ************************************************************************/ //------------------------------------------------------------------------ // includes //------------------------------------------------------------------------ #ifndef _OSL_DIAGNOSE_H_ #include #endif #ifndef _CMDMAILMSG_HXX_ #include "cmdmailmsg.hxx" #endif #ifndef _COM_SUN_STAR_URI_XEXTERNALURIREFERENCETRANSLATOR_HPP_ #include #endif #ifndef _COM_SUN_STAR_URI_EXTERNALURIREFERENCETRANSLATOR_HPP_ #include #endif #ifndef _COM_SUN_STAR_UNO_REFERENCE_HXX_ #include #endif #ifndef _COM_SUN_STAR_UNO_RUNTIMEEXCEPTION_HPP_ #include #endif //------------------------------------------------------------------------ // 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::createFromAscii( "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::createFromAscii( "from" ); if( m_aRecipient.getLength() ) aRet[nItems++] = OUString::createFromAscii( "to" ); if( m_CcRecipients.getLength() ) aRet[nItems++] = OUString::createFromAscii( "cc" ); if( m_BccRecipients.getLength() ) aRet[nItems++] = OUString::createFromAscii( "bcc" ); if( m_aSubject.getLength() ) aRet[nItems++] = OUString::createFromAscii( "subject" ); if( m_Attachments.getLength() ) aRet[nItems++] = OUString::createFromAscii( "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(); }