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()31ConstPtr<AttributeDefinitionList> Attributed::attributeDef() const 32 { 33 return attributeDef_; 34 } 35 36 inline attributeDefTemp()37const AttributeDefinitionList *Attributed::attributeDefTemp() const 38 { 39 return attributeDef_.pointer(); 40 } 41 42 inline attributeDef()43Ptr<AttributeDefinitionList> Attributed::attributeDef() 44 { 45 return attributeDef_; 46 } 47 48 inline setAttributeDef(const Ptr<AttributeDefinitionList> & def)49void 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