(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     
135                  PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2