// -*- mode: c++ -*-

#ifndef MIX_VALUE_H_
#define MIX_VALUE_H_

#include "classes.h"
#include "Node.h"

namespace MiX{ 

  template <class charT,class char_traits,class xml_traits>
  class Value : virtual public Node<charT,char_traits,xml_traits>{
  public:
    MiX_Template_Typedef(charT,char_traits,xml_traits);
    typedef Value<charT,char_traits,xml_traits> this_type;
  private:
    string_type val_;
  protected:
    Value(const string_type& val){ setValue(val); };
    /**
     * コピーコンストラクタ
     *
     * クライアントはこれを呼び出せない。つまりコピーできない。
     */
    Value(const this_type& src){ };
  public:
    ///デストラクタ
    virtual ~Value()throw() { };
    ///値を設定します
    void setValue(const string_type& val) { val_ = val; };
    ///値を得ます
    string_type getValue() const { return val_; };
  };
}

#endif
