#ifndef  ENTITY_SDAITIME_INTERVAL_WITH_BOUNDS_H
#define  ENTITY_SDAITIME_INTERVAL_WITH_BOUNDS_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 SdaiTime_interval_with_bounds : public SdaiTime_interval {
     protected:
        SdaiDate_time_or_event_occurrence _primary_bound;    //  OPTIONAL
        SdaiDate_time_or_event_occurrence _secondary_bound;    //  OPTIONAL
        SDAI_Application_instance_ptr _duration = NULL;    //  OPTIONAL
    public: 
        SdaiTime_interval_with_bounds();
        SdaiTime_interval_with_bounds( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiTime_interval_with_bounds( SdaiTime_interval_with_bounds & e );
        ~SdaiTime_interval_with_bounds();
        int opcode() {
            return 613;
        }
        SdaiDate_time_or_event_occurrence_ptr_c primary_bound_() const;
        SdaiDate_time_or_event_occurrence_ptr   primary_bound_();
        void primary_bound_( const SdaiDate_time_or_event_occurrence_ptr x );

        SdaiDate_time_or_event_occurrence_ptr_c secondary_bound_() const;
        SdaiDate_time_or_event_occurrence_ptr   secondary_bound_();
        void secondary_bound_( const SdaiDate_time_or_event_occurrence_ptr x );

        SdaiTime_measure_with_unit_ptr_c duration_() const;
        SdaiTime_measure_with_unit_ptr   duration_();
        void duration_( const SdaiTime_measure_with_unit_ptr x );

};

inline SdaiTime_interval_with_bounds * create_SdaiTime_interval_with_bounds() {
    return new SdaiTime_interval_with_bounds;
}

void init_SdaiTime_interval_with_bounds(Registry& reg);

namespace automotive_design {
    extern EntityDescriptor *e_time_interval_with_bounds;
    extern AttrDescriptor *a_856primary_bound;
    extern AttrDescriptor *a_857secondary_bound;
    extern AttrDescriptor *a_858duration;
}

#endif
