**/
public final void addString(String s_tr) {
throwLXIfLocked(isLocked(), "addString");
throwAXIfNull(s_tr, "s_tr", "addString");
UniqueString us = null;
if(ht.containsKey(s_tr)) {
bLastStringUnique = false;
if(!areDupStringsOk()) {
throwAX("addString: s_tr at array index " + acoAbsolute.size() + " ('" + s_tr + "') already exists at array index " + ((UniqueString)ht.get(s_tr)).getUnqArrIdx() + ".");
}
us = (UniqueString)ht.get(s_tr);
} else {
//The string does not exist in the Hashtable. It is unique;
if(getUnqStrCount() > -1 && ht.size() == getUnqStrCount()) {
throwAX("addString: s_tr equals '" + s_tr + "' and has not been added (it is unique). However, getUnqStrCount() equals " + getUnqStrCount() + ", and this addString would result in " + (getUnqStrCount() + 1) + " unique strings.");
}
bLastStringUnique = true;
int iNewUnqArrIdx = ht.size();
us = (new UniqueString(s_tr, iNewUnqArrIdx));
acoUnique.add(us);
ht.put(s_tr, us);
}
acoAbsolute.add(us);
us.incInstanceCount();
}