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

#ifndef LRM0LISRM__LRM0RMRESOURCEATTRHELPERDELEGATE_HXX
#define LRM0LISRM__LRM0RMRESOURCEATTRHELPERDELEGATE_HXX

#include <common/tc_deprecation_macros.h>
#include <Lrm0lisrm/Lrm0RMResourceAttrHelper.hxx>

#include <Lrm0lisrm/liblrm0lisrm_exports.h>

namespace lrm0lisrm
{
    class Lrm0RMResourceAttrHelperDelegate;
}
namespace lrm0lisrm
{
    class Lrm0RMResourceAttrHelperImpl;
}
namespace lrm0lisrm
{
    class Lrm0RMResourceAttrHelper;
}
namespace lrm0lisrm
{
    class Lrm0RMResourceAttrHelperGenImpl;
}

namespace lrm0lisrm_alias = ::lrm0lisrm;


class  LRM0LISRM_API lrm0lisrm_alias::Lrm0RMResourceAttrHelperDelegate
{
public:
    //  Method to initialize this Class
    static int initializeClass();

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

    //  Method to create the Lrm0RMResourceAttrHelperImpl pointer
    static Lrm0RMResourceAttrHelperImpl*  createImpl( Lrm0RMResourceAttrHelper&  ifObj );

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


    ///
    /// Relation
    /// @version Teamcenter 10.1.4
    /// @param objTag - BO object
    /// @param relationMap - holds the relation attribute
    /// @param resourceModel - BO Attribute
    /// @return - integer
    ///
    int  lis0updateRelationsBase(const Lrm0RMResourceAttrHelper &ifObj,  tag_t objTag, lis0lisfmwrk::Lis0ResourceShapeAttributes *relationMap, lis0lisfmwrk::AbstractResource *resourceModel ) const;



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

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


private:
    friend class  ::lrm0lisrm::Lrm0RMResourceAttrHelperGenImpl;

};

#include <Lrm0lisrm/liblrm0lisrm_undef.h>
#endif  //  LRM0LISRM__LRM0RMRESOURCEATTRHELPERDELEGATE_HXX
