#ifndef  ENTITY_SDAIPARALLEL_COMPOSED_FUNCTION_H
#define  ENTITY_SDAIPARALLEL_COMPOSED_FUNCTION_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 SdaiParallel_composed_function : public SdaiMaths_function {
     protected:
        SdaiMaths_space_or_function _source_of_domain;
        EntityAggregate_ptr _prep_functions = NULL;          //  of  maths_function

        SdaiMaths_function_select _final_function;
    public: 
        SdaiParallel_composed_function();
        SdaiParallel_composed_function( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiParallel_composed_function( SdaiParallel_composed_function & e );
        ~SdaiParallel_composed_function();
        int opcode() {
            return 560;
        }
        SdaiMaths_space_or_function_ptr_c source_of_domain_() const;
        SdaiMaths_space_or_function_ptr   source_of_domain_();
        void source_of_domain_( const SdaiMaths_space_or_function_ptr x );

        EntityAggregate_ptr_c prep_functions_() const;
        EntityAggregate_ptr   prep_functions_();
        void prep_functions_( const EntityAggregate_ptr x );

        SdaiMaths_function_select_ptr_c final_function_() const;
        SdaiMaths_function_select_ptr   final_function_();
        void final_function_( const SdaiMaths_function_select_ptr x );

};

inline SdaiParallel_composed_function * create_SdaiParallel_composed_function() {
    return new SdaiParallel_composed_function;
}

void init_SdaiParallel_composed_function(Registry& reg);

namespace engineering_properties_schema {
    extern EntityDescriptor *e_parallel_composed_function;
    extern AttrDescriptor *a_877source_of_domain;
    extern AttrDescriptor *a_878prep_functions;
    extern AttrDescriptor *a_879final_function;
    extern Derived_attribute *a_880Dmultiple_arity_generic_expression_operands;
}

#endif
