Deleting an object means deleting it from the persistent store.
Optionally, the delete operation can be called with an
objectType
parameter, which is one of the pre-defined
LifeCycleManager
interface names. If this parameter is
specified, only objects of that type are accepted for delete. The interface
names shown in the following list are allowed for a deletion; all others are
rejected with an InvalidRequestException
.
LifeCycleManager.ASSOCIATION
LifeCycleManager.CLASSIFICATION
LifeCycleManager.CLASSIFICATION_SCHEME
LifeCycleManager.CONCEPT
LifeCycleManager.EXTERNAL_IDENTIFIER
LifeCycleManager.EXTERNAL_LINK
LifeCycleManager.ORGANIZATION
LifeCycleManager.REGISTRY_ENTRY
LifeCycleManager.REGISTRY_PACKAGE
LifeCycleManager.SERVICE
LifeCycleManager.SERVICE_BINDING
LifeCycleManager.SPECIFICATION_LINK
LifeCycleManager.USER
Objects have relationships to each other: some relationships prohibit object deletion, while other relationships are automatically cleaned up during deletion. The following sections describe for each object type how it is treated during deletion.
In general, an attempt to delete a registry object is rejected if:
it is a new object, i.e., it has not yet been saved, or
it is the target of an association.
Deleting a registry object has the following side-effects:
Remove the object from all its packages; update the packages.
Delink the object from all its external links; update the external links.
Delete all associations whose source object is the object to be deleted.
Delete all classifications whose classified object is the object to be deleted.
Delete all external identifiers whose registry object is the object to be deleted.
Remove the association from its source object.
Update the source object. This automatically deletes the association.
It is not possible to delete an auditable event explicitly.
Remove the classification from its classified object.
Update the classified object. This automatically deletes the classification.
Reject deletion if there are child concepts; otherwise:
Delete the classification scheme.
Reject deletion if there are child concepts; otherwise:
Remove the concept from its parent object.
Update the parent object.
Delete the concept.
Remove the external identifier from its registry object.
Update the registry object. This automatically deletes the external identifier.
Reject deletion if there are linked objects; otherwise:
Delete the external link.
Reject deletion if there are child organizations, services, or users; otherwise:
Remove the organization from its parent organization.
Update the parent organization.
Delete the organization.
Delete the registry entry.
Reject deletion if there are member objects; otherwise:
Delete the registry package.
Remove the service from its organization.
Update the organization.
Delete all service bindings whose service is the service to be deleted.
Delete the service.
Remove the service binding from its service.
Delete all specification links whose service binding is the service binding to be deleted.
Update the service. This automatically deletes the service binding.
Remove the specification link from its service binding.
Update the service binding's enclosing service. This automatically deletes the specification link.
Remove the user from its organization.
Update the organization.
Delete the user.