docs: private void deleteReferences(ClassDescriptor cld, Object obj, Identity oid, boolean ignoreReferences) throws PersistenceBrokerException
      {
      	List listRds = cld.getObjectReferenceDescriptors();
          // get all members of obj that are references and delete them
          Iterator i = listRds.iterator();
          while (i.hasNext())
          {
              ObjectReferenceDescriptor rds = (ObjectReferenceDescriptor) i.next();
              if ((!ignoreReferences && rds.getCascadingDelete() == ObjectReferenceDescriptor.CASCADE_OBJECT)
                      || rds.isSuperReferenceDescriptor())
              {
                  Object referencedObject = rds.getPersistentField().get(obj);
                  if (referencedObject != null)
                  {
                  	if(rds.isSuperReferenceDescriptor())
                  	{
                  		ClassDescriptor base = cld.getSuperClassDescriptor();
                  		/*
   	  	                 arminw: If "table-per-subclass" inheritance is used we have to
   	  	                 guarantee that all super-class table entries are deleted too.
   	  	                 Thus we have to perform the recursive deletion of all super-class
   	  	                 table entries.
                  		 */
                  		performDeletion(base, referencedObject, oid, ignoreReferences);
                  	}
                  	else
                  	{
                  		doDelete(referencedObject, ignoreReferences);
                  	}
                  }
              }
          }
      }