
#ifndef LEXICALUNIT_H_
#define LEXICALUNIT_H_

#include <iostream>
#include <string>
#include <boost/shared_ptr.hpp>
#include <map>

namespace smartcomparator
{
	namespace simfunctions
	{


class LexicalUnit {
private:
	size_t		mId;
	std::string	mLemma;
	size_t		mDomain;

public:
	LexicalUnit(
		size_t 				pId,
		std::string const&	pLemma,
		size_t				pDomain );
	virtual ~LexicalUnit();

	size_t 				getId() 	const;
	std::string const& 	getLemma() 	const;
	size_t				getDomain()	const;

	void print() const;

};

typedef boost::shared_ptr<LexicalUnit> 			LexicalUnitPtrS;
typedef boost::shared_ptr<LexicalUnit const> 	LexicalUnitCPtrS;

typedef std::map<size_t, LexicalUnitPtrS>		LexicalUnitByIdMap;
typedef boost::shared_ptr<LexicalUnitByIdMap> 	LexicalUnitByIdMapPtrS;


	}
}

#endif /* LEXICALUNIT_H_ */
