//Copyright 2020 Siemens Digital Industries Software
//==================================================
//Copyright $2020.
//Siemens Product Lifecycle Management Software Inc.
//All Rights Reserved.
//==================================================
//Copyright 2020 Siemens Digital Industries Software

/*==================================================================================================
File description:
    This file contains the declaration for the Business Object, Wpm0WorkPkgContainsDynamicDelegate
    Filename:   Wpm0WorkPkgContainsDynamicDelegate.hxx
    Module:     wpm0pkgmgmt
    @BMIDE autogenerated
==================================================================================================*/

#ifndef PKGMGMT__WPM0WORKPKGCONTAINSDYNAMICDELEGATE_HXX
#define PKGMGMT__WPM0WORKPKGCONTAINSDYNAMICDELEGATE_HXX

#include <common/tc_deprecation_macros.h>
#include <wpm0pkgmgmt/Wpm0WorkPkgContainsDynamic.hxx>

#include <wpm0pkgmgmt/libwpm0pkgmgmt_exports.h>

namespace pkgmgmt
{
    class Wpm0WorkPkgContainsDynamicDelegate;
}
namespace pkgmgmt
{
    class Wpm0WorkPkgContainsDynamicImpl;
}
namespace pkgmgmt
{
    class Wpm0WorkPkgContainsDynamic;
}
namespace pkgmgmt
{
    class Wpm0WorkPkgContainsDynamicGenImpl;
}

namespace pkgmgmt_alias = ::pkgmgmt;


class  WPM0PKGMGMT_API pkgmgmt_alias::Wpm0WorkPkgContainsDynamicDelegate
{
public:
    //  Method to initialize this Class
    static int initializeClass();

    //  Method to get the Wpm0WorkPkgContainsDynamicDelegate instance
    static Wpm0WorkPkgContainsDynamicDelegate&  getInstance();

    //  Method to create the Wpm0WorkPkgContainsDynamicImpl pointer
    static Wpm0WorkPkgContainsDynamicImpl*  createImpl( Wpm0WorkPkgContainsDynamic&  ifObj );

    //  Method to delete the Wpm0WorkPkgContainsDynamicImpl pointer
    static void deleteImpl( Wpm0WorkPkgContainsDynamicImpl*  impl );


    ///
    /// desc for validate for create
    /// @version Tc 8
    /// @param creInput - desc for creInput parameter
    /// @return - ret desc for validate for create
    ///
    int  validateCreateInputBase(const Wpm0WorkPkgContainsDynamic &ifObj,  ::Teamcenter::CreateInput *creInput );



protected:
    //  Pointer to the instance
    static Wpm0WorkPkgContainsDynamicDelegate*  m_pInstance;

    Wpm0WorkPkgContainsDynamicDelegate();
    virtual ~Wpm0WorkPkgContainsDynamicDelegate();
    static void setInstance( Wpm0WorkPkgContainsDynamicDelegate*  instance );


private:
    friend class  ::pkgmgmt::Wpm0WorkPkgContainsDynamicGenImpl;

};

#include <wpm0pkgmgmt/libwpm0pkgmgmt_undef.h>
#endif  //  PKGMGMT__WPM0WORKPKGCONTAINSDYNAMICDELEGATE_HXX
