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

#ifndef CONTMGMTS1000D40__CIV0SNSROOTNODEREVISIONDELEGATE_HXX
#define CONTMGMTS1000D40__CIV0SNSROOTNODEREVISIONDELEGATE_HXX

#include <common/tc_deprecation_macros.h>
#include <contmgmts1000d40/Civ0SNSRootNodeRevision.hxx>

#include <contmgmts1000d40/libcontmgmts1000d40_exports.h>

namespace contmgmts1000d40
{
    class Civ0SNSRootNodeRevisionDelegate;
}
namespace contmgmts1000d40
{
    class Civ0SNSRootNodeRevisionImpl;
}
namespace contmgmts1000d40
{
    class Civ0SNSRootNodeRevision;
}
namespace contmgmts1000d40
{
    class Civ0SNSRootNodeRevisionGenImpl;
}

namespace contmgmts1000d40_alias = ::contmgmts1000d40;


class  CONTMGMTS1000D40_API contmgmts1000d40_alias::Civ0SNSRootNodeRevisionDelegate
{
public:
    //  Method to initialize this Class
    static int initializeClass();

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

    //  Method to create the Civ0SNSRootNodeRevisionImpl pointer
    static Civ0SNSRootNodeRevisionImpl*  createImpl( Civ0SNSRootNodeRevision&  ifObj );

    //  Method to delete the Civ0SNSRootNodeRevisionImpl pointer
    static void deleteImpl( Civ0SNSRootNodeRevisionImpl*  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 Civ0SNSRootNodeRevision &ifObj,  ::Teamcenter::CreateInput *creInput );



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

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


private:
    friend class  ::contmgmts1000d40::Civ0SNSRootNodeRevisionGenImpl;

};

#include <contmgmts1000d40/libcontmgmts1000d40_undef.h>
#endif  //  CONTMGMTS1000D40__CIV0SNSROOTNODEREVISIONDELEGATE_HXX
