|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.lyra.Database.Comptroller
public class Comptroller
The Comptroller class deals with the details and intricacies of dealing with the database itself. While the database module is in itself is public this provides a middle layer preventing mass code changes in case of database engine or a change in standards.
In addition to the above, it was decided that all functions against the database would be restricted to one thread at a time. While many database engines can handle read operations and write operations at a time, SQLite tends to lock up. So by forcing a one thread, we allow transactions and other operations to not be interrupted.
Field Summary | |
---|---|
(package private) Interface |
Db
|
private static java.lang.String |
DEF_LANGUAGE
|
private static java.lang.String |
PSEUDONULL
|
Constructor Summary | |
---|---|
Comptroller(Interface db)
A secondary constructor for the class itself. |
Method Summary | |
---|---|
boolean |
deleteHost(java.lang.String ident)
Removes a host from the database. |
void |
deleteHosts()
Removes all hosts from the database. |
void |
deletePlaylistLocal(java.lang.String name)
Removes a local playlist from the local host database. |
void |
deleteSongs(java.util.Set<java.lang.String> deletes)
Method which deals with the removing superfluous rows from the song library. |
void |
fetchGlobal(java.util.Map<java.lang.String,java.lang.String> prop)
The Global properties file contains all information necessary to configure and control the look and feel of the application itself. |
java.util.Map<java.lang.String,java.lang.String> |
fetchLanguage()
The language files carries all of the information necessary to support international languages without a code rewrite. |
java.util.List<java.util.Map<java.lang.String,java.lang.String>> |
getHostComplete()
Returns a complete listing of all hosts stored in the database in a key/pair structure. |
int |
getHostCount()
Returns a list of host entries that exist within the database. |
java.util.Map<java.lang.String,java.lang.String> |
getHostDetails()
Method called to return host details when there is only one host element to find in the database. |
java.util.Map<java.lang.String,java.lang.String> |
getHostDetails(java.lang.String ident)
This variant will return a singular host based on its identifier. |
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> |
getHostLibrary()
While it may be more memory hungry to fetch the entire library in one hit. |
java.util.List<java.lang.String> |
getHostList()
Returns a List of strings containing every identifier for a host currently in the database. |
java.lang.String |
getHostSingle()
Will fetch the filename of the assumed singular host in the database. |
java.util.Map<java.lang.String,java.lang.String> |
getHostSong(java.lang.String file)
Will fetch information for one unique song. |
java.util.Map<java.lang.String,java.lang.Integer> |
getHostStatistics()
There is no direct and easy method to extract multiple rows and place their values into a Map |
java.lang.String |
getHostVersion()
Extracts the version information from the version view. |
java.lang.String[][] |
getOrganiserAlbum(java.util.Map<java.lang.String,java.lang.String> filter,
java.lang.String nil,
java.lang.String unknown)
Fetches album listing in complete from. |
java.lang.String[][] |
getOrganiserArtist(java.util.Map<java.lang.String,java.lang.String> filter,
java.lang.String nil,
java.lang.String unknown)
Fetches artist listing in complete from. |
private java.lang.String[][] |
getOrganiserFiltered(java.util.Map<java.lang.String,java.lang.String> filter,
java.lang.String column,
java.lang.String nil,
java.lang.String unknown)
Fetches general information in complete from. |
java.lang.String[][] |
getOrganiserGenre(java.util.Map<java.lang.String,java.lang.String> filter,
java.lang.String nil,
java.lang.String unknown)
Fetches genre listing in complete from. |
java.util.List<java.lang.String> |
getOrganiserPlaylists()
Will return a listing of all local playlists currently stored on the local side. |
java.lang.String[][] |
getOrganiserSongs(java.util.Map<java.lang.String,java.lang.String> filter)
Fetches song information in complete from. |
java.lang.String[][] |
getOrganiserSongs(java.lang.String fields,
java.lang.String criteria)
Fetches song information in complete from. |
java.util.Map<java.lang.String,java.lang.String> |
getOrganiserStatus(java.util.Map<java.lang.String,java.lang.String> filter)
Lets the database do all of the calculations and heavy work associated with generating the status bar information. |
java.util.Map<java.lang.String,java.lang.String> |
getOrganiserStatus(java.lang.String fields,
java.lang.String criteria)
Lets the database do all of the calculations and heavy work associated with generating the status bar information. |
java.util.List<java.lang.String> |
getPlaylistDecade()
Will return a listing of all decades from the database. |
java.util.List<java.lang.String> |
getPlaylistDecade(java.lang.String decade)
Returns a list of all songs associated with a certain decade. |
java.util.List<java.lang.String> |
getPlaylistFAlbum()
Returns a list of all songs associated with the favourite albums in the database. |
java.util.List<java.lang.String> |
getPlaylistFArtist()
Returns a list of all songs associated with the favourite artists in the database. |
java.util.List<java.lang.String> |
getPlaylistFGenre()
Returns a list of all songs associated with the favourite Genres in the database. |
java.util.List<java.lang.String> |
getPlaylistFRating()
Returns a list songs that have received a rating in order of precedence. |
java.util.List<java.lang.String> |
getPlaylistFSong()
Returns a list of all songs associated with the favourite songs in the database. |
java.util.Set<java.lang.String> |
getPlaylistLocal()
Will return a listing of all local playlists currently stored on the local side. |
java.util.List<java.lang.String> |
getPlaylistLocal(java.lang.String name)
This will make use of a local playlist name in order to return its contents. |
java.lang.String |
getProgLanguage(java.lang.String code)
There can be multiple language support for the application as a result it becomes necessary to track and attach various language files as necessary. |
void |
getSongAlbum(java.util.List<java.lang.String> store,
java.util.Map<java.lang.String,java.lang.String> filter)
Will append songs from a specific album to an existing list. |
void |
getSongAlbum(java.util.List<java.lang.String> store,
java.lang.String album)
Will append songs from a specific album to an existing list. |
private java.lang.String[] |
getSongArray(java.util.Map<java.lang.String,java.lang.String> filter)
Generates the necessary array to pass on for the query. |
java.lang.String |
getSongArt(java.lang.String file)
Extracts the Album Art cover information from the database. |
java.lang.String |
getSongArt(java.lang.String artist,
java.lang.String album)
Extracts the Album Art cover information from the database. |
void |
getSongArtist(java.util.List<java.lang.String> store,
java.util.Map<java.lang.String,java.lang.String> filter)
Will append songs from a specific artist to an existing list. |
void |
getSongArtist(java.util.List<java.lang.String> store,
java.lang.String artist)
Will append songs from a specific artist to an existing list. |
private java.lang.String |
getSongFilter(java.util.Map<java.lang.String,java.lang.String> filter)
Generates the string that will be pass on in order to generate the appropriate query to the database. |
void |
getSongGenre(java.util.List<java.lang.String> store,
java.util.Map<java.lang.String,java.lang.String> filter)
Will append songs from a specific genre to an existing list. |
void |
getSongGenre(java.util.List<java.lang.String> store,
java.lang.String genre)
Will append songs from a specific genre to an existing list. |
java.util.Map<java.lang.String,java.lang.String> |
getStatDatasetGeneral(java.lang.String element,
java.lang.String speriod,
java.lang.String eperiod,
java.lang.String limit)
Method called to return results based on what the user has decided in the generation of his statistical charts. |
java.util.Map<java.lang.String,java.lang.String> |
getStatDatasetSong(java.lang.String speriod,
java.lang.String eperiod,
java.lang.String limit,
java.lang.Boolean rating,
java.lang.String joiner)
Method called to return results based on what the user has decided in the generation of his statistical charts. |
int |
getStatTimescale(java.lang.String period)
Returns the amount of days a certain period range will encompass. |
java.lang.String |
getSystemVersion()
Extracts the version information from the version view. |
void |
insertAudit(java.lang.String action,
java.lang.String... filenames)
Inserts an entry into the audit table for the database. |
boolean |
insertCache(java.lang.String album,
java.lang.String dest)
Album art is a component of the player which requires external information. |
boolean |
insertCache(java.lang.String artist,
java.lang.String album,
java.lang.String dest)
Album art is a component of the player which requires external information. |
boolean |
insertHost(java.lang.String identifier,
java.lang.String host,
java.lang.String port,
java.lang.String password,
java.lang.String filename,
java.lang.String pathname,
java.lang.String arguments)
Inserts a Host into the database. |
void |
insertPlaylistLocal(java.lang.String name)
In order to insert songs into the playlist it becomes necessary to first create a holding entry in the appropriate table. |
void |
insertPlaylistSong(java.lang.String playlist,
java.util.List<java.util.Map<java.lang.String,java.lang.String>> current)
Will insert all of the currently listed songs for the current playlist into this table. |
void |
insertSongs(java.util.List<java.util.Map<java.lang.String,java.lang.String>> inserts)
Deals with mass insertions that can be associated with the the synch process of the database with the server. |
boolean |
resetCache(java.lang.String artist,
java.lang.String album)
Album art is a component of the player which requires external information. |
boolean |
updateHostDefault(java.lang.String host)
This method will update the default host entry, to be used when selecting from a list of multiple hosts. |
void |
updateHostStatistics(java.util.Set<java.lang.String> keys,
java.util.Map<java.lang.String,java.lang.String> values)
Statistics are a major component of how we do business. |
void |
updatePrompt()
This update can only be done one way, since the interface that uses it will only disable the prompt. |
void |
updateSettings(java.util.Map<java.lang.String,java.lang.String> settings)
Will update the settings to include new state information. |
void |
updateSettings(java.util.Map<java.lang.String,java.lang.String> settings,
java.lang.String filter)
Will update the settings to include new state information. |
void |
updateSongRating(java.lang.String file,
java.lang.String rating)
Ratings are the only element of a song displayed that can be changed due to the source of the songs themselves. |
void |
updateSongs(java.util.List<java.util.Map<java.lang.String,java.lang.String>> updates)
This method is a variant of the insertSongs method handling the intricacies of updates versus inserts. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
Interface Db
private static final java.lang.String DEF_LANGUAGE
private static final java.lang.String PSEUDONULL
Constructor Detail |
---|
public Comptroller(Interface db)
db
- Database handle to manage the connections.Method Detail |
---|
public java.util.Map<java.lang.String,java.lang.String> fetchLanguage()
public void fetchGlobal(java.util.Map<java.lang.String,java.lang.String> prop)
prop
- HashMap containing the existing properties to use.public java.lang.String getSystemVersion()
public java.lang.String getHostVersion()
public int getHostCount()
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getHostComplete()
public java.util.Map<java.lang.String,java.lang.String> getHostDetails()
public java.util.Map<java.lang.String,java.lang.String> getHostDetails(java.lang.String ident)
ident
- String identifier marking this element as unique.
public java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> getHostLibrary()
public java.util.List<java.lang.String> getHostList()
public java.lang.String getHostSingle()
public java.util.Map<java.lang.String,java.lang.String> getHostSong(java.lang.String file)
file
- Filename of the song itself.
public java.util.Map<java.lang.String,java.lang.Integer> getHostStatistics()
public java.lang.String getProgLanguage(java.lang.String code)
code
- Language code matching the ISO 639-1 name space.
public java.lang.String[][] getOrganiserAlbum(java.util.Map<java.lang.String,java.lang.String> filter, java.lang.String nil, java.lang.String unknown)
filter
- Map containing the elements to filter.nil
- String for NIL filtering.unknown
- String for NULL elements.
public java.lang.String[][] getOrganiserArtist(java.util.Map<java.lang.String,java.lang.String> filter, java.lang.String nil, java.lang.String unknown)
filter
- Map containing the elements to filter.nil
- String for NIL filtering.unknown
- String for NULL elements.
public java.lang.String[][] getOrganiserGenre(java.util.Map<java.lang.String,java.lang.String> filter, java.lang.String nil, java.lang.String unknown)
filter
- Map containing the elements to filter.nil
- String for NIL filtering.unknown
- String for NULL elements.
private java.lang.String[][] getOrganiserFiltered(java.util.Map<java.lang.String,java.lang.String> filter, java.lang.String column, java.lang.String nil, java.lang.String unknown)
filter
- Map containing the elements to filter.column
- Table to conduct the search on.nil
- String for NIL filtering.unknown
- String for NULL elements.
public java.lang.String[][] getOrganiserSongs(java.util.Map<java.lang.String,java.lang.String> filter)
filter
- Map containing the elements to filter.
public java.lang.String[][] getOrganiserSongs(java.lang.String fields, java.lang.String criteria)
fields
- String containing fields to search from.criteria
- String containing search criteria.
public java.util.List<java.lang.String> getOrganiserPlaylists()
public java.util.Map<java.lang.String,java.lang.String> getOrganiserStatus(java.util.Map<java.lang.String,java.lang.String> filter)
filter
- Map containing the elements to filter.
public java.util.Map<java.lang.String,java.lang.String> getOrganiserStatus(java.lang.String fields, java.lang.String criteria)
fields
- String containing fields to search from.criteria
- String co.ntaining search criteria.
public java.util.Set<java.lang.String> getPlaylistLocal()
public java.util.List<java.lang.String> getPlaylistLocal(java.lang.String name)
name
- String name of the playlist.
public java.util.List<java.lang.String> getPlaylistDecade()
public java.util.List<java.lang.String> getPlaylistDecade(java.lang.String decade)
decade
- String containing decade.
public java.util.List<java.lang.String> getPlaylistFArtist()
public java.util.List<java.lang.String> getPlaylistFAlbum()
public java.util.List<java.lang.String> getPlaylistFGenre()
public java.util.List<java.lang.String> getPlaylistFSong()
public java.util.List<java.lang.String> getPlaylistFRating()
public void deletePlaylistLocal(java.lang.String name)
name
- String name of the playlist.public void insertPlaylistLocal(java.lang.String name)
name
- String name of the playlist.public void insertPlaylistSong(java.lang.String playlist, java.util.List<java.util.Map<java.lang.String,java.lang.String>> current)
playlist
- String containing playlist name;current
- List of HashMaps containing contents of current playlist;private java.lang.String getSongFilter(java.util.Map<java.lang.String,java.lang.String> filter)
filter
- Map containing all elements to add into the filter
private java.lang.String[] getSongArray(java.util.Map<java.lang.String,java.lang.String> filter)
filter
- Map containing all elements to add into the filter.
public void getSongAlbum(java.util.List<java.lang.String> store, java.lang.String album)
store
- Collections list containing songs.album
- String containing album search key.public void getSongAlbum(java.util.List<java.lang.String> store, java.util.Map<java.lang.String,java.lang.String> filter)
store
- Collections list containing songs.filter
- Map containing filter elements.public java.lang.String getSongArt(java.lang.String artist, java.lang.String album)
artist
- String containing artist name.album
- String containing album name.
public java.lang.String getSongArt(java.lang.String file)
file
- String containing file location.
public void getSongArtist(java.util.List<java.lang.String> store, java.lang.String artist)
store
- Collections list containing songs.artist
- String containing artist search key.public void getSongArtist(java.util.List<java.lang.String> store, java.util.Map<java.lang.String,java.lang.String> filter)
store
- Collections list containing songs.filter
- Map containing filtering elements.public void getSongGenre(java.util.List<java.lang.String> store, java.lang.String genre)
store
- Collections list containing songs.genre
- String containing genre search key.public void getSongGenre(java.util.List<java.lang.String> store, java.util.Map<java.lang.String,java.lang.String> filter)
store
- Collections list containing songs.filter
- Map containing filter elements.public int getStatTimescale(java.lang.String period)
period
- String containing the search period.
public java.util.Map<java.lang.String,java.lang.String> getStatDatasetGeneral(java.lang.String element, java.lang.String speriod, java.lang.String eperiod, java.lang.String limit)
element
- String containing the row we are looking to search.speriod
- String containing start range for the date search.eperiod
- String containing end range for the date search.limit
- String containing the limit of rows to extract.
public java.util.Map<java.lang.String,java.lang.String> getStatDatasetSong(java.lang.String speriod, java.lang.String eperiod, java.lang.String limit, java.lang.Boolean rating, java.lang.String joiner)
speriod
- String containing start range for the date search.eperiod
- String containing end range for the date search.limit
- String containing the limit of rows to extract.rating
- Boolean determining how to order the songs.joiner
- String containing joining statement between title and artist.
public void insertAudit(java.lang.String action, java.lang.String... filenames)
action
- String containing action identifier.filenames
- Filenames of the songs affected.public boolean insertCache(java.lang.String artist, java.lang.String album, java.lang.String dest)
artist
- String containing the artist name.album
- String containing the album name.dest
- Destination album art image filename.
public boolean insertCache(java.lang.String album, java.lang.String dest)
album
- String containing the album name.dest
- Destination album art image filename.
public boolean resetCache(java.lang.String artist, java.lang.String album)
artist
- String containing the artist name.album
- String containing the album name.
public boolean insertHost(java.lang.String identifier, java.lang.String host, java.lang.String port, java.lang.String password, java.lang.String filename, java.lang.String pathname, java.lang.String arguments)
identifier
- String identifier for the host.host
- String containing host name or IP address.port
- String containing port number.password
- String containing password if necessary.filename
- String containing filename entry.pathname
- String containing pathname to daemon.arguments
- String containing arguments to pass onto daemon.
public boolean updateHostDefault(java.lang.String host)
host
- Host identifier in selecting a new host.
public void insertSongs(java.util.List<java.util.Map<java.lang.String,java.lang.String>> inserts)
inserts
- List of Maps containing new rows to insert.public void updateSongs(java.util.List<java.util.Map<java.lang.String,java.lang.String>> updates)
updates
- A List of Map entries which contains every row
that must be modified. We do not care about comparing differences
and simply replace the entire rows details.public void updateSongRating(java.lang.String file, java.lang.String rating)
file
- String name of the file name.rating
- String representing rating number.public void updateHostStatistics(java.util.Set<java.lang.String> keys, java.util.Map<java.lang.String,java.lang.String> values)
keys
- Keys to update on the database side.values
- Value Map to used to update.public void updateSettings(java.util.Map<java.lang.String,java.lang.String> settings, java.lang.String filter)
settings
- String Map containing values to store.filter
- String containing pre-check to limit update to necessary group.public void updateSettings(java.util.Map<java.lang.String,java.lang.String> settings)
settings
- String Map containing values to store.public void updatePrompt()
public void deleteSongs(java.util.Set<java.lang.String> deletes)
deletes
- Set containing all of the remaining keys.public boolean deleteHost(java.lang.String ident)
ident
- Host identifier to remove.
public void deleteHosts()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |