summaryrefslogtreecommitdiff
path: root/src/Model/Cell.hpp
blob: 3371fda1cab2ff2fa7701a558e868ea219b49122 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#ifndef DEF_CELL
#define DEF_CELL

/* Cell.h
 * Defines the class Cell
 * A cell represents a cell in the grid
 * Creators : krilius, manzerbredes
 * Date : 29/04/2015 */

#include <iostream>


template<class T> class Cell
{
	private:
		T*  m_Element;

	public:

		//Constructor
		Cell(std::string value)
		{
			m_Element=new T();
			m_Element->setValue(value);
		}


		//Destructor
		~Cell()
		{
			delete m_Element;
		}

		//Test if the cell is empty
		bool isEmpty()
		{
		    return this->m_Element->isEmpty();
		}

		T* getElement(){
			return this->m_Element;
		}

		bool equals(Cell<T> *cell){
			if(m_Element->equals(cell->getElement())){
				return true;
			}
			return false;
		}

		//Return the element value
		std::string getElementValue()
		{
		    return m_Element->getValue();
		}

		
		// Description
		std::string description()
		{
			return m_Element->description();
		}
		
};



template<class T> 
bool operator==(Cell<T> a, Cell<T> b){
	return a.equals(&b);
}

#endif