00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
#ifndef MODEL_NAMESPACE_HPP
00026 
#define MODEL_NAMESPACE_HPP
00027 
00028 
00029 
#include <Model/ModelElement.hpp>
00030 
00031 
namespace Model
00032 {
00033   
00034   
class Class;
00035 
00052   class Namespace : 
virtual public ModelElement
00053   {
00054   
public:
00055     typedef OMF::BasicClass<Namespace, OMF::Abstract> Proxy;
00056 
00057     
Namespace();
00058     
virtual ~Namespace();
00059 
00060     
const OMF::List &
contents() const;
00061     
void addContents(
ModelElement *element);
00062     
void removeContents(
ModelElement *element);
00063     
void clearContents();
00064 
00075     
ModelElement *lookupElement(const OMF::String &name);
00076 
00087     
ModelElement *resolveQualifiedName(const OMF::List &qualifiedName);
00088 
00098     OMF::List findElementsByType(
Class *ofType,
00099          const OMF::Boolean &includeSubtypes);
00100 
00109     OMF::Boolean nameIsValid(const OMF::String &name);
00110     
00111 
00112   private:
00113     OMF::List   _contents;
00114   };
00115 }
00116 
00117 #endif