23 #ifndef CATALOG_DATABASE_METADATA_H_
24 #define CATALOG_DATABASE_METADATA_H_
60 userCreator(userCreatorIn),
61 createdOn(createdOnIn),
62 lastModified(lastModifiedIn) {}
65 dbId = pdbDatabaseToCopy.
dbId;
66 dbName = pdbDatabaseToCopy.
dbName;
73 setsInDB = pdbDatabaseToCopy.
setsInDB;
78 dbId = pdbDatabaseToCopy->dbId;
79 dbName = pdbDatabaseToCopy->dbName;
80 userCreator = pdbDatabaseToCopy->userCreator;
81 createdOn = pdbDatabaseToCopy->createdOn;
82 lastModified = pdbDatabaseToCopy->lastModified;
83 listOfNodes = pdbDatabaseToCopy->listOfNodes;
84 listOfSets = pdbDatabaseToCopy->listOfSets;
85 listOfTypes = pdbDatabaseToCopy->listOfTypes;
86 setsInDB = pdbDatabaseToCopy->setsInDB;
87 nodesInDB = pdbDatabaseToCopy->nodesInDB;
98 userCreator = userCreatorIn;
99 createdOn = createdOnIn;
100 lastModified = lastModifiedIn;
106 listOfPermissions->push_back(permissionsIn);
111 listOfNodes->push_back(nodeIn);
116 listOfSets->push_back(setIn);
121 (*setsInDB)[setName].push_back(nodeIP);
126 (*nodesInDB)[nodeIP].push_back(setName);
130 listOfTypes->push_back(typeIn);
134 listOfSets = newList;
138 listOfNodes = newList;
154 deleteSetFromSetList(setName);
155 deleteSetFromSetMap(setName);
156 deleteSetFromNodeMap(setName);
160 deleteNodeFromSingleSet(node, set);
161 deleteSetFromSingleNode(set, node);
167 for (
int i = 0; i < (*getListOfNodes()).size(); i++) {
168 String itemValue = (*getListOfNodes())[i];
169 if (itemValue != setName) {
170 tempListOfNodes->push_back(itemValue);
173 replaceListOfNodes(tempListOfNodes);
177 (*listOfTypes).deleteObject(typeIn);
193 return listOfPermissions;
244 output.append(getItemId().c_str()).append(
":").append(getItemKey().c_str());
247 output.append(
"\n is stored in (")
248 .append(to_string((*nodesInDB).size()))
249 .append(
")nodes: [ ");
250 for (
auto&
item : (*nodesInDB)) {
252 output.append(
", ").append(spaces).append(
item.key.c_str());
254 output.append(
item.key.c_str());
258 output.append(
" ]\n and has (").append(to_string((*setsInDB).size())).append(
")sets: [ ");
260 for (
auto&
item : (*setsInDB)) {
262 output.append(
", ").append(spaces).append(
item.key.c_str());
264 output.append(
item.key.c_str());
269 for (
auto&
item : (*setsInDB)) {
270 output.append(
"\n * Set: ")
271 .append(
item.key.c_str())
272 .append(
" is stored in (")
273 .append(to_string(
item.value.size()))
274 .append(
")nodes: [ ");
275 for (
int i = 0; i <
item.value.size(); i++) {
277 output.append(
", ").append(spaces).append(
item.value[i].c_str());
279 output.append(
item.value[i].c_str());
288 out <<
"\nCatalog Database Metadata" << endl;
289 out <<
"-------------------" << endl;
293 out <<
"\nThis Database is stored in the following nodes: " << endl;
297 out <<
"\nThis Database has the following sets: " << endl;
299 out <<
" Set: " << (*database.
getListOfSets())[i].c_str() << endl;
302 out <<
"-------------------\n" << endl;
334 makeObject<Vector<CatalogPermissionsMetadata>>();
338 for (
int i = 0; i < (*getListOfSets()).size(); i++) {
339 String itemValue = (*getListOfSets())[i];
340 if (itemValue != setName) {
341 tempListOfSets->push_back(itemValue);
344 replaceListOfSets(tempListOfSets);
349 makeObject<Map<String, Vector<String>>>();
350 for (
auto& a : *getSetsInDB()) {
351 if (a.key != setName) {
352 (*tempSetsInDB)[a.key] = a.value;
355 replaceMapOfSets(tempSetsInDB);
360 makeObject<Map<String, Vector<String>>>();
361 for (
auto& a : *getSetsInDB()) {
362 if (a.key != setName) {
363 (*tempSetsInDB)[a.key] = a.value;
365 auto nodes = a.value;
366 auto newNodes = (*tempSetsInDB)[a.key];
367 for (
int i = 0; i < nodes.size(); i++) {
368 if (nodes[i] != node) {
369 newNodes.push_back(nodes[i]);
374 replaceMapOfSets(tempSetsInDB);
379 makeObject<Map<String, Vector<String>>>();
380 for (
auto& a : *getNodesInDB()) {
382 (*tempNodesInDB)[a.key] = a.value;
385 auto newSets = (*tempNodesInDB)[a.key];
386 for (
int i = 0; i < sets.size(); i++) {
387 if (sets[i] != setName) {
388 newSets.push_back(sets[i]);
397 makeObject<Map<String, Vector<String>>>();
398 for (
const auto& setsInNode : (*nodesInDB)) {
399 auto node = setsInNode.key;
400 auto sets = setsInNode.value;
401 auto newSetsInNode = (*tempNodesInDB)[node];
402 for (
int i = 0; i < sets.size(); i++) {
403 if (sets[i] != setName) {
404 newSetsInNode.push_back(sets[i]);
408 replaceMapOfNodes(tempNodesInDB);