-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathManejadorEmpresa.cpp
79 lines (70 loc) · 1.75 KB
/
ManejadorEmpresa.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include "ManejadorEmpresa.h"
#include "collections/OrderedDictionary.h"
ManejadorEmpresa* ManejadorEmpresa::instance = NULL;
ManejadorEmpresa::ManejadorEmpresa()
{
//ctor
this->empresas = new OrderedDictionary();
}
ManejadorEmpresa::ManejadorEmpresa(IDictionary* empresas)
{
this->empresas = empresas;
}
ManejadorEmpresa* ManejadorEmpresa::getInstance()
{
if(instance == NULL)
instance = new ManejadorEmpresa();
return instance;
}
ICollection* ManejadorEmpresa::getDataEmpresas()
{
if (this->empresas->isEmpty())
throw "Manejador Empresa -> No hay empresas dadas de alta en el Sistema.";
List* result = new List();
IIterator * it = this->empresas->getIterator();
while(it->hasCurrent())
{
Empresa *emp;
if ((emp = dynamic_cast<Empresa*> (it->getCurrent())) != NULL){
result->add(emp->getDataEmpresa());
it->next();
}else
{
throw "ManejadorEmpresa -> El objeto no es de la clase Empresa.";
}
}
delete it;
return result;
}
Empresa* ManejadorEmpresa::getEmpresa(string rut)
{
String* sRut = new String(rut.c_str());
if (! (this->empresas->member(sRut)))
throw "La Empresa no existe en el Sistema.";
Empresa *emp;
if( (emp = dynamic_cast<Empresa*> (this->empresas->find(sRut))) != NULL )
{
return emp;
}
else
{
throw "ManejadorEmpresa -> El objeto no es de la clase Empresa.";
}
}
IDictionary* ManejadorEmpresa::getEmpresas()
{
return this->empresas;
}
void ManejadorEmpresa::destroyManejadorEmpresa()
{
if (instance != NULL)
{
delete this->empresas;
delete instance;
instance = NULL;
}
}
ManejadorEmpresa::~ManejadorEmpresa()
{
//dtor
}