(file) Return to CQLFactory.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / CQL

  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                      }
 97 humberto 1.1.2.2 }
 98                  
 99                  CQLValue CQLFactory::getValue(CQLFactor* obj){
100                  	if(obj->isSimpleValue()){
101                  		return obj->getValue();
102                  	}
103                  	return CQLValue();
104                  }
105                  
106                  CQLValue CQLFactory::getValue(CQLTerm* obj){
107                  	if(obj->isSimpleValue()){
108                  		 _factor = obj->getFactors()[0];
109                  		return getValue(&_factor);
110                  	}
111                  	return CQLValue();
112                  }
113                  
114                  CQLValue CQLFactory::getValue(CQLExpression* obj){
115                          if(obj->isSimpleValue()){
116                  		 _term = (obj->getTerms())[0];
117                  		return getValue(&_term);
118 humberto 1.1.2.2 	}
119                  	return CQLValue();
120                  }
121 humberto 1.1     
122 humberto 1.1.2.2 CQLValue CQLFactory::getValue(CQLSimplePredicate* obj){
123                  	_expression = obj->getLeftExpression();
124                  	return getValue(&_expression);
125 humberto 1.1     }
126                  
127 humberto 1.1.2.2 CQLValue CQLFactory::getValue(CQLPredicate* obj){
128                          if(obj->isSimple()){
129                  		_simplePredicate = obj->getSimplePredicate();
130                  		return getValue(&_simplePredicate);
131                  	}
132                  	return CQLValue();
133                  }
134 humberto 1.1.2.5 
135 humberto 1.1.2.3 void* CQLFactory::getObject(void* inObject, FactoryType inObjectType, FactoryType targetType){
136                  	switch(inObjectType){
137                  		case Predicate:
138                  			return getObject(((CQLPredicate*)inObject),targetType);
139                  		case SimplePredicate:
140                  			return getObject(((CQLSimplePredicate*)inObject),targetType);
141                  		case Expression:
142                  			return getObject(((CQLExpression*)inObject),targetType);
143                  		case Term:
144                  			return getObject(((CQLTerm*)inObject),targetType);
145                  		case Factor:
146                  			return getObject(((CQLFactor*)inObject),targetType);
147                  		case Function:
148                  			return NULL;
149                  		case Value:
150 humberto 1.1.2.6 			return getObject(((CQLValue*)inObject),targetType);
151                  		case ChainedIdentifier:
152                  			return getObject(((CQLChainedIdentifier*)inObject),targetType);
153 humberto 1.1.2.3 		default:
154                  			return NULL;
155                  	}
156                  }
157                  
158 humberto 1.1.2.6 void* CQLFactory::getObject(CQLChainedIdentifier* obj, FactoryType target){
159                  	switch(target){
160                            case Identifier:
161                  		if(obj->_rep->_subIdentifiers.size() > 0){
162                                  	_identifier = obj->_rep->_subIdentifiers[0];
163                                  	return &_identifier;
164                  		}
165                  		return NULL;
166                            default:
167                                  return NULL;
168                          }
169                  }
170                  
171                  void* CQLFactory::getObject(CQLValue* obj, FactoryType target){
172                  	switch(target){
173                            case ChainedIdentifier:
174                                  _chainedIdentifier = obj->getChainedIdentifier();
175                                  return &_chainedIdentifier;
176                            default:
177                                  return NULL;
178                                  break;
179 humberto 1.1.2.6         }
180                  }
181                  
182 humberto 1.1.2.3 void* CQLFactory::getObject(CQLFactor* obj, FactoryType target){
183                          switch(target){
184                            case Function:
185 humberto 1.1.2.5 		_function =  obj->getCQLFunction();
186                  		return &_function;
187 humberto 1.1.2.3           default:
188                                  return NULL;
189                                  break;
190                          }                                                                                                                                                    
191                  }
192                  
193                  
194                  void* CQLFactory::getObject(CQLTerm* obj, FactoryType target){
195                          switch(target){
196                  	  case Factor:
197 humberto 1.1.2.5 		_factor = obj->getFactors()[0];
198                  		return &_factor;
199 humberto 1.1.2.3           case Function:
200 humberto 1.1.2.5 		_factor = obj->getFactors()[0];
201                  		return getObject(&_factor,target);
202 humberto 1.1.2.3           default:
203                                  return NULL;
204                                  break;
205                          }
206                  }
207                  
208                  void* CQLFactory::getObject(CQLExpression* obj, FactoryType target){
209                          switch(target){
210                  	  case Term:
211 humberto 1.1.2.5 		_term = obj->getTerms()[0];
212                  		return &_term;
213 humberto 1.1.2.3           case Factor:
214                            case Function:
215 humberto 1.1.2.5 		_term = obj->getTerms()[0];
216                  		return getObject(&_term, target);
217 humberto 1.1.2.3           default:
218                  		return NULL;
219                                  break;
220                          }                                                                                                                                                    
221                  }
222                  
223                  void* CQLFactory::getObject(CQLSimplePredicate* obj, FactoryType target){
224                          switch(target){
225                  	  case Expression:
226 humberto 1.1.2.5 		_expression =  obj->getLeftExpression();
227 humberto 1.1.2.3           case Term:
228                            case Factor:
229                            case Function:
230 humberto 1.1.2.5 		_expression =  obj->getLeftExpression();
231                  		return getObject(&_expression, target);
232 humberto 1.1.2.3           default:
233                                  return NULL;
234                                  break;
235                          }
236                  }
237                  
238                  void* CQLFactory::getObject(CQLPredicate* obj, FactoryType target){
239                          switch(target){
240                            case SimplePredicate:
241 humberto 1.1.2.5 		_simplePredicate = obj->getSimplePredicate();
242                                  return &_simplePredicate;
243 humberto 1.1.2.3                 break;
244                  	  case Expression:
245                  	  case Term:
246                  	  case Factor:
247                  	  case Function:
248 humberto 1.1.2.5 		_simplePredicate = obj->getSimplePredicate();
249                  		return getObject(&_simplePredicate, target);
250 humberto 1.1.2.3           default:
251                                  return NULL;
252                                  break;
253                          }
254                  }
255                  
256 humberto 1.1.2.5 void CQLFactory::setObject(CQLPredicate* predicate, void* obj, FactoryType objType){
257                  	switch(objType){
258                  	  case SimplePredicate:
259                  		predicate->_rep->_simplePredicate = *((CQLSimplePredicate*)obj);
260                  		break;
261                  	  case Expression:
262                  		predicate->_rep->_simplePredicate._rep->_leftSide = *((CQLExpression*)obj);
263                  		break;
264                            case Term:
265                            	predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0] =  
266                  			*((CQLTerm*)obj);
267                  		break;
268                            case Factor:
269                  		predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0]._rep->_Factors[0] = 
270                  			*((CQLFactor*)obj);
271                  		break;
272                            case Function:
273                  		predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0]._rep->_Factors[0]._rep->_CQLFunct =
274                                          *((CQLFunction*)obj);
275                  		break;
276                  	  case Value:
277 humberto 1.1.2.5 		predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0]._rep->_Factors[0]._rep->_CQLVal =
278                                          *((CQLValue*)obj);
279                  		break;
280                  	  default:
281                  		break;
282                  	}
283                  } 
284                  
285 humberto 1.1     PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2