return cacheQualifier;
}
protected Hashtable _uniqueAndQualifiers = new Hashtable();
protected EOAndQualifier andQualifierInCache(EOAndQualifier q) {
EOAndQualifier cachedQualifier = null;
String hashEntryName = nameForSet(q.allQualifierKeys());
Vector v = (Vector)_uniqueAndQualifiers.get(hashEntryName);
if (v != null) {
EOQualifier cache = qualifierContainedInEnumeration(q, v.elements());
if (cache != null)
cachedQualifier = (EOAndQualifier)cache;
} else {
v = new Vector();
_uniqueAndQualifiers.put(hashEntryName, v);
}
if (cachedQualifier == null) {
NSMutableArray qualifiers = null;
for (int c = 0; c < q.qualifiers().count(); c++) {
EOQualifier q1 = q.qualifiers().objectAtIndex(c);
EOQualifier cache = qualifierInCache(q1);
if (cache != null) {
if (qualifiers == null) {
qualifiers = new NSMutableArray();
qualifiers.addObjectsFromArray(q.qualifiers());
}
if (cache == q1)
log.warn("Found sub-qualifier: " + cache + " in cache when parent qualifier is not?!?!");
else
qualifiers.replaceObjectAtIndex(cache, c);
}
}
if (qualifiers != null) {
// Need to reconstruct
cachedQualifier = new EOAndQualifier(qualifiers);
v.addElement(cachedQualifier);
} else {
v.addElement(q);
}
}