use of org.datanucleus.store.types.containers.MapHandler in project datanucleus-core by datanucleus.
the class L2CachePopulateFieldManager method processContainer.
private void processContainer(int fieldNumber, Object container, AbstractMemberMetaData mmd) {
Object unwrappedContainer = container;
if (container instanceof SCOContainer) {
if (!((SCOContainer) container).isLoaded()) {
// Contents not loaded so just mark as unloaded
cachedPC.setLoadedField(fieldNumber, false);
return;
}
unwrappedContainer = ((SCO) container).getValue();
}
TypeManager typeManager = op.getExecutionContext().getTypeManager();
if (mmd.hasMap()) {
MapHandler mapHandler = typeManager.getContainerHandler(mmd.getType());
processMapContainer(fieldNumber, unwrappedContainer, mmd, mapHandler);
} else {
ElementContainerHandler elementContainerHandler = typeManager.getContainerHandler(mmd.getType());
processElementContainer(fieldNumber, unwrappedContainer, mmd, elementContainerHandler);
}
}
Aggregations