ROOT logo
// @(#)root/reflex:$Id: NamespaceBuilder.h 22729 2008-03-19 10:20:10Z pcanal $
// Author: Stefan Roiser 2004

// Copyright CERN, CH-1211 Geneva 23, 2004-2006, All rights reserved.
//
// Permission to use, copy, modify, and distribute this software for any
// purpose is hereby granted without fee, provided that this copyright and
// permissions notice appear in all copies and derivatives.
//
// This software is provided "as is" without express or implied warranty.

#ifndef Reflex_NamespaceBuilder
#define Reflex_NamespaceBuilder

// Include files
#include "Reflex/Scope.h"


namespace Reflex{

   /** 
   * @class NamespaceBuilder NamespaceBuilder.h Reflex/Builder/NamespaceBuilder.h
   * @author Stefan Roiser
   * @ingroup RefBld
   * @date 30/3/2004
   */
   class RFLX_API NamespaceBuilder  {

   public:            

      /** constructor */
      NamespaceBuilder( const char * nam );


      /** destructor */
      virtual ~NamespaceBuilder() {}

      /** AddProperty will add a PropertyNth 
      * @param  key the PropertyNth key
      * @param  value the value of the PropertyNth
      * @return a reference to the building class
      */
      NamespaceBuilder & AddProperty( const char * key, Any value );
      NamespaceBuilder & AddProperty( const char * key, const char * value );

      /**
      * ToScope will return the currently being built namespace
      * @return namespace currently being built
      */
      Scope ToScope();

   private:

      /** the namespace */
      Scope fNamespace;

   }; // class NamespaceBuilder

} // namespace Reflex


#endif // Reflex_NamespaceBuilder
 NamespaceBuilder.h:1
 NamespaceBuilder.h:2
 NamespaceBuilder.h:3
 NamespaceBuilder.h:4
 NamespaceBuilder.h:5
 NamespaceBuilder.h:6
 NamespaceBuilder.h:7
 NamespaceBuilder.h:8
 NamespaceBuilder.h:9
 NamespaceBuilder.h:10
 NamespaceBuilder.h:11
 NamespaceBuilder.h:12
 NamespaceBuilder.h:13
 NamespaceBuilder.h:14
 NamespaceBuilder.h:15
 NamespaceBuilder.h:16
 NamespaceBuilder.h:17
 NamespaceBuilder.h:18
 NamespaceBuilder.h:19
 NamespaceBuilder.h:20
 NamespaceBuilder.h:21
 NamespaceBuilder.h:22
 NamespaceBuilder.h:23
 NamespaceBuilder.h:24
 NamespaceBuilder.h:25
 NamespaceBuilder.h:26
 NamespaceBuilder.h:27
 NamespaceBuilder.h:28
 NamespaceBuilder.h:29
 NamespaceBuilder.h:30
 NamespaceBuilder.h:31
 NamespaceBuilder.h:32
 NamespaceBuilder.h:33
 NamespaceBuilder.h:34
 NamespaceBuilder.h:35
 NamespaceBuilder.h:36
 NamespaceBuilder.h:37
 NamespaceBuilder.h:38
 NamespaceBuilder.h:39
 NamespaceBuilder.h:40
 NamespaceBuilder.h:41
 NamespaceBuilder.h:42
 NamespaceBuilder.h:43
 NamespaceBuilder.h:44
 NamespaceBuilder.h:45
 NamespaceBuilder.h:46
 NamespaceBuilder.h:47
 NamespaceBuilder.h:48
 NamespaceBuilder.h:49
 NamespaceBuilder.h:50
 NamespaceBuilder.h:51
 NamespaceBuilder.h:52
 NamespaceBuilder.h:53
 NamespaceBuilder.h:54
 NamespaceBuilder.h:55
 NamespaceBuilder.h:56
 NamespaceBuilder.h:57
 NamespaceBuilder.h:58
 NamespaceBuilder.h:59
 NamespaceBuilder.h:60
 NamespaceBuilder.h:61
 NamespaceBuilder.h:62