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

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

BEGIN_TEG_NAMESPACE();

class DataInt : public IData {
public:
  // Attributes.
  int value;

public:
  // DataInt constructor.
  DataInt(const int& _value = 0);

  // DataInt destructor.
  ~DataInt();

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

SmartPointer<IData> newData(const int& t);
SmartPointer<DataInt> castToInt(SmartPointer<IData> d);

END_TEG_NAMESPACE();

#endif  // DATA_INT_H__
