summaryrefslogtreecommitdiff
path: root/idlc
diff options
context:
space:
mode:
authorRüdiger Timm <rt@openoffice.org>2004-03-30 15:39:39 +0000
committerRüdiger Timm <rt@openoffice.org>2004-03-30 15:39:39 +0000
commita228a92c3b69403561385bcaa41f22b9c0b661d8 (patch)
treea71d700827de4c46c547fe22cc06a6a35159b289 /idlc
parent3cd8e3402b2d73c622eb4a55d198344faed704eb (diff)
INTEGRATION: CWS sb14 (1.1.96); FILE MERGED
2004/03/15 16:01:58 sb 1.1.96.4: #i21150# Dumping extended interface attributes. 2004/03/15 09:53:51 sb 1.1.96.3: #i21150# Adapted to new extensible type writer interface; added support for bound interface attributes. 2004/03/12 14:30:28 sb 1.1.96.2: #i21150# Added support for extended attributes (still need to fix TODO in AstAttribute::dumpBlob. 2004/03/05 08:35:15 sb 1.1.96.1: #i21150# Support for rest parameters; clean up.
Diffstat (limited to 'idlc')
-rw-r--r--idlc/inc/idlc/astattribute.hxx59
1 files changed, 45 insertions, 14 deletions
diff --git a/idlc/inc/idlc/astattribute.hxx b/idlc/inc/idlc/astattribute.hxx
index 1c0c169fe4b0..940adf7e111c 100644
--- a/idlc/inc/idlc/astattribute.hxx
+++ b/idlc/inc/idlc/astattribute.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: astattribute.hxx,v $
*
- * $Revision: 1.1 $
+ * $Revision: 1.2 $
*
- * last change: $Author: jsc $ $Date: 2001-03-15 12:23:01 $
+ * last change: $Author: rt $ $Date: 2004-03-30 16:39:39 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -64,23 +64,46 @@
#ifndef _IDLC_ASTDECLARATION_HXX_
#include <idlc/astdeclaration.hxx>
#endif
+#include "idlc/astscope.hxx"
-class AstAttribute : public AstDeclaration
-{
+#include "registry/types.h"
+
+namespace typereg { class Writer; }
+
+class AstAttribute: public AstDeclaration, public AstScope {
public:
- AstAttribute(sal_uInt32 flags, AstType *pType, const ::rtl::OString& name, AstScope* pScope)
- : AstDeclaration(NT_attribute, name, pScope)
- , m_flags(flags)
- , m_pType(pType)
- {}
- AstAttribute(NodeType nodeType, sal_uInt32 flags, AstType *pType, const ::rtl::OString& name, AstScope* pScope)
- : AstDeclaration(nodeType, name, pScope)
+ AstAttribute(
+ sal_uInt32 flags, AstType const * type, rtl::OString const & name,
+ AstScope * scope):
+ AstDeclaration(NT_attribute, name, scope), m_flags(flags),
+ AstScope(NT_attribute), m_pType(type)
+ {}
+
+ AstAttribute(NodeType nodeType, sal_uInt32 flags, AstType const * pType, const ::rtl::OString& name, AstScope* pScope)
+ : AstDeclaration(nodeType, name, pScope), AstScope(nodeType)
, m_flags(flags)
, m_pType(pType)
{}
virtual ~AstAttribute() {}
- AstType* getType()
+ void setExceptions(
+ DeclList const * getter, DeclList const * setter)
+ {
+ if (getter != 0) {
+ m_getExceptions = *getter;
+ }
+ if (setter != 0) {
+ m_setExceptions = *setter;
+ }
+ }
+
+ DeclList::size_type getGetExceptionCount() const
+ { return m_getExceptions.size(); }
+
+ DeclList::size_type getSetExceptionCount() const
+ { return m_setExceptions.size(); }
+
+ AstType const * getType() const
{ return m_pType; }
const sal_Bool isReadonly()
{ return ((m_flags & AF_READONLY) == AF_READONLY); }
@@ -105,10 +128,18 @@ public:
const sal_Bool isRemoveable()
{ return ((m_flags & AF_REMOVEABLE) == AF_REMOVEABLE); }
- sal_Bool dumpBlob(RegistryTypeWriter& rBlob, sal_uInt16 index);
+ sal_Bool dumpBlob(
+ typereg::Writer & rBlob, sal_uInt16 index, sal_uInt16 * methodIndex);
+
private:
+ void dumpExceptions(
+ typereg::Writer & writer, DeclList const & exceptions,
+ RTMethodMode flags, sal_uInt16 * methodIndex);
+
const sal_uInt32 m_flags;
- AstType* m_pType;
+ AstType const * m_pType;
+ DeclList m_getExceptions;
+ DeclList m_setExceptions;
};
#endif // _IDLC_ASTATTRIBUTE_HXX_