#ifndef DDbConfigurationRecord_H
#define DDbConfigurationRecord_H

#include <Command.h>

#include "DDbConfigurationData.h"
namespace ProtoGenWrapper
{
	class DDbConfigurationRecord
	{
	public:
		DDbConfigurationRecord(DDbConfigurationData dDbConfigurationData, std::string description, std::string descriptionID,
		                     std::string longName, std::string longNameID, std::string shortName,
		                     std::string uniqueObjectIdentifier, int32 objectType);
		DDbConfigurationRecord();

		void GetValues(DDbConfigurationData& dDbConfigurationData, std::string& description, std::string& descriptionID,
			std::string& longName, std::string& longNameID, std::string& shortName,
			std::string& uniqueObjectIdentifier, int32& objectType);
		DDbConfigurationData GetDbConfigurationData() const;
		void SetDbConfigurationData(const DDbConfigurationData& dDbConfigurationData);
		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 ShortName(const std::string& shortName);
		std::string ShortName() const;
		void UniqueObjectIdentifier(const std::string& uniqueObjectIdentifier);
		std::string UniqueObjectIdentifier() const;
		void ObjectType(const int32 objectType);
		int32 ObjectType() const;

		friend bool operator==(const DDbConfigurationRecord& lhs, const DDbConfigurationRecord& rhs);
		friend bool operator!=(const DDbConfigurationRecord& lhs, const DDbConfigurationRecord& rhs);
	protected:
		DDbConfigurationData _dDbConfigurationData;
		std::string _description;
		std::string _descriptionID;
		std::string _longName;
		std::string _longNameID;
		std::string _shortName;
		std::string _uniqueObjectIdentifier;
		int32 _objectType;
	};
}
#endif // DDbConfigurationRecord_H
