44 for(
int columnIndex = 1; columnIndex < tokens.Length(); columnIndex++)
48 if((tokens[columnIndex].Length() < 3) ||
49 (tokens[columnIndex][2] !=
':'))
53 std::cerr <<
"ERROR: Poorly formatted tag in header: "
54 << tokens[columnIndex] << std::endl;
60 tag[0] = tokens[columnIndex][0];
61 tag[1] = tokens[columnIndex][1];
65 String tagValue = (tokens[columnIndex]).SubStr(3);
68 status &=
setTag(tag, tagValue.c_str());
122 int vectorIndex = myTagHash.Integer(tag);
131 std::cerr <<
"Failed to allocate space (new) for a SamHeaderTag.\n";
136 vectorIndex = myTags.size();
137 myTags.push_back(tagPtr);
146 int hashIndex = myTagHash.Add(tag, vectorIndex);
148 if((myTagHash.Integer(hashIndex) != vectorIndex) ||
149 (myTagHash[hashIndex] != tag))
152 std::cerr <<
"Failed to add tag, " << tag
153 <<
", to the hash." << std::endl;
158 else if((
unsigned int)vectorIndex < myTags.size())
167 if((value[0] == 0) && ((myTags[vectorIndex]->getValue())[0] != 0))
173 else if((value[0] != 0) &&
174 ((myTags[vectorIndex]->getValue())[0] == 0))
183 return(myTags[vectorIndex]->setValue(value));
185 else if(strcmp(value, myTags[vectorIndex]->getValue()) == 0)
195 std::cerr <<
"Can't modify the key tag, " << tag <<
" from "
196 << myTags[vectorIndex]->getValue() <<
" to "
197 << value << std::endl;
204 std::cerr <<
"Invalid tag index found: " << vectorIndex
205 <<
", but max index is " << myTags.size() <<
" for tag: "