package org.limewire.player.impl; import java.io.File; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import org.limewire.player.api.AudioSource; /** * A wrapper for the source of an audio file that is currently playing. */ public class AudioSourceImpl implements AudioSource { /** * current audio source that is loaded in the music player. */ private final File file; private final URL url; private final InputStream inputStream; public AudioSourceImpl(File file){ if( file == null ) throw new NullPointerException("File cannot be null"); this.file = file; url = null; inputStream = null; } public AudioSourceImpl(URL url){ if( url == null ) throw new NullPointerException("URL cannot be null"); this.url = url; file = null; inputStream = null; } public AudioSourceImpl(InputStream stream){ if( stream == null ) throw new NullPointerException("InputStream cannot be null"); this.inputStream = stream; file = null; url = null; } public File getFile(){ return file; } public InputStream getStream(){ return inputStream; } public URL getURL(){ if( url != null ) return url; else if( file != null ) try { return file.toURI().toURL(); } catch (MalformedURLException e) { } return null; } }