oms = new ArrayList(ids);
List newIds = new ArrayList(ids.size());
for (int i = 0; i < ids.size(); i++)
{
ObjectKey key = (ObjectKey) ids.get(i);
Persistent om = null;
if (fromCache)
{
om = cacheGet(key);
}
if (om == null)
{
newIds.add(key);
}
else
{
oms.set(i, om);
}
}
if (newIds.size() > 0)
{
List newOms = retrieveStoredOMs(newIds);
for (int i = 0; i < oms.size(); i++)
{
if (oms.get(i) instanceof ObjectKey)
{
for (int j = newOms.size() - 1; j >= 0; j--)
{
Persistent om = (Persistent) newOms.get(j);
if (om.getPrimaryKey().equals(oms.get(i)))
{
// replace the id with the om and add the om
// to the cache
oms.set(i, om);
newOms.remove(j);