public void clear(ObjectProvider op) { boolean deleteElements = deleteElementsOnRemoveOrClear(); ExecutionContext ec = op.getExecutionContext(); Iterator elementsIter = iterator(op); if (elementsIter != null) { while (elementsIter.hasNext()) { Object element = elementsIter.next(); if (ec.getApiAdapter().isPersistable(element) && ec.getApiAdapter().isDeleted(element)) { // Element is waiting to be deleted so flush it (it has the FK) ObjectProvider objSM = ec.findObjectProvider(element); objSM.flush(); } else { if (deleteElements) { ec.deleteObjectInternal(element); } } } } }
public void clear(ObjectProvider op) { // Find elements present in the datastore and process them one-by-one boolean deleteElements = deleteElementsOnRemoveOrClear(); ExecutionContext ec = op.getExecutionContext(); Iterator elementsIter = iterator(op); if (elementsIter != null) { while (elementsIter.hasNext()) { Object element = elementsIter.next(); if (ec.getApiAdapter().isPersistable(element) && ec.getApiAdapter().isDeleted(element)) { // Element is waiting to be deleted so flush it (it has the FK) ObjectProvider elementSM = ec.findObjectProvider(element); elementSM.flush(); } else { if (deleteElements) { ec.deleteObjectInternal(element); } else { // TODO Null this out (in parent) } } } } }
while (iter.hasNext()) { Object relatedObject = iter.next(); ec.deleteObjectInternal(relatedObject); while (iter.hasNext()) { Object relatedObject = iter.next(); ec.deleteObjectInternal(relatedObject);
Object elem = Array.get(arr, i); if (ec.getApiAdapter().isPersistent(elem)) { ec.deleteObjectInternal(elem); Object key = keyIter.next(); if (ec.getApiAdapter().isPersistent(key)) { ec.deleteObjectInternal(key); Object val = valIter.next(); if (ec.getApiAdapter().isPersistent(val)) { ec.deleteObjectInternal(val);
public Object set(ObjectProvider op, int index, Object element, boolean allowCascadeDelete) { // Get current element at this position Object obj = get(op, index); if (MetaDataUtils.isOwnedRelation(ownerMemberMetaData, storeMgr)) { // Register the parent key for the element when owned Key parentKey = EntityUtils.getKeyForObject(op.getObject(), op.getExecutionContext()); KeyRegistry.getKeyRegistry(op.getExecutionContext()).registerParentKeyForOwnedObject(element, parentKey); } // Make sure the element going to this position is persisted (and give it its index) validateElementForWriting(op, element, index); // TODO Allow for a user setting position x as element1 and then setting element2 (that used to be there) to position y // At the moment we just delete the previous element if (ownerMemberMetaData.getCollection().isDependentElement() && allowCascadeDelete && obj != null) { op.getExecutionContext().deleteObjectInternal(obj); } return obj; }
public Object remove(ObjectProvider ownerOP, int index, int currentSize) { Object element = get(ownerOP, index); if (indexedList) { // Remove the element at this position removeAt(ownerOP, index, currentSize); } else { // Ordered list doesn't allow indexed removal so just remove the element internalRemove(ownerOP, element, currentSize); } // TODO This does delete of element, yet internalRemove/removeAt also do boolean dependent = ownerMemberMetaData.getCollection().isDependentElement(); if (ownerMemberMetaData.isCascadeRemoveOrphans()) { dependent = true; } if (dependent && !ownerMemberMetaData.getCollection().isEmbeddedElement()) { if (!contains(ownerOP, element)) { // Delete the element if it is dependent and doesn't have a duplicate entry in the list ownerOP.getExecutionContext().deleteObjectInternal(element); } } return element; }
} else { if (deleteElements) { ec.deleteObjectInternal(elementToRemove); } else {