if (hasNextEntry()) {
// Note we do NOT incerement the index here as the initialize
// Inhibitor might need access to its "self" element.
EntryDAO entry = (EntryDAO) entries.get(retrieveIndex);
if (!entry.isNull()) {
MetaDataObjectImpl value = (MetaDataObjectImpl)
MetadataClassMapper.literal(entry.getClassName())
.getInstance();
if (null == value) {
throw new IllegalStateException(
"MetaDataObjectMapper returned null for an " +
"entry marked as non-null. classname = " +
entry.getClassName() + " entry number = " +
retrieveIndex + " path = " + entry.getPath());
}
value.initializeInhibitor(this);
result = value;
} else {
// ensure the retrieve index is incremented correctly
getNextEntry();
}