#ifndef DDbComChannel_H
#define DDbComChannel_H
#include <string>
#include "TypeDefs.h"

namespace ProtoGenWrapper
{
	class DDbComChannel
	{
	public:
		DDbComChannel(std::string identifier, std::string ecuVariantName, std::string description, std::string descriptionID, std::string longName, std::string longNameID, std::string uniqueObjectIdentifier, int32 objectType);
		DDbComChannel(const DDbComChannel& other);
		DDbComChannel();

		void Identifier(const std::string& identifier);
		std::string Identifier() const;
		void EcuVariantName(const std::string& ecuVariantName);
		std::string EcuVariantName() const;
		void Description(const std::string& description);
		std::string Description() const;
		void DescriptionID(const std::string& descriptionID);
		std::string DescriptionID() const;
		void LongName(const std::string& longName);
		std::string LongName() const;
		void LongNameID(const std::string& longNameID);
		std::string LongNameID() const;
		void UniqueObjectIdentifier(const std::string& uniqueObjectIdentifier);
		std::string UniqueObjectIdentifier() const;
		void ObjectType(const int32 objectType);
		int32 ObjectType() const;
		void GetValues(std::string& identifier, std::string& ecuVariantName, std::string& description,
		               std::string& descriptionID, std::string& longName, std::string& longNameID,
		               std::string& uniqueObjectIdentifier, int32& objectType);


		friend bool operator==(const DDbComChannel& lhs, const DDbComChannel& rhs);
		friend bool operator!=(const DDbComChannel& lhs, const DDbComChannel& rhs);

	protected:
		std::string _identifier;
		std::string _ecuVariantName;
		std::string _description;
		std::string _descriptionID;
		std::string _longName;
		std::string _longNameID ;
		std::string _uniqueObjectIdentifier ;
		int32 _objectType;
	};
}
#endif // DDbComChannel_H
