// __author__ = Juan Carlos De Abreu (jcabreur@gmail.com)
//
// This file define an inherent class IData that allow have string values.

#ifndef DATA_STRING_H__
#define DATA_STRING_H__
 
#include "Data.h"

BEGIN_TEG_NAMESPACE();

class DataString : public IData {
public:
  // Attributes.
  std::string value;

public:
  // DataBool constructor.
  DataString(const std::string& _value);

  // DataBool destructor.
  ~DataString();

  // Methods.
  AUTO_SIZE();
  void print();
  SmartPointer<IData> resolve(
      std::map<std::string, SmartPointer<IData>>& variables);
};

SmartPointer<IData> newData(const std::string& t);
SmartPointer<DataString> castToString(SmartPointer<IData> d);

END_TEG_NAMESPACE();

#endif  // DATA_STRING_H__
