throwAX("lock: Must call addString at least once.");
}
AOSLHashtable aoslh = null;
UniqueStringAP usapAbsolute = null;
UniqueStringAP usapUnique = null;
if(getUnqStrCount() == -1) {
aoslh = new AOSLHashtable((new Utility()).getOptimizedHT(ht), bFALSE_IN_PRODUCTION);
} else if(getCountUnq() != getUnqStrCount()) {
throwAX("getAOSLookup: getCountUnq() (" + getCountUnq() + ") is less than the getUnqStrCount() (" + getUnqStrCount() + ")");
} else {
//The size was provided to us at construction,
//so the Hashtable was optimized to begin with.
aoslh = new AOSLHashtable(ht, bFALSE_IN_PRODUCTION);
}
ht = null;
//Create the absolute-to-unique map.
Object[] ao = acoAbsolute.getAOObject();
UniqueString[] aUsmd = new UniqueString[ao.length];
for(int i = 0; i < aUsmd.length; i++) {
aUsmd[i] = (UniqueString)ao[i];
}
usapAbsolute = (new UniqueStringAP(aUsmd));
//Create the unique array.
ao = acoUnique.getAOObject();
aUsmd = new UniqueString[ao.length];
for(int i = 0; i < aUsmd.length; i++) {
aUsmd[i] = (UniqueString)ao[i];
}
usapUnique = (new UniqueStringAP(aUsmd));
aosl = new AOSLookup(aoslh, usapUnique, usapAbsolute, bFALSE_IN_PRODUCTION, doListStrsOnError());