#ifndef  ENTITY_SDAIIFCCURRENCYRELATIONSHIP_H
#define  ENTITY_SDAIIFCCURRENCYRELATIONSHIP_H

// This file was generated by exp2cxx,
// 0.8.1.
// You probably don't want to edit it since your modifications
// will be lost if exp2cxx is used to regenerate it.

class SC_SCHEMA_EXPORT SdaiIfccurrencyrelationship : public SDAI_Application_instance {
    protected:
        SDAI_Application_instance_ptr _relatingmonetaryunit = NULL;
        SDAI_Application_instance_ptr _relatedmonetaryunit = NULL;
        SDAI_Real _exchangerate = 0.0;
        SDAI_Application_instance_ptr _ratedatetime = NULL;
        SDAI_Application_instance_ptr _ratesource = NULL;    //  OPTIONAL
    public: 
        SdaiIfccurrencyrelationship();
        SdaiIfccurrencyrelationship( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfccurrencyrelationship( SdaiIfccurrencyrelationship & e );
        ~SdaiIfccurrencyrelationship();
        int opcode() {
            return 49;
        }
        SdaiIfcmonetaryunit_ptr_c relatingmonetaryunit_() const;
        SdaiIfcmonetaryunit_ptr   relatingmonetaryunit_();
        void relatingmonetaryunit_( const SdaiIfcmonetaryunit_ptr x );

        SdaiIfcmonetaryunit_ptr_c relatedmonetaryunit_() const;
        SdaiIfcmonetaryunit_ptr   relatedmonetaryunit_();
        void relatedmonetaryunit_( const SdaiIfcmonetaryunit_ptr x );

        SdaiIfcpositiveratiomeasure   exchangerate_() const;
        void exchangerate_( const SdaiIfcpositiveratiomeasure x );

        SdaiIfcdateandtime_ptr_c ratedatetime_() const;
        SdaiIfcdateandtime_ptr   ratedatetime_();
        void ratedatetime_( const SdaiIfcdateandtime_ptr x );

        SdaiIfclibraryinformation_ptr_c ratesource_() const;
        SdaiIfclibraryinformation_ptr   ratesource_();
        void ratesource_( const SdaiIfclibraryinformation_ptr x );

};

inline SdaiIfccurrencyrelationship * create_SdaiIfccurrencyrelationship() {
    return new SdaiIfccurrencyrelationship;
}

void init_SdaiIfccurrencyrelationship(Registry& reg);

namespace ifc2x3 {
    extern EntityDescriptor *e_ifccurrencyrelationship;
    extern AttrDescriptor *a_85relatingmonetaryunit;
    extern AttrDescriptor *a_86relatedmonetaryunit;
    extern AttrDescriptor *a_87exchangerate;
    extern AttrDescriptor *a_88ratedatetime;
    extern AttrDescriptor *a_89ratesource;
}

#endif
