org.stanwood.media.store.memory
Class MemoryStore

java.lang.Object
  extended by org.stanwood.media.store.memory.MemoryStore
All Implemented Interfaces:
IExtension, IStore

public class MemoryStore
extends java.lang.Object
implements IStore

This store is used to store the show information in memory. This allows the tool reuse the show information without having to fetch it from other stores or sources (which would be slower). This information will be lost once the application exits.


Constructor Summary
MemoryStore()
           
 
Method Summary
 void cacheEpisode(java.io.File rootMediaDir, java.io.File episodeFile, IEpisode episode)
          This does nothing as it's all done by the cacheSeason and cacheShow methods
 void cacheFilm(java.io.File rootMediaDir, java.io.File filmFile, IFilm film, java.lang.Integer part)
          This is used to write a film to the store.
 void cacheSeason(java.io.File rootMediaDir, java.io.File episodeFile, ISeason season)
          This is used to write a season too the store.
 void cacheShow(java.io.File rootMediaDir, java.io.File episodeFile, IShow show)
          This is used to write a show too the store.
 void fileDeleted(MediaDirectory dir, java.io.File file)
          This is called when a file is deleted from a media directory
 void fileUpdated(MediaDirectory mediaDirectory, java.io.File file)
          This is called when a file is updated within a media directory.
 IEpisode getEpisode(java.io.File rootMediaDir, java.io.File episodeFile, ISeason season, int episodeNum)
          This gets a episode from the store.
 IEpisode getEpisode(MediaDirectory dir, java.io.File file)
          This is used to get a episode from a store via it's file name.
 IFilm getFilm(java.io.File rootMediaDir, java.io.File filmFile, java.lang.String filmId)
          Used to read a film from the store.
 IFilm getFilm(MediaDirectory dir, java.io.File file)
          This is used to get a film from a store via it's file name.
 java.lang.String getParameter(java.lang.String key)
          Used to get the value of a source parameter.
 ISeason getSeason(java.io.File rootMediaDir, java.io.File episodeFile, IShow show, int seasonNum)
          This will get the season from the store
 Show getShow(java.io.File rootMediaDir, java.io.File episodeFile, java.lang.String showId)
          This will get a show from the store.
 IEpisode getSpecial(java.io.File rootMediaDir, java.io.File episodeFile, ISeason season, int specialNumber)
          This gets a special episode from the store.
 void init(Controller controller, java.io.File nativeDir)
          Called to initialise the stores and check all their resources can be found.
 java.util.Collection<IEpisode> listEpisodes(MediaDirConfig dirConfig, IProgressMonitor monitor)
          This is used to list all the episodes within the store if the store supports the operation.
 java.util.Collection<IFilm> listFilms(MediaDirConfig dirConfig, IProgressMonitor monitor)
          This is used to list all the films within the store if the store supports the operation.
 void performedActions(MediaDirectory dir)
          This is called after all the actions on all the media files have been performed so that the store can clean up any stale data.
 void renamedFile(java.io.File rootMediaDir, java.io.File oldFile, java.io.File newFile)
          This will update all references of the old file to the new file
 SearchResult searchMedia(java.lang.String name, Mode mode, java.lang.Integer part, MediaDirConfig dirConfig, java.io.File mediaFile)
          Used to search for store for media
 void setParameter(java.lang.String key, java.lang.String value)
          Used to set source parameters.
 void upgrade(MediaDirectory mediaDirectory)
          This is called to check if a upgrade is needed and perform the upgrade if required
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MemoryStore

public MemoryStore()
Method Detail

cacheEpisode

public void cacheEpisode(java.io.File rootMediaDir,
                         java.io.File episodeFile,
                         IEpisode episode)
This does nothing as it's all done by the cacheSeason and cacheShow methods

Specified by:
cacheEpisode in interface IStore
Parameters:
episodeFile - the file witch the episode is stored in
episode - The episode to write to the store
rootMediaDir - This is the directory which is the root of media, this can be the current directory if it was not specified on the command line.

cacheSeason

public void cacheSeason(java.io.File rootMediaDir,
                        java.io.File episodeFile,
                        ISeason season)
                 throws StoreException
This is used to write a season too the store.

Specified by:
cacheSeason in interface IStore
Parameters:
season - The season too write
episodeFile - The file the episode is stored in
rootMediaDir - This is the directory which is the root of media, this can be the current directory if it was not specified on the command line.
Throws:
StoreException - Thrown if their is a problem with the source

cacheShow

public void cacheShow(java.io.File rootMediaDir,
                      java.io.File episodeFile,
                      IShow show)
               throws StoreException
