//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, Clr1AbsColorRuleThreadDelegate
    Filename:   Clr1AbsColorRuleThreadDelegate.hxx
    Module:     Clr1colorrule
    @BMIDE autogenerated
==================================================================================================*/

#ifndef CLR1COLORRULE__CLR1ABSCOLORRULETHREADDELEGATE_HXX
#define CLR1COLORRULE__CLR1ABSCOLORRULETHREADDELEGATE_HXX

#include <common/tc_deprecation_macros.h>
#include <Clr1colorrule/Clr1AbsColorRuleThread.hxx>

#include <Clr1colorrule/libclr1colorrule_exports.h>

namespace Clr1ColorRule
{
    class Clr1AbsColorRuleThreadDelegate;
}
namespace Clr1ColorRule
{
    class Clr1AbsColorRuleThreadImpl;
}
namespace Clr1ColorRule
{
    class Clr1AbsColorRuleThread;
}
namespace Clr1ColorRule
{
    class Clr1AbsColorRuleThreadGenImpl;
}

namespace Clr1ColorRule_alias = ::Clr1ColorRule;


class  CLR1COLORRULE_API Clr1ColorRule_alias::Clr1AbsColorRuleThreadDelegate
{
public:
    //  Method to initialize this Class
    static int initializeClass();

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

    //  Method to create the Clr1AbsColorRuleThreadImpl pointer
    static Clr1AbsColorRuleThreadImpl*  createImpl( Clr1AbsColorRuleThread&  ifObj );

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


    ///
    /// Description for the Finalize Create Input
    /// @version Tc 8
    /// @param creInput - desc for  creInput parameter
    /// @return - Return desc for Initialize for Create
    ///
    int  finalizeCreateInputBase(const Clr1AbsColorRuleThread &ifObj,  ::Teamcenter::CreateInput *creInput );



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

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


private:
    friend class  ::Clr1ColorRule::Clr1AbsColorRuleThreadGenImpl;

};

#include <Clr1colorrule/libclr1colorrule_undef.h>
#endif  //  CLR1COLORRULE__CLR1ABSCOLORRULETHREADDELEGATE_HXX
