Ejemplo n.º 1
0
void QTreeValidator::indexQueryTarget(QueryData & queryData, QueryTarget & target, const std::vector<std::string>& synList)
{
	if (target._type == QueryTargetType::QTT_Boolean) {
		queryData.setQueryTarget(IndexedQueryTarget());
	}
	else if (target._type == QueryTargetType::QTT_TargetList) {
		vector<arg_idx_t> idxList;
		vector<WithAttrRefType> attrList;

		for (size_t i = 0; i < target._content.size(); i++) {
			QueryTargetContent qtc = target._content[i];
			arg_idx_t idx = getVarArgIdx(synList, qtc._synonym);

			assert(ARG_IDX_NOT_FOUND != idx);

			idxList.push_back(idx);
			attrList.push_back(qtc._attrType);
		}
		
		queryData.setQueryTarget(IndexedQueryTarget(idxList, attrList));
	}
	else {
		assert(false);
	}
}