function fileID = file2fileID( file )
%FILE2FILEID Returns a valid file ID for the specified file.

% Author: Ivan E. Cao-Berg (icaoberg@cmu.edu)
% Created: February 18, 2008
% Last Update: March 11, 2008
%
% Copyright (C) 2008 Center for Bioimage Informatics/Murphy Lab
% Carnegie Mellon University
%
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published
% by the Free Software Foundation; either version 2 of the License,
% or (at your option) any later version.
%
% This program is distributed in the hope that it will be useful, but
% WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
% General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
% 02110-1301, USA.
%
% For additional information visit http://murphylab.web.cmu.edu or
% send email to murphy@cmu.edu

if( isa( file, 'char' ) && isempty( file ) )
    error('CellOrganizer: Input argument file cannot be an empty string');
elseif( isnumeric( file ) )
    %assume file is a number, thus it may be a Matlab file ID
    if( isempty( fopen( file ) ) )
        error( ['CellOrganizer: Input argument file refers to a file ' ...
            ' ID which points to a nonexisting file'] );
    else
        fileID = file;
    end
elseif( ischar( file ) )
    %assume file is a string, thus it may be a filename
    fileID = fopen( file, 'w' );
else
    error( ['CellOrganizer: Input argument file is either not a valid ' ...
        'file ID or filename'] );
end
end%file2fileID