Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

DictField.h

Go to the documentation of this file.
00001 // $Header: /nfs/slac/g/glast/ground/cvs/xmlUtil/xmlUtil/id/DictField.h,v 1.6 2002/04/05 18:28:44 jrb Exp $
00002 
00003 #ifndef XMLUTIL_DICTFIELD_H
00004 #define XMLUTIL_DICTFIELD_H
00005 
00006 #include <string>
00007 
00008 #include <dom/DOM_Element.hpp>
00009 
00010 #include "xmlUtil/id/DictObject.h"
00011 
00012 #include "xmlUtil/id/DictConstraints.h"
00013 
00014 namespace xmlUtil {
00017   class DictVisitor;
00018 
00019   class DictField : public DictObject {
00020   public: 
00021     DictField(DOM_Element elt);
00022     ~DictField(){ if (m_constraints) delete m_constraints;};
00023 
00024     const std::string& getName() const {return m_name;}
00025 
00027     bool allowed(unsigned value) const;
00028 
00029     bool accept(DictVisitor* vis) {return vis->visitField(this);}
00030     DictConstraints* getConstraints() const {return m_constraints;}
00031 
00032     DictField(const DictField& toCopy);
00033     DictField& operator=(const DictField&);
00034 
00035   private:
00036     //    friend class IdDict;  // may also need friend IdConverter
00037 
00038     // Build a field which has value constraints
00039     DictField(const std::string& name, const DictConstraints& constraints)
00040       :   m_name(name) 
00041     {m_constraints = new DictConstraints(constraints);}
00042 
00043     // Build a field with no value constraints
00044     DictField(const std::string& name) : m_constraints(0), m_name(name) {}
00045 
00046 
00047     void deepCopy(const DictField& toCopy);
00048 
00049     DictConstraints *m_constraints;
00050     std::string     m_name;
00051     
00052   };       // end DictField class
00053 }          // end xmlUtil namespace
00054 
00055 #endif

Generated on Wed Oct 16 14:02:47 2002 by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001