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

#ifndef CMTMES__MES0BVRSTXELEMENTDELEGATE_HXX
#define CMTMES__MES0BVRSTXELEMENTDELEGATE_HXX

#include <common/tc_deprecation_macros.h>
#include <mesbvr/Mes0BvrSTXElement.hxx>

#include <mesbvr/libmesbvr_exports.h>

namespace CMTMES
{
    class Mes0BvrSTXElementDelegate;
}
namespace CMTMES
{
    class Mes0BvrSTXElementImpl;
}
namespace CMTMES
{
    class Mes0BvrSTXElement;
}
namespace CMTMES
{
    class Mes0BvrSTXElementGenImpl;
}

namespace CMTMES_alias = ::CMTMES;


class  MESBVR_API CMTMES_alias::Mes0BvrSTXElementDelegate
{
public:
    //  Method to initialize this Class
    static int initializeClass();

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

    //  Method to create the Mes0BvrSTXElementImpl pointer
    static Mes0BvrSTXElementImpl*  createImpl( Mes0BvrSTXElement&  ifObj );

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


    ///
    /// Getter for a Tag Array Property
    /// @version Teamcenter 10
    /// @param values - Parameter value
    /// @param isNull - Returns true for an array element if the parameter value at that location is null
    /// @return - Status. 0 if successful
    ///
    int  getMes0DCDNodesBase(const Mes0BvrSTXElement &ifObj,  std::vector< tag_t > &values, std::vector< int > &isNull ) const;


    ///
    /// Getter for a Tag Property
    /// @version Teamcenter 8.3
    /// @param value - Parameter value
    /// @param isNull - Returns true if the Parameter value is null
    /// @return - Status. 0 if successful
    ///
    int  getMes0ObjectDataBase(const Mes0BvrSTXElement &ifObj,  tag_t &value, bool &isNull ) const;


    ///
    /// Getter for a Tag Array Property
    /// @version Teamcenter 10
    /// @param values - Parameter value
    /// @param isNull - Returns true for an array element if the parameter value at that location is null
    /// @return - Status. 0 if successful
    ///
    int  getMes0PFNodesBase(const Mes0BvrSTXElement &ifObj,  std::vector< tag_t > &values, std::vector< int > &isNull ) const;



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

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


private:
    friend class  ::CMTMES::Mes0BvrSTXElementGenImpl;

};

#include <mesbvr/libmesbvr_undef.h>
#endif  //  CMTMES__MES0BVRSTXELEMENTDELEGATE_HXX
