1 // Copyright (c) 1994 James Clark
2 // See the file COPYING for copying permission.
3 #pragma ident	"%Z%%M%	%I%	%E% SMI"
4 
5 #ifndef Attributed_INCLUDED
6 #define Attributed_INCLUDED 1
7 
8 #include "Ptr.h"
9 #include "Attribute.h"
10 
11 // This is used for things that have attribute definitions
12 // that notations and elements.
13 
14 #ifdef SP_NAMESPACE
15 namespace SP_NAMESPACE {
16 #endif
17 
18 class SP_API Attributed {
19 public:
Attributed()20   Attributed() { }
21   ConstPtr<AttributeDefinitionList> attributeDef() const;
22   const AttributeDefinitionList *attributeDefTemp() const;
23   Ptr<AttributeDefinitionList> attributeDef();
24   void setAttributeDef(const Ptr<AttributeDefinitionList> &);
25 private:
26   Ptr<AttributeDefinitionList> attributeDef_;
27 
28 };
29 
30 inline
attributeDef()31 ConstPtr<AttributeDefinitionList> Attributed::attributeDef() const
32 {
33   return attributeDef_;
34 }
35 
36 inline
attributeDefTemp()37 const AttributeDefinitionList *Attributed::attributeDefTemp() const
38 {
39   return attributeDef_.pointer();
40 }
41 
42 inline
attributeDef()43 Ptr<AttributeDefinitionList> Attributed::attributeDef()
44 {
45   return attributeDef_;
46 }
47 
48 inline
setAttributeDef(const Ptr<AttributeDefinitionList> & def)49 void Attributed::setAttributeDef(const Ptr<AttributeDefinitionList> &def)
50 {
51   attributeDef_ = def;
52 }
53 
54 #ifdef SP_NAMESPACE
55 }
56 #endif
57 
58 #endif /* not Attributed_INCLUDED */
59