(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                  			return NULL;
151                  		default:
152                  			return NULL;
153                  	}
154                  }
155                  
156 humberto 1.1.2.3 void* CQLFactory::getObject(CQLFactor* obj, FactoryType target){
157                          switch(target){
158                            case Function:
159 humberto 1.1.2.5 		_function =  obj->getCQLFunction();
160                  		return &_function;
161 humberto 1.1.2.3           default:
162                                  return NULL;
163                                  break;
164                          }                                                                                                                                                    
165                  }
166                  
167                  
168                  void* CQLFactory::getObject(CQLTerm* obj, FactoryType target){
169                          switch(target){
170                  	  case Factor:
171 humberto 1.1.2.5 		_factor = obj->getFactors()[0];
172                  		return &_factor;
173 humberto 1.1.2.3           case Function:
174 humberto 1.1.2.5 		_factor = obj->getFactors()[0];
175                  		return getObject(&_factor,target);
176 humberto 1.1.2.3           default:
177                                  return NULL;
178                                  break;
179                          }
180                  }
181                  
182                  void* CQLFactory::getObject(CQLExpression* obj, FactoryType target){
183                          switch(target){
184                  	  case Term:
185 humberto 1.1.2.5 		_term = obj->getTerms()[0];
186                  		return &_term;
187 humberto 1.1.2.3           case Factor:
188                            case Function:
189 humberto 1.1.2.5 		_term = obj->getTerms()[0];
190                  		return getObject(&_term, target);
191 humberto 1.1.2.3           default:
192                  		return NULL;
193                                  break;
194                          }                                                                                                                                                    
195                  }
196                  
197                  void* CQLFactory::getObject(CQLSimplePredicate* obj, FactoryType target){
198                          switch(target){
199                  	  case Expression:
200 humberto 1.1.2.5 		_expression =  obj->getLeftExpression();
201 humberto 1.1.2.3           case Term:
202                            case Factor:
203                            case Function:
204 humberto 1.1.2.5 		_expression =  obj->getLeftExpression();
205                  		return getObject(&_expression, target);
206 humberto 1.1.2.3           default:
207                                  return NULL;
208                                  break;
209                          }
210                  }
211                  
212                  void* CQLFactory::getObject(CQLPredicate* obj, FactoryType target){
213                          switch(target){
214                            case SimplePredicate:
215 humberto 1.1.2.5 		_simplePredicate = obj->getSimplePredicate();
216                                  return &_simplePredicate;
217 humberto 1.1.2.3                 break;
218                  	  case Expression:
219                  	  case Term:
220                  	  case Factor:
221                  	  case Function:
222 humberto 1.1.2.5 		_simplePredicate = obj->getSimplePredicate();
223                  		return getObject(&_simplePredicate, target);
224 humberto 1.1.2.3           default:
225                                  return NULL;
226                                  break;
227                          }
228                  }
229                  
230 humberto 1.1.2.5 void CQLFactory::setObject(CQLPredicate* predicate, void* obj, FactoryType objType){
231                  	switch(objType){
232                  	  case SimplePredicate:
233                  		predicate->_rep->_simplePredicate = *((CQLSimplePredicate*)obj);
234                  		break;
235                  	  case Expression:
236                  		predicate->_rep->_simplePredicate._rep->_leftSide = *((CQLExpression*)obj);
237                  		break;
238                            case Term:
239                            	predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0] =  
240                  			*((CQLTerm*)obj);
241                  		break;
242                            case Factor:
243                  		predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0]._rep->_Factors[0] = 
244                  			*((CQLFactor*)obj);
245                  		break;
246                            case Function:
247                  		predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0]._rep->_Factors[0]._rep->_CQLFunct =
248                                          *((CQLFunction*)obj);
249                  		break;
250                  	  case Value:
251 humberto 1.1.2.5 		predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0]._rep->_Factors[0]._rep->_CQLVal =
252                                          *((CQLValue*)obj);
253                  		break;
254                  	  default:
255                  		break;
256                  	}
257                  } 
258                  
259 humberto 1.1     PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2