7 static std::vector<std::string> types;
11 types.push_back(
">=");
13 types.push_back(
"<=");
19 size_t ind = uniqueString.rfind(
"_");
20 return uniqueString.substr(0,ind);
24 static std::string s_var(
"ora::ContainerIndex");
36 std::stringstream uniqueVarName;
38 bool notUnique =
true;
41 uniqueVarName.str(
"");
42 uniqueVarName << varName;
43 uniqueVarName <<
"_" <<
i;
44 for(coral::AttributeList::const_iterator iAttr = m_data.begin();
45 iAttr!=m_data.end() && !
found; ++iAttr){
46 if( iAttr->specification().name() == uniqueVarName.str() ) found =
true;
51 return uniqueVarName.str();
55 if(endIndex<startIndex && endIndex>=0) {
57 "Selection::addIndexItem");
58 }
else if( startIndex==endIndex && endIndex>=0){
59 std::string varName = uniqueVariableName( indexVariable() );
61 m_items.push_back(std::make_pair(varName,selectionTypes()[selType]));
62 m_data.extend<
int>(varName);
63 m_data[varName].data<
int>() = startIndex;
66 std::string varName0 = uniqueVariableName( indexVariable() );
68 m_items.push_back(std::make_pair(varName0,selectionTypes()[firstType]));
69 m_data.extend<
int>(varName0);
70 m_data[varName0].data<
int>() = startIndex;
73 std::string varName1 = uniqueVariableName( indexVariable() );
75 m_items.push_back(std::make_pair(varName1,selectionTypes()[secondType]));
76 m_data.extend<
int>(varName1);
77 m_data[varName1].data<
int>() = endIndex;
84 return m_items.empty();
87 const std::vector<std::pair<std::string,std::string> >&
92 const coral::AttributeList&
std::string uniqueVariableName(const std::string &varName) const
const coral::AttributeList & data() const
static std::string variableNameFromUniqueString(const std::string &uniqueString)
static std::vector< std::string > & selectionTypes()
static std::string indexVariable()
void addIndexItem(int startIndex, int endIndex=endOfRange)
void throwException(const std::string &message, const std::string &methodName)
const std::vector< std::pair< std::string, std::string > > & items() const