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

File: [Pegasus] / pegasus / src / Pegasus / CQL / CQLFactory.cpp (download)
Revision: 1.1.2.2, Thu Aug 26 19:49:35 2004 UTC (19 years, 10 months ago) by humberto
Branch: CQL_2_5_BRANCH
Changes since 1.1.2.1: +34 -0 lines
PEP#: 138

TITLE: CQL updates

DESCRIPTION: CQL updates

#include "CQLFactory.h"

PEGASUS_NAMESPACE_BEGIN

void* CQLFactory::makeObject(CQLIdentifier* obj, FactoryType target){
	switch(target){
	  case ChainedIdentifier:
		return new CQLChainedIdentifier(*obj);
		break;
	  case Identifier:
		return NULL;
		break;
          default:
		return makeObject(new CQLChainedIdentifier(*obj), target);
		break;
        }
}
void* CQLFactory::makeObject(CQLChainedIdentifier* obj, FactoryType target){
	switch(target){
          case Value:
                return new CQLValue(*obj);
                break;
          case ChainedIdentifier:
                return NULL;
                break;
          default:
                return makeObject(new CQLValue(*obj), target);
                break;
        }

}
void* CQLFactory::makeObject(CQLValue* obj, FactoryType target){
	switch(target){
          case Factor:
                return new CQLFactor(*obj);
                break;
          case Value:
                return NULL;
                break;
          default:
                return makeObject(new CQLFactor(*obj), target);
                break;
        }

}
void* CQLFactory::makeObject(CQLFactor* obj, FactoryType target){
	switch(target){
          case Term:
                return new CQLTerm(*obj);
                break;
          case Factor:
                return NULL;
                break;
          default:
                return makeObject(new CQLTerm(*obj), target);
                break;
        }

}
void* CQLFactory::makeObject(CQLTerm* obj, FactoryType target){
	switch(target){
          case Expression:
                return new CQLExpression(*obj);
                break;
          case Term:
                return NULL;
                break;
          default:
                return makeObject(new CQLExpression(*obj), target);
                break;
        }

}
void* CQLFactory::makeObject(CQLExpression* obj, FactoryType target){
	switch(target){
          case SimplePredicate:
                return new CQLSimplePredicate(*obj);
                break;
          case Expression:
                return NULL;
                break;
          default:
                return makeObject(new CQLSimplePredicate(*obj), target);
                break;
        }

}
void* CQLFactory::makeObject(CQLSimplePredicate* obj, FactoryType target){
	switch(target){
          case Predicate:
                return new CQLPredicate(*obj);
                break;
          default:
                return NULL;
                break;
        }
}

CQLValue CQLFactory::getValue(CQLFactor* obj){
	if(obj->isSimpleValue()){
		return obj->getValue();
	}
	return CQLValue();
}

CQLValue CQLFactory::getValue(CQLTerm* obj){
	if(obj->isSimpleValue()){
		 _factor = obj->getFactors()[0];
		return getValue(&_factor);
	}
	return CQLValue();
}

CQLValue CQLFactory::getValue(CQLExpression* obj){
        if(obj->isSimpleValue()){
		 _term = (obj->getTerms())[0];
		return getValue(&_term);
	}
	return CQLValue();
}

CQLValue CQLFactory::getValue(CQLSimplePredicate* obj){
	_expression = obj->getLeftExpression();
	return getValue(&_expression);
}

CQLValue CQLFactory::getValue(CQLPredicate* obj){
        if(obj->isSimple()){
		_simplePredicate = obj->getSimplePredicate();
		return getValue(&_simplePredicate);
	}
	return CQLValue();
}

PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2