net.sf.jmp3renamer
Class FileManager

java.lang.Object
  extended by java.util.Observable
      extended by net.sf.jmp3renamer.FileManager
All Implemented Interfaces:
Runnable

public class FileManager
extends Observable
implements Runnable

Manages the files of a selected directory and provides functions for files like extracting meta data or renaming.


Nested Class Summary
 class FileManager.SupportedFilesFilter
           
 
Field Summary
private  Vector fileFilter
          contains ExtendedFileFilter objects
private  Vector files
          contains MyFile objects
private static FileManager instance
           
private  Logger logger
           
private  ArrayList rowObservers
           
private  Hashtable suffixToPlugin
           
private  FileManager.SupportedFilesFilter supportedFiles
           
 
Constructor Summary
private FileManager()
           
 
Method Summary
 void addFile(File file)
           
 void addFilePlugin(FilePlugin plugin)
          To teach the FileManager how to treat a specific fileformat you have to add the according FilePlugin.
 void addObserver(Observer o)
          Adds an observer to the FileManager.
 void addRowObserver(RowObserver o)
           
private  boolean copyFile(File from, File to)
           
private  Vector findFiles(File dir, boolean recursive, FileFilter filter)
           
 Vector getFiles()
           
static FileManager getInstance()
           
 DataSet getMetaData(MyFile file)
          Reads the meta data of a given file.
 void notifyObservers()
          After changing any file.
 void notifyRowObservers(Object o, int row, int action)
           
 void openDir()
           
 void openDir(File file, boolean recursive)
          Opens a directory and reads all files according to a list of filefilters.
 void removeFilePlugin(FilePlugin plugin)
          Removes a FilePlugin
 void removeRow(int row)
           
 void removeRowObserver(RowObserver o)
           
private  void rename()
          Renames all files and sets meta data.
 void resetStates()
           
 void run()
           
 
Methods inherited from class java.util.Observable
clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private Logger logger

rowObservers

private ArrayList rowObservers

fileFilter

private Vector fileFilter
contains ExtendedFileFilter objects


files

private Vector files
contains MyFile objects


suffixToPlugin

private Hashtable suffixToPlugin

instance

private static FileManager instance

supportedFiles

private FileManager.SupportedFilesFilter supportedFiles
Constructor Detail

FileManager

private FileManager()
Method Detail

getInstance

public static FileManager getInstance()

addFilePlugin

public void addFilePlugin(FilePlugin plugin)
To teach the FileManager how to treat a specific fileformat you have to add the according FilePlugin.

Parameters:
plugin - the FilePlugin which stands for a specific fileformat

removeFilePlugin

public void removeFilePlugin(FilePlugin plugin)
Removes a FilePlugin

Parameters:
plugin - the FilePlugin which stands for a specific fileformat

addObserver

public void addObserver(Observer o)
Adds an observer to the FileManager. If you want to have a component be up to date, you have to add it as an observer.

Overrides:
addObserver in class Observable

notifyObservers

public void notifyObservers()
After changing any file. You have to call this method in order to apply the data.

Overrides:
notifyObservers in class Observable

openDir

public void openDir()

openDir

public void openDir(File file,
                    boolean recursive)
Opens a directory and reads all files according to a list of filefilters.

Parameters:
file - the directory to open.
recursive - Process the directory recursively
See Also:
addFilePlugin(FilePlugin plugin), FileManager#addFileFilter(ExtendedFileFilter filter)

findFiles

private Vector findFiles(File dir,
                         boolean recursive,
                         FileFilter filter)

resetStates

public void resetStates()

getMetaData

public DataSet getMetaData(MyFile file)
Reads the meta data of a given file.

Parameters:
file - the file
Returns:
the meta data as an DataSet
See Also:
DataSet

run

public void run()
Specified by:
run in interface Runnable

rename

private void rename()
Renames all files and sets meta data.


getFiles

public Vector getFiles()

addRowObserver

public void addRowObserver(RowObserver o)

removeRowObserver

public void removeRowObserver(RowObserver o)

notifyRowObservers

public void notifyRowObservers(Object o,
                               int row,
                               int action)

removeRow

public void removeRow(int row)

addFile

public void addFile(File file)

copyFile

private boolean copyFile(File from,
                         File to)