ROOT logo
// @(#)root/reflex:$Id: NamespaceBuilder.h 29288 2009-07-01 13:03:35Z axel $
// 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