#ifndef _COM_SUN_STAR_SETUP_MODULEINFO_HPP_
#define _COM_SUN_STAR_SETUP_MODULEINFO_HPP_

#ifndef _COM_SUN_STAR_SETUP_MODULEINFO_HDL_
#include <com/sun/star/setup/ModuleInfo.hdl>
#endif

#ifndef _OSL_MUTEX_HXX_
#include <osl/mutex.hxx>
#endif

#ifndef _COM_SUN_STAR_UNO_TYPE_HXX_
#include <com/sun/star/uno/Type.hxx>
#endif

#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_
#include <com/sun/star/uno/Sequence.hxx>
#endif
#ifndef _COM_SUN_STAR_UNO_ANY_HXX_
#include <com/sun/star/uno/Any.hxx>
#endif

namespace com
{
namespace sun
{
namespace star
{
namespace setup
{

inline ModuleInfo::ModuleInfo() SAL_THROW( () )
    : strID()
    , strName()
    , strDescription()
    , strOnSelect()
    , strOnDeselect()
    , isMinimal(sal_False)
    , isDefault(sal_False)
    , isHiddenRoot(sal_False)
    , isDontSelectByUser(sal_False)
    , nSizeKB((sal_Int32)0)
    , seqSubModules()
{
}

inline ModuleInfo::ModuleInfo(const ::rtl::OUString& __strID, const ::rtl::OUString& __strName, const ::rtl::OUString& __strDescription, const ::rtl::OUString& __strOnSelect, const ::rtl::OUString& __strOnDeselect, const sal_Bool& __isMinimal, const sal_Bool& __isDefault, const sal_Bool& __isHiddenRoot, const sal_Bool& __isDontSelectByUser, const sal_Int32& __nSizeKB, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& __seqSubModules) SAL_THROW( () )
    : strID(__strID)
    , strName(__strName)
    , strDescription(__strDescription)
    , strOnSelect(__strOnSelect)
    , strOnDeselect(__strOnDeselect)
    , isMinimal(__isMinimal)
    , isDefault(__isDefault)
    , isHiddenRoot(__isHiddenRoot)
    , isDontSelectByUser(__isDontSelectByUser)
    , nSizeKB(__nSizeKB)
    , seqSubModules(__seqSubModules)
{
}

} // setup
} // star
} // sun
} // com

#if ((defined(__SUNPRO_CC) && (__SUNPRO_CC == 0x500)) || (defined(__GNUC__) && defined(__APPLE__)))
static typelib_TypeDescriptionReference * s_pType_com_sun_star_setup_ModuleInfo = 0;
#endif

inline const ::com::sun::star::uno::Type& SAL_CALL getCppuType( const ::com::sun::star::setup::ModuleInfo* ) SAL_THROW( () )
{
    #if ! ((defined(__SUNPRO_CC) && (__SUNPRO_CC == 0x500)) || (defined(__GNUC__) && defined(__APPLE__)))
    static typelib_TypeDescriptionReference * s_pType_com_sun_star_setup_ModuleInfo = 0;
    #endif

    if ( !s_pType_com_sun_star_setup_ModuleInfo )
    {
        typelib_static_type_init( &s_pType_com_sun_star_setup_ModuleInfo, typelib_TypeClass_STRUCT, "com.sun.star.setup.ModuleInfo" );
    }
    return * reinterpret_cast< ::com::sun::star::uno::Type * >( &s_pType_com_sun_star_setup_ModuleInfo );
}

#endif // _COM_SUN_STAR_SETUP_MODULEINFO_HPP_
