1 humberto 1.1 #include "CQLFactory.h"
2
3 PEGASUS_NAMESPACE_BEGIN
4
5 void* CQLFactory::makeObject(CQLIdentifier* obj, FactoryType target){
6 switch(target){
7 case ChainedIdentifier:
8 return new CQLChainedIdentifier(*obj);
9 break;
10 case Identifier:
11 return NULL;
12 break;
13 default:
14 return makeObject(new CQLChainedIdentifier(*obj), target);
15 break;
16 }
17 }
18 void* CQLFactory::makeObject(CQLChainedIdentifier* obj, FactoryType target){
19 switch(target){
20 case Value:
21 return new CQLValue(*obj);
22 humberto 1.1 break;
23 case ChainedIdentifier:
24 return NULL;
25 break;
26 default:
27 return makeObject(new CQLValue(*obj), target);
28 break;
29 }
30
31 }
32 void* CQLFactory::makeObject(CQLValue* obj, FactoryType target){
33 switch(target){
34 case Factor:
35 return new CQLFactor(*obj);
36 break;
37 case Value:
38 return NULL;
39 break;
40 default:
41 return makeObject(new CQLFactor(*obj), target);
42 break;
43 humberto 1.1 }
44
45 }
46 void* CQLFactory::makeObject(CQLFactor* obj, FactoryType target){
47 switch(target){
48 case Term:
49 return new CQLTerm(*obj);
50 break;
51 case Factor:
52 return NULL;
53 break;
54 default:
55 return makeObject(new CQLTerm(*obj), target);
56 break;
57 }
58
59 }
60 void* CQLFactory::makeObject(CQLTerm* obj, FactoryType target){
61 switch(target){
62 case Expression:
63 return new CQLExpression(*obj);
64 humberto 1.1 break;
65 case Term:
66 return NULL;
67 break;
68 default:
69 return makeObject(new CQLExpression(*obj), target);
70 break;
71 }
72
73 }
74 void* CQLFactory::makeObject(CQLExpression* obj, FactoryType target){
75 switch(target){
76 case SimplePredicate:
77 return new CQLSimplePredicate(*obj);
78 break;
79 case Expression:
80 return NULL;
81 break;
82 default:
83 return makeObject(new CQLSimplePredicate(*obj), target);
84 break;
85 humberto 1.1 }
86
87 }
88 void* CQLFactory::makeObject(CQLSimplePredicate* obj, FactoryType target){
89 switch(target){
90 case Predicate:
91 return new CQLPredicate(*obj);
92 break;
93 default:
94 return NULL;
95 break;
96 }
|