This is used to write a show too the store.

Specified by:
cacheShow in interface IStore
Parameters:
episodeFile - The file the episode is stored in
show - The show too write
rootMediaDir - This is the directory which is the root of media, this can be the current directory if it was not specified on the command line.
Throws:
StoreException - Thrown if their is a problem with the source

getEpisode

public IEpisode getEpisode(java.io.File rootMediaDir,
                           java.io.File episodeFile,
                           ISeason season,
                           int episodeNum)
                    throws StoreException,
                           java.net.MalformedURLException,
                           java.io.IOException
This gets a episode from the store. If it can't be found, then it will return null;

Specified by:
getEpisode in interface IStore
Parameters:
episodeFile - The file the episode is stored in
season - The season the episode belongs too
episodeNum - The number of the episode too get
rootMediaDir - This is the directory which is the root of media, this can be the current directory if it was not specified on the command line.
Returns:
The episode, or null if it can't be found
Throws:
StoreException - Thrown if their is a problem with the source
java.net.MalformedURLException - Thrown if their is a problem creating URL's
java.io.IOException - Thrown if their is a I/O related problem.

getSpecial

public IEpisode getSpecial(java.io.File rootMediaDir,
                           java.io.File episodeFile,
                           ISeason season,
                           int specialNumber)
                    throws java.net.MalformedURLException,
                           java.io.IOException,
                           StoreException
This gets a special episode from the store. If it can't be found, then it will return null;

Specified by:
getSpecial in interface IStore
Parameters:
episodeFile - The file the episode is stored in
season - The season the special episode belongs too
specialNumber - The number of the special episode too get
rootMediaDir - This is the directory which is the root of media, this can be the current directory if it was not specified on the command line.
Returns:
The special episode, or null if it can't be found
Throws:
StoreException - Thrown if their is a problem with the source
java.net.MalformedURLException - Thrown if their is a problem creating URL's
java.io.IOException - Thrown if their is a I/O related problem.

getSeason

public ISeason getSeason(java.io.File rootMediaDir,
                         java.io.File episodeFile,
                         IShow show,
                         int seasonNum)
                  throws StoreException,
                         java.io.IOException
This will get the season from the store

Specified by:
getSeason in interface IStore
Parameters:
show - The show the season belongs too
seasonNum - The number of the season that is to be fetched
rootMediaDir - This is the directory which is the root of media, this can be the current directory if it was not specified on the command line.
episodeFile - the file which the episode is stored in
Returns:
The season if it can be found, otherwise null.
Throws:
StoreException - Thrown if their is a problem with the source
java.io.IOException - Thrown if their is a I/O related problem.

getShow

public Show getShow(java.io.File rootMediaDir,
                    java.io.File episodeFile,
                    java.lang.String showId)
             throws StoreException,
                    java.net.MalformedURLException,
                    java.io.IOException
This will get a show from the store. If the season can't be found, then it will return null.

Specified by:
getShow in interface IStore
Parameters:
episodeFile - The file the episode is stored in
showId - The id of the show to get.
rootMediaDir - This is the directory which is the root of media, this can be the current directory if it was not specified on the command line.
Returns:
The show if it can be found, otherwise null.
Throws:
StoreException - Thrown if their is a problem with the store
java.net.MalformedURLException - Thrown if their is a problem creating URL's
java.io.IOException - Thrown if their is a I/O related problem.

searchMedia

public SearchResult searchMedia(java.lang.String name,
                                Mode mode,
                                java.lang.Integer part,
                                MediaDirConfig dirConfig,
                                java.io.File mediaFile)
                         throws StoreException
Used to search for store for media

Specified by:
searchMedia in interface IStore
Parameters:
name - The search term
mode - The mode of the search
part - The part number to search for
dirConfig - The Media directory configuration
mediaFile - The media file the search is associated with
Returns:
The search result or NULL if it could not be found
Throws:
StoreException - Thrown if their is a problem with the store

cacheFilm

public void cacheFilm(java.io.File rootMediaDir,
                      java.io.File filmFile,
                      IFilm film,
                      java.lang.Integer part)
               throws StoreException
This is used to write a film to the store.

Specified by:
cacheFilm in interface IStore
Parameters:
filmFile - The file which the film is stored in
film - The film to write
rootMediaDir - This is the directory which is the root of media, this can be the current directory if it was not specified on the command line.
part - The part number of the film
Throws:
StoreException - Thrown if their is a problem with the store

renamedFile

