* @param key The Object's Key
*/
public final void remove(Object key) throws DBException {
checkFiler(FaultCodes.COL_NO_FILER);
Key objKey = createNewKey(key);
Document oldDoc = getDocument(objKey);
if ( oldDoc != null )
indexManager.removeDocument(objKey, oldDoc);
if ( documentCache != null )
documentCache.removeDocument(this, objKey);
if ( !filer.deleteRecord(objKey) )
throw new DBException(FaultCodes.COL_DOCUMENT_NOT_FOUND, "Document Does Not Exist");
// update the meta for this collection if necessary
updateCollectionMeta();
// remove the document meta
if( isMetaEnabled() )
{
getMetaSystemCollection().dropDocumentMeta(this,objKey.toString());
}
DBObserver.getInstance().dropDocument(this, objKey);
}