// __author__ = Juan Carlos De Abreu (jcabreur@gmail.com)

#ifndef DATA_VOID_H__
#define DATA_VOID_H__

#include "Data.h"

BEGIN_TEG_NAMESPACE();

class DataVoid : public IData {
public:
	DataVoid();
	~DataVoid();

	void print() {}

	SmartPointer<IData> resolve(std::map<std::string, SmartPointer<IData>>& variables);
	SmartPointer<IData> getAttribute(std::string attrName);	// for the "." operator
	SmartPointer<IData> getMethod(SmartPointer<IData> elem, std::map<std::string, SmartPointer<IData>>& variables); // for the ".()" operator
	AUTO_SIZE();
};

inline SmartPointer<DataVoid> castToVoid(spDATA d) {
	return SmartPointer<DataVoid>(dynamic_cast<DataVoid*>((IData*) d));
}

END_TEG_NAMESPACE();

#endif  // DATA_VOID_H__