public void renamedFile(java.io.File rootMediaDir,
                        java.io.File oldFile,
                        java.io.File newFile)
This will update all references of the old file to the new file

Specified by:
renamedFile in interface IStore
Parameters:
oldFile - The old file
newFile - The new file
rootMediaDir - This is the directory which is the root of media, this can be the current directory if it was not specified on the command line.

getFilm

public IFilm getFilm(java.io.File rootMediaDir,
                     java.io.File filmFile,
                     java.lang.String filmId)
              throws StoreException,
                     java.net.MalformedURLException,
                     java.io.IOException
Used to read a film from the store.

Specified by:
getFilm in interface IStore
Parameters:
filmFile - The file the film is stored in
filmId - The id of the film
rootMediaDir - This is the directory which is the root of media, this can be the current directory if it was not specified on the command line.
Returns:
The film, or null if it can't be found
Throws:
StoreException - Thrown if their is a problem retrieving the data
java.net.MalformedURLException - Thrown if their is a problem creating URL's
java.io.IOException - Thrown if their is a I/O related problem.

setParameter

public void setParameter(java.lang.String key,
                         java.lang.String value)

Used to set source parameters. If the key is not supported by this source, then a SourceException is thrown.

Specified by:
setParameter in interface IStore
Parameters:
key - The key of the parameter
value - The value of the parameter

getParameter

public java.lang.String getParameter(java.lang.String key)

Used to get the value of a source parameter. If the key is not supported by this source, then a SourceException is thrown.

Specified by:
getParameter in interface IStore
Parameters:
key - The key of the parameter
Returns:
The value of the parameter

performedActions

public void performedActions(MediaDirectory dir)
This is called after all the actions on all the media files have been performed so that the store can clean up any stale data.

Specified by:
performedActions in interface IStore
Parameters:
dir - The media directory

fileDeleted

public void fileDeleted(MediaDirectory dir,
                        java.io.File file)
This is called when a file is deleted from a media directory

Specified by:
fileDeleted in interface IStore
Parameters:
dir - The media directory
file - The file

getEpisode

public IEpisode getEpisode(MediaDirectory dir,
                           java.io.File file)
                    throws StoreException
This is used to get a episode from a store via it's file name. If it can't be found, then this will return null.

Specified by:
getEpisode in interface IStore
Parameters:
dir - The media directory
file - The media file
Returns:
The episode or null if it can't be found
Throws:
StoreException - Thrown if their are any problems

getFilm

public IFilm getFilm(MediaDirectory dir,
                     java.io.File file)
              throws StoreException
This is used to get a film from a store via it's file name. If it can't be found, then this will return null.

Specified by:
getFilm in interface IStore
Parameters:
dir - The media directory
file - The media file
Returns:
The film or null if it can't be found
Throws:
StoreException - Thrown if their are any problems

init

public void init(Controller controller,
                 java.io.File nativeDir)
          throws StoreException
Called to initialise the stores and check all their resources can be found. This is called before performing any actions.

Specified by:
init in interface IStore
Parameters:
controller - The media controller
nativeDir - The native folder been used or configured. Null if can't be found
Throws:
StoreException - Thrown if their are any problems

listEpisodes

public java.util.Collection<IEpisode> listEpisodes(MediaDirConfig dirConfig,
                                                   IProgressMonitor monitor)
This is used to list all the episodes within the store if the store supports the operation. It this store can't list episodes, then it will return null

Specified by:
listEpisodes in interface IStore
Parameters:
dirConfig - The media directory configuration
monitor - The progress monitor
Returns:
Null or a list of episodes in the store

listFilms

public java.util.Collection<IFilm> listFilms(MediaDirConfig dirConfig,
                                             IProgressMonitor monitor)
This is used to list all the films within the store if the store supports the operation. It this store can't list films, then it will return null

Specified by:
listFilms in interface IStore
Parameters:
dirConfig - The media directory configuration
monitor - The progress monitor
Returns:
Null or a list of films in the store

upgrade

public void upgrade(MediaDirectory mediaDirectory)
This is called to check if a upgrade is needed and perform the upgrade if required

Specified by:
upgrade in interface IStore
Parameters:
mediaDirectory - The media directory been upgraded

fileUpdated

public void fileUpdated(MediaDirectory mediaDirectory,
                        java.io.File file)
                 throws StoreException
This is called when a file is updated within a media directory. This is typically called during the upgrade process if the meta data in the file has changed.

Specified by:
fileUpdated in interface IStore
Parameters:
mediaDirectory - The media directory the file belongs to
file - The media file
Throws:
StoreException - Thrown if their are any problems