function deleteStoredObjectAttribute( $contentObjectAttribute, $version = null )
    {
        $contentObjectAttributeID = $contentObjectAttribute->attribute( "id" );
        $sys = eZSys::instance();
        $storage_dir = $sys->storageDirectory();

        if ( $version == null )
        {
            $binaryFiles = eZBinaryFile::fetch( $contentObjectAttributeID );
            eZBinaryFile::removeByID( $contentObjectAttributeID, null );

            foreach ( $binaryFiles as  $binaryFile )
            {
                $mimeType =  $binaryFile->attribute( "mime_type" );
                list( $prefix, $suffix ) = explode('/', $mimeType );
                $orig_dir = $storage_dir . '/original/' . $prefix;
                $fileName = $binaryFile->attribute( "filename" );

                // Check if there are any other records in ezbinaryfile that point to that fileName.
                $binaryObjectsWithSameFileName = eZBinaryFile::fetchByFileName( $fileName );

                $filePath = $orig_dir . "/" . $fileName;
                $file = eZClusterFileHandler::instance( $filePath );

                if ( $file->exists() and count( $binaryObjectsWithSameFileName ) < 1 )
                    $file->delete();
            }
        }
        else
        {
            $count = 0;
            $binaryFile = eZBinaryFile::fetch( $contentObjectAttributeID, $version );
            if ( $binaryFile != null )
            {
                $mimeType =  $binaryFile->attribute( "mime_type" );
                list( $prefix, $suffix ) = explode('/', $mimeType );
                $orig_dir = $storage_dir . "/original/" . $prefix;
                $fileName = $binaryFile->attribute( "filename" );

                eZBinaryFile::removeByID( $contentObjectAttributeID, $version );

                // Check if there are any other records in ezbinaryfile that point to that fileName.
                $binaryObjectsWithSameFileName = eZBinaryFile::fetchByFileName( $fileName );

                $filePath = $orig_dir . "/" . $fileName;
                $file = eZClusterFileHandler::instance( $filePath );

                if ( $file->exists() and count( $binaryObjectsWithSameFileName ) < 1 )
                    $file->delete();
            }
        }
    }
 function deleteStoredObjectAttribute($contentObjectAttribute, $version = null)
 {
     /* This is called when you delete the datatype from the class*/
     $contentObjectAttributeID = $contentObjectAttribute->attribute("id");
     $sys = eZSys::instance();
     $storage_dir = $sys->storageDirectory();
     require_once 'kernel/classes/ezclusterfilehandler.php';
     if ($version == null) {
         $binaryFiles = eZBinaryFile::fetch($contentObjectAttributeID);
         eZBinaryFile::removeByID($contentObjectAttributeID, null);
         foreach ($binaryFiles as $binaryFile) {
             $mimeType = $binaryFile->attribute("mime_type");
             list($prefix, $suffix) = split('[/]', $mimeType);
             $orig_dir = $storage_dir . '/' . $downloadPath . '/' . $prefix;
             $fileName = $binaryFile->attribute("filename");
             // Check if there are any other records in ezbinaryfile that point to that fileName.
             $binaryObjectsWithSameFileName = eZBinaryFile::fetchByFileName($fileName);
             $filePath = $orig_dir . "/" . $fileName;
             $file = eZClusterFileHandler::instance($filePath);
             if ($file->exists() and count($binaryObjectsWithSameFileName) < 1) {
                 $file->delete();
             }
         }
     } else {
         $count = 0;
         $binaryFile = eZBinaryFile::fetch($contentObjectAttributeID, $version);
         if ($binaryFile != null) {
             $mimeType = $binaryFile->attribute("mime_type");
             list($prefix, $suffix) = split('[/]', $mimeType);
             $orig_dir = $storage_dir . "/original/" . $prefix;
             $fileName = $binaryFile->attribute("filename");
             eZBinaryFile::removeByID($contentObjectAttributeID, $version);
             // Check if there are any other records in ezbinaryfile that point to that fileName.
             $binaryObjectsWithSameFileName = eZBinaryFile::fetchByFileName($fileName);
             $filePath = $orig_dir . "/" . $fileName;
             $file = eZClusterFileHandler::instance($filePath);
             if ($file->exists() and count($binaryObjectsWithSameFileName) < 1) {
                 $file->delete();
             }
         }
     }
 }