#ifndef  ENTITY_SDAIASCRIBABLE_STATE_H
#define  ENTITY_SDAIASCRIBABLE_STATE_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 SdaiAscribable_state : public SDAI_Application_instance {
    protected:
        SDAI_String _name;
        SDAI_String _description;    //  OPTIONAL
        SDAI_Application_instance_ptr _pertaining_state_type = NULL;
        SDAI_Application_instance_ptr _ascribed_state_observed = NULL;
    public: 
        SdaiAscribable_state();
        SdaiAscribable_state( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiAscribable_state( SdaiAscribable_state & e );
        ~SdaiAscribable_state();
        int opcode() {
            return 583;
        }
  const SdaiLabel   name_() const;
        SdaiLabel   name_();
        void name_( const SdaiLabel x );

  const SdaiText   description_() const;
        SdaiText   description_();
        void description_( const SdaiText x );

        SdaiState_type_ptr_c pertaining_state_type_() const;
        SdaiState_type_ptr   pertaining_state_type_();
        void pertaining_state_type_( const SdaiState_type_ptr x );

        SdaiState_observed_ptr_c ascribed_state_observed_() const;
        SdaiState_observed_ptr   ascribed_state_observed_();
        void ascribed_state_observed_( const SdaiState_observed_ptr x );

};

inline SdaiAscribable_state * create_SdaiAscribable_state() {
    return new SdaiAscribable_state;
}

void init_SdaiAscribable_state(Registry& reg);

namespace engineering_properties_schema {
    extern EntityDescriptor *e_ascribable_state;
    extern AttrDescriptor *a_933name;
    extern AttrDescriptor *a_934description;
    extern AttrDescriptor *a_935pertaining_state_type;
    extern AttrDescriptor *a_936ascribed_state_observed;
}

#endif
