📄 cqlfactory.cpp
字号:
return _makeObjectSimplePredicates[_makeObjectSimplePredicates.size()-1]._ptr; break; case Expression: return NULL; break; default: return makeObject((CQLSimplePredicate*)(_CQLObjectPtr._ptr), target); break; }PEG_METHOD_EXIT();}void* CQLFactory::makeObject(CQLSimplePredicate* obj, FactoryType target){//printf("CQLFactory::makeObject(simplepredicate)\n");PEG_METHOD_ENTER(TRC_CQL, "CQLFactory::makeObject,CQLSimplePredicate"); _CQLObjectPtr._ptr = new CQLPredicate(*obj); _makeObjectPredicates.append(_CQLObjectPtr); switch(target){ case Predicate: return _makeObjectPredicates[_makeObjectPredicates.size()-1]._ptr; break; default: return NULL; break; }PEG_METHOD_EXIT();}void* CQLFactory::getObject(void* inObject, FactoryType inObjectType, FactoryType targetType){PEG_METHOD_ENTER(TRC_CQL, "CQLFactory::getObject");void * obj = NULL; switch(inObjectType){ case Predicate: obj = getObject(((CQLPredicate*)inObject),targetType); break; case SimplePredicate: obj = getObject(((CQLSimplePredicate*)inObject),targetType); break; case Expression: obj = getObject(((CQLExpression*)inObject),targetType); break; case Term: obj = getObject(((CQLTerm*)inObject),targetType); break; case Factor: obj = getObject(((CQLFactor*)inObject),targetType); break; case Function: obj = NULL; break; case Value: obj = getObject(((CQLValue*)inObject),targetType); break; case ChainedIdentifier: obj = getObject(((CQLChainedIdentifier*)inObject),targetType); break; default: obj = NULL; break; }PEG_METHOD_EXIT();return obj;}void* CQLFactory::getObject(CQLChainedIdentifier* obj, FactoryType target){// printf("CQLFactory::getObject(CQLChainedIdentifier* obj)\n"); Array<CQLIdentifier> cqlIds; switch(target){ case Identifier: //if(obj->_rep->_subIdentifiers.size() > 0){ cqlIds = obj->getSubIdentifiers(); if(cqlIds.size() > 0){ // _CQLObjectPtr._ptr = new CQLIdentifier(obj->_rep->_subIdentifiers[0]); _CQLObjectPtr._ptr = new CQLIdentifier(cqlIds[0]); _getObjectIdentifiers.append(_CQLObjectPtr); return _getObjectIdentifiers[_getObjectIdentifiers.size()-1]._ptr; } return NULL; default: return NULL; }}void* CQLFactory::getObject(CQLValue* obj, FactoryType target){// printf("CQLFactory::getObject(CQLValue* obj)\n"); switch(target){ case ChainedIdentifier: _CQLObjectPtr._ptr = new CQLChainedIdentifier(obj->_rep->_CQLChainId); _getObjectChainedIdentifiers.append(_CQLObjectPtr); return _getObjectChainedIdentifiers[_getObjectChainedIdentifiers.size()-1]._ptr; case Identifier: return getObject(&(obj->_rep->_CQLChainId),target); default: return NULL; break; }}void* CQLFactory::getObject(CQLFactor* obj, FactoryType target){// printf("CQLFactory::getObject(CQLFactor* obj)\n"); switch(target){ case Function: _CQLObjectPtr._ptr = new CQLFunction(obj->_rep->_CQLFunct); _getObjectFunctions.append(_CQLObjectPtr); return _getObjectFunctions[_getObjectFunctions.size()-1]._ptr; case Value: _CQLObjectPtr._ptr = new CQLValue(obj->_rep->_CQLVal); _getObjectValues.append(_CQLObjectPtr); return _getObjectValues[_getObjectValues.size()-1]._ptr; case ChainedIdentifier: case Identifier: return getObject(&(obj->_rep->_CQLVal),target); default: return NULL; break; } }void* CQLFactory::getObject(CQLTerm* obj, FactoryType target){// printf("CQLFactory::getObject(CQLTerm* obj)\n"); switch(target){ case Factor: _CQLObjectPtr._ptr = new CQLFactor(obj->getFactors()[0]); _getObjectFactors.append(_CQLObjectPtr); return _getObjectFactors[_getObjectFactors.size()-1]._ptr; case Function: case Value: case ChainedIdentifier: case Identifier: return getObject(&(obj->getFactors()[0]),target); default: return NULL; break; }}void* CQLFactory::getObject(CQLExpression* obj, FactoryType target){// printf("CQLFactory::getObject(CQLExpression* obj)\n"); switch(target){ case Term: _CQLObjectPtr._ptr = new CQLTerm(obj->getTerms()[0]); _getObjectTerms.append(_CQLObjectPtr); return _getObjectTerms[_getObjectTerms.size()-1]._ptr; case Factor: case Function: case Value: case ChainedIdentifier: case Identifier: return getObject(&(obj->getTerms()[0]), target); default: return NULL; break; } }void* CQLFactory::getObject(CQLSimplePredicate* obj, FactoryType target){// printf("CQLFactory::getObject(CQLSimplePredicate* obj)\n"); switch(target){ case Expression: _CQLObjectPtr._ptr = new CQLExpression(obj->_rep->_leftSide); _getObjectExpressions.append(_CQLObjectPtr); return _getObjectExpressions[_getObjectExpressions.size()-1]._ptr; case Term: case Factor: case Function: case Value: case ChainedIdentifier: case Identifier: return getObject(&(obj->_rep->_leftSide), target); default: return NULL; break; }}void* CQLFactory::getObject(CQLPredicate* obj, FactoryType target){// printf("CQLFactory::getObject(CQLPredicate* obj)\n"); switch(target){ case SimplePredicate: _CQLObjectPtr._ptr = new CQLSimplePredicate(obj->_rep->_simplePredicate); _getObjectSimplePredicates.append(_CQLObjectPtr); return _getObjectSimplePredicates[_getObjectSimplePredicates.size()-1]._ptr; case Expression: case Term: case Factor: case Function: case Value: case ChainedIdentifier: case Identifier: return getObject(&(obj->_rep->_simplePredicate), target); default: return NULL; break; }}void CQLFactory::setObject(CQLPredicate* predicate, void* obj, FactoryType objType){PEG_METHOD_ENTER(TRC_CQL, "CQLFactory::setObject"); switch(objType){ case SimplePredicate: predicate->_rep->_simplePredicate = *((CQLSimplePredicate*)obj); break; case Expression: predicate->_rep->_simplePredicate._rep->_leftSide = *((CQLExpression*)obj); break; case Term: predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0] = *((CQLTerm*)obj); break; case Factor: predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0]._rep->_Factors[0] = *((CQLFactor*)obj); break; case Function: predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0]._rep->_Factors[0]._rep->_CQLFunct = *((CQLFunction*)obj); break; case Value: predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0]._rep->_Factors[0]._rep->_CQLVal = *((CQLValue*)obj); break; case ChainedIdentifier: predicate->_rep->_simplePredicate._rep->_leftSide._rep->_CQLTerms[0]._rep->_Factors[0]._rep->_CQLVal._rep->_CQLChainId = *((CQLChainedIdentifier*)obj); break; case Identifier: break; default: break; }PEG_METHOD_EXIT();} PEGASUS_NAMESPACE_END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -