// Set up our delegate
this.delegate = new java.util.HashSet();
if (ownerSM != null)
{
AbstractMemberMetaData fmd = ownerSM.getClassMetaData().getMetaDataForMember(fieldName);
owner = ownerSM.getObject();
fieldNumber = fmd.getAbsoluteFieldNumber();
allowNulls = SCOUtils.allowNullsInContainer(allowNulls, fmd);
if (ownerSM.getStoreManager().getSupportedOptions().contains("ContainerQueueing"))
{
queued = SCOUtils.useContainerQueueing(ownerSM);
useCache = SCOUtils.useContainerCache(ownerSM, fieldName);
}
ClassLoaderResolver clr = ownerSM.getObjectManager().getClassLoaderResolver();
if (backingStore != null)
{
this.backingStore = backingStore;
this.elementType = clr.classForName(backingStore.getElementType());
}
else if (!SCOUtils.collectionHasSerialisedElements(fmd) &&
fmd.getPersistenceModifier() == FieldPersistenceModifier.PERSISTENT)
{
try
{
this.backingStore = (CollectionStore)ownerSM.getStoreManager().getBackingStoreForField(clr,fmd,java.util.Set.class);
this.elementType = clr.classForName(this.backingStore.getElementType());