#ifndef __DECLARE_ATTRIBUT__ #define __DECLARE_ATTRIBUT__ #include "attribut.hpp" #define Array(x,y) Array #define DECLARE_ATTR(att_name, att_type) \ class Attr_##att_name : public Attribut \ { \ public: \ \ virtual std::string getName(void) const { return (#att_name) ;} \ virtual const char * getType(void) const { return (#att_type) ;} \ \ Attr_##att_name(void) : Attribut() \ { /* Ne rien faire de plus */ } \ Attr_##att_name(const att_type& _value) : Attribut(_value) \ { /* Ne rien faire de plus */ } \ Attr_##att_name(const Attr_##att_name& _att) : Attribut(_att) \ { /* Ne rien faire de plus */ } \ \ virtual ~Attr_##att_name() \ { /* Ne rien faire de plus */ } \ }; \ \ const Attr_##att_name& getAttr_##att_name(void) const { return (att_name); } \ const Attr_##att_name& get_##att_name(void) const { return (att_name); } \ \ void setAttr##att_name(const Attr_##att_name& _newattr) { att_name = _newattr; } \ void set_##att_name (const Attr_##att_name& _newattr) { att_name = _newattr; }\ \ void setAttr##att_name(const att_type& _newattr) { att_name.setValue(_newattr); }\ void set_##att_name (const att_type& _newattr) { att_name.setValue(_newattr); }\ \ Attr_##att_name att_name #endif // __DECLARE_ATTRIBUT__