All Downloads are FREE. Search and download functionalities are using the official Maven repository.

chameleon.playlist.package.html Maven / Gradle / Ivy

There is a newer version: 1.2.1-RELEASE
Show newest version


The home of the playlist management API.
You should begin here with {@link christophedelory.playlist.SpecificPlaylistFactory}.

You will find below the main steps in order to properly use the API for parsing an existing playlist (exception catching is not performed):
  • Let's begin with a file in your local file system.
    {@link java.io.File} file = new {@link java.io.File}("a_playlist_file");
    {@link christophedelory.playlist.SpecificPlaylist} specificPlaylist = SpecificPlaylistFactory.getInstance().{@link christophedelory.playlist.SpecificPlaylistFactory#readFrom(java.net.URL) readFrom}(file);
    
  • If the method didn't throw an exception, the playlist format was recognized. And then, two cases: if the handle is null, the playlist is malformed:
    if (specificPlaylist == null)
    {
        throw new Exception("Invalid playlist format");
    }
    
  • Or you have now a valid specific playlist descriptor. You can work directly with it if you know its type (i.e. class). You can also switch to a "generic" playlist, which is the preferred way if you intend to be format-agnostic, or if you want to convert this "specific" playlist to another format.
    {@link christophedelory.playlist.Playlist} genericPlaylist = specificPlaylist.{@link christophedelory.playlist.SpecificPlaylist#toPlaylist() toPlaylist}();
    
  • Now work with your "normalized" playlist.
The "generic" playlist hierarchy is the following:

Now you want to save your playlist in a given format, let's say "ASX". First you have to retrieve the associated playlist provider. Two methods are available for that purpose:
  1. You know the "internal" identifier of this provider ("asx" in this case, see the diagram below): use the following code:
    {@link christophedelory.playlist.SpecificPlaylistProvider} provider = SpecificPlaylistFactory.getInstance().{@link christophedelory.playlist.SpecificPlaylistFactory#findProviderById(String) findProviderById}("asx");
        
  2. Or use the typical file name extension for this type of playlist:
    {@link christophedelory.playlist.SpecificPlaylistProvider} provider = SpecificPlaylistFactory.getInstance().{@link christophedelory.playlist.SpecificPlaylistFactory#findProviderByExtension(String) findProviderByExtension}(".asx");
        
Note: if you prefer to keep the same format as for the source, simply use the input playlist's provider, like this:
{@link christophedelory.playlist.SpecificPlaylistProvider} provider = specificPlaylist.{@link christophedelory.playlist.SpecificPlaylist#getProvider() getProvider}();
The "specific" playlist providers hierarchy is the following:

Now convert your generic playlist description to the chosen format:
{@link christophedelory.playlist.SpecificPlaylist} newSpecificPlaylist = provider.{@link christophedelory.playlist.SpecificPlaylistProvider#toSpecificPlaylist(christophedelory.playlist.Playlist) toSpecificPlaylist}(genericPlaylist);
If everything ran well, you can now flush the result to any output stream:
newSpecificPlaylist.{@link christophedelory.playlist.SpecificPlaylist#writeTo(java.io.OutputStream,String) writeTo}(System.out, null);
Enjoy!




© 2015 - 2024 Weber Informatics LLC | Privacy Policy