diff options
Diffstat (limited to 'autodoc/inc/ary/idl/i_type.hxx')
-rw-r--r-- | autodoc/inc/ary/idl/i_type.hxx | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/autodoc/inc/ary/idl/i_type.hxx b/autodoc/inc/ary/idl/i_type.hxx index 2624107eb636..1c9939f8344b 100644 --- a/autodoc/inc/ary/idl/i_type.hxx +++ b/autodoc/inc/ary/idl/i_type.hxx @@ -80,14 +80,22 @@ class Type : public ary::Entity // INQUIRY Type_id TypeId() const { return Type_id(Id()); } - /// @descr Does NOT clear the output-parameters. + /** Does NOT clear the output-parameters. + + @attention + If this is a sequence, the text of the first non-sequence, enclosed type + is returned. + */ void Get_Text( StringVector & o_module, String & o_name, Ce_id & o_nRelatedCe, int & o_nSequenceCount, const Gate & i_rGate ) const; - Type_id TemplateParameterType() const; + const std::vector<Type_id> * + TemplateParameters() const; + const Type & FirstEnclosedNonSequenceType( /// @return *this, if this is not a ->Sequence. + const Gate & i_rGate ) const; private: virtual void inq_Get_Text( @@ -96,7 +104,11 @@ class Type : public ary::Entity Ce_id & o_nRelatedCe, int & o_nSequemceCount, const Gate & i_rGate ) const = 0; - virtual Type_id inq_TemplateParameterType() const; + virtual const std::vector<Type_id> * + inq_TemplateParameters() const; + virtual const Type & + inq_FirstEnclosedNonSequenceType( + const Gate & i_rGate ) const; }; @@ -113,10 +125,16 @@ Type::Get_Text( StringVector & o_module, inq_Get_Text(o_module,o_name,o_nRelatedCe,o_nSequenceCount,i_rGate); } -inline Type_id -Type::TemplateParameterType() const +inline const std::vector<Type_id> * +Type::TemplateParameters() const +{ + return inq_TemplateParameters(); +} + +inline const Type & +Type::FirstEnclosedNonSequenceType(const Gate & i_rGate) const { - return inq_TemplateParameterType(); + return inq_FirstEnclosedNonSequenceType(i_rGate); } |