public Boolean getDependentElement() { return getInternal().isDependentElement(); }
public String getXMLForMetaData(CollectionMetaData collmd, String prefix, String indent) { StringBuilder str = new StringBuilder(); str.append(prefix).append("<collection element-type=\"").append(collmd.getElementType()).append("\""); if (collmd.isEmbeddedElement()) { str.append(" embedded-element=\"").append(collmd.isEmbeddedElement()).append("\""); } if (collmd.isDependentElement()) { str.append(" dependent-element=\"").append(collmd.isDependentElement()).append("\""); } if (collmd.isSerializedElement()) { str.append(" serialized-element=\"").append(collmd.isSerializedElement()).append("\""); } str.append(">\n"); // Add extensions processExtensions(collmd.getExtensions(), str, prefix, indent); str.append(prefix).append("</collection>\n"); return str.toString(); }
@Override public boolean isDependent() { return super.isDependent() || getCollection().isDependentElement(); }
/** * Remove all elements from a collection from the association owner vs elements. * @param op ObjectProvider for the container * @param elements Collection of elements to remove * @return Whether the database was updated */ public boolean removeAll(ObjectProvider op, Collection elements, int size) { if (elements == null || elements.size() == 0) { return false; } boolean modified = removeAllInternal(op, elements, size); boolean dependent = ownerMemberMetaData.getCollection().isDependentElement(); if (ownerMemberMetaData.isCascadeRemoveOrphans()) { dependent = true; } if (dependent) { // "delete-dependent" : delete elements if the collection is marked as dependent // TODO What if the collection contains elements that are not in the Set ? should not delete them op.getExecutionContext().deleteObjects(elements.toArray()); } return modified; }
boolean dependent = ownerMemberMetaData.getCollection().isDependentElement(); if (ownerMemberMetaData.isCascadeRemoveOrphans())
/** * Convenience method for whether we should delete elements when clear()/remove() is called. * Owned relations will be deleted, whereas unowned will follow the "dependent-element" setting. * @return Whether to delete an element on call of clear()/remove() */ protected boolean deleteElementsOnRemoveOrClear() { // Removal of child should always delete the child with GAE since cannot null the parent in owned relations boolean deleteElements = false; boolean dependent = ownerMemberMetaData.getCollection().isDependentElement(); if (ownerMemberMetaData.isCascadeRemoveOrphans()) { dependent = true; } if (MetaDataUtils.isOwnedRelation(ownerMemberMetaData, storeMgr)) { // Field is not dependent, and not nullable so we just delete the elements NucleusLogger.DATASTORE.debug(LOCALISER.msg("056035")); deleteElements = true; } else { if (dependent) { deleteElements = true; } // TODO Allow for non-nullable FK } return deleteElements; }
boolean dependent = collmd.isDependentElement(); if (ownerMemberMetaData.isCascadeRemoveOrphans())
boolean dependent = collmd.isDependentElement(); if (ownerMemberMetaData.isCascadeRemoveOrphans())
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; }
boolean dependent = collmd.isDependentElement(); if (ownerMemberMetaData.isCascadeRemoveOrphans())
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; }
boolean deleteElements = false; boolean dependent = ownerMemberMetaData.getCollection().isDependentElement(); if (ownerMemberMetaData.isCascadeRemoveOrphans()) { dependent = true;
boolean dependent = ownerMemberMetaData.getCollection().isDependentElement(); if (ownerMemberMetaData.isCascadeRemoveOrphans())
boolean dependent = getOwnerMemberMetaData().getCollection().isDependentElement(); if (getOwnerMemberMetaData().isCascadeRemoveOrphans())
boolean dependent = collmd.isDependentElement(); if (ownerMemberMetaData.isCascadeRemoveOrphans())
boolean dependent = collmd.isDependentElement(); if (ownerMemberMetaData.isCascadeRemoveOrphans())
boolean dependent = mmd.getCollection().isDependentElement(); if (mmd.isCascadeRemoveOrphans())
boolean dependent = ownerMemberMetaData.getCollection().isDependentElement(); if (ownerMemberMetaData.isCascadeRemoveOrphans())
if (fmds[i].getCollection() != null && fmds[i].getCollection().isDependentElement())
boolean dependent = getOwnerMemberMetaData().getCollection().isDependentElement(); if (getOwnerMemberMetaData().isCascadeRemoveOrphans())