#pragma once /////////////////////////////////////////////////////////////////////// // Edit.h - Edit metadata values // // ver 1.0 // // Jim Fawcett, CSE687 - Object Oriented Design, Spring 2018 // /////////////////////////////////////////////////////////////////////// /* * Package Operations: * ------------------- * This package defines a single Edit class that: * - accepts a DbElement
instance when constructed
* - provides facilities to edit it's metadata
*
* Required Files:
* ---------------
* Edit.h, Edit.cpp
* DbCore.h, DbCore.cpp
* Query.h, Query.cpp
*
* Maintenance History:
* --------------------
* ver 1.0 : 17 Feb 2018
* - first release
*/
#include "../DbCore/DbCore.h"
#include "../Query/Query.h"
#include "../DateTime/DateTime.h"
#include & elem) : elem_(elem) {}
static void identify(std::ostream& = std::cout);
void name(const std::string& name);
void description(const std::string& descrip);
DateTime& dateTime();
void dateTime(const DateTime& dt);
void clearChildKeys();
bool addChildKey(const Key& key);
bool removeChildKey(const Key& key);
P& payLoad();
void payLoad(const P& p);
DbElement DbElement() { return elem_; }
private:
NoSqlDb::DbElement & elem_;
};
//----< show file name >---------------------------------------------
template ::identify(std::ostream& out)
{
out << "\n \"" << __FILE__ << "\"";
}
template ::name(const std::string& name)
{
elem_.name(name);
}
template ::description(const std::string& descrip)
{
elem_.descrip(descrip);
}
template ::dateTime()
{
return elem_.dateTime();
}
template ::dateTime(const DateTime& dt)
{
elem_.dateTime(dt);
}
template ::clearChildKeys()
{
elem_.children().clear();
}
template ::addChildKey(const Key& key)
{
return elem_.addChildKey(key);
}
template ::removeChildKey(const Key& key)
{
return elem_.removeChildKey(key);
}
template ::payLoad()
{
return elem_.payLoad();
}
template ::payLoad(const P& p)
{
elem_.payLoad(p);
}
}