public abstract class EpgClient extends Object
An EpgClient instance must be used in order to gain access to all of the other object types available in this API. Only an EpgClient object can be directly instantiated by classes outside of this package.
Modifier and Type | Field and Description |
---|---|
static int |
API_VERSION
The Schedules Direct server API version this client implements.
|
Constructor and Description |
---|
EpgClient(String userAgent,
String baseUrl)
Constructor
|
Modifier and Type | Method and Description |
---|---|
abstract void |
close()
Close and free all resources associated with this client connection
|
abstract void |
deleteMessage(Message msg)
Acknowledge receipt of and delete a message object from the upstream provider.
|
protected abstract String |
fetchChannelMapping(Lineup lineup)
Fetch the channel mapping for the given Linup object
|
protected abstract InputStream |
fetchLogoStream(Station station)
Fetch a Station's logo object
|
protected abstract Program |
fetchProgram(String progId)
Fetch a single Program object
|
protected abstract Map<String,Program> |
fetchPrograms(String[] progIds)
Fetch multiple programs in batch.
|
protected abstract Airing[] |
fetchSchedule(Station station)
Fetch a single airing schedule for the given Station reference
|
protected abstract Map<Station,Airing[]> |
fetchSchedules(Lineup lineup)
Fetch multiple recording schedules in batch.
|
String |
getBaseUrl() |
abstract Lineup |
getLineupByUriPath(String path)
Get the lineup for the given uri
|
abstract Lineup[] |
getLineups()
Provide all available lineups for the logged in user.
|
Lineup[] |
getLineups(String location,
String zip)
Provide all available lineups for the given location.
|
abstract SystemStatus |
getSystemStatus()
Return details of the current state of the Schedules Direct system
|
static String |
getUriPathForLineupId(String id)
Given a lineup id, generate the full, absolute URI path for the lineup
|
String |
getUserAgent()
Return the current user agent string being submitted to the SD servers from this client.
|
abstract UserStatus |
getUserStatus()
Get the UserStatus object associated with this EpgClient connection
|
abstract void |
purgeCache()
Purge the client's object cache.
|
abstract void |
purgeCache(Object obj)
Purge a specific object from the client's cache.
|
abstract int |
registerLineup(String path)
Register the given lineup with the user's SD account
|
protected abstract Lineup[] |
searchForLineups(String location,
String zip)
Provide all available lineups for the given location.
|
void |
setBaseUri(String baseUrl) |
void |
setUserAgent(String userAgent)
Set the user agent for all HTTP requests submitted to the SD servers from this client.
|
abstract int |
unregisterLineup(Lineup l)
Unregister the lineup from the user's SD account
|
protected void |
writeLogoToFile(Station station,
File dest)
Write a station's logo to a file
|
public static final int API_VERSION
public static String getUriPathForLineupId(String id)
id
- The unique lineuppublic final Lineup[] getLineups(String location, String zip) throws IOException
location
- The 3 letter ISO country code; must be a country supported by the service (USA, CAN, etc.)zip
- The zip/postal code to find headends forInvalidZipCodeException
- Thrown if the given zip/postal code is invalidIOException
- Thrown if there is any kind of IO error accessing the raw data feedprotected abstract Lineup[] searchForLineups(String location, String zip) throws IOException
location
- The 3 letter ISO country code; must be a country supported by the service (USA, CAN, etc.)zip
- The zip/postal code to find headends forIOException
- Thrown if there is any kind of IO error accessing the raw data feedpublic abstract Lineup[] getLineups() throws IOException
This method will only return those lineups that are configured in the user's Schedules Direct account. These are the only lineups to which the user is guaranteed to have access to listings data for.
IOException
- Thrown if there is any kind of IO error accessing the data feedpublic abstract Lineup getLineupByUriPath(String path) throws IOException
NOTE:This method will only return objects registered to the user's account (or available in the local cache). This method will not construct a Lineup object and return it if you do not have access to the Lineup in question. In other words, you must register a lineup in your SD account before this method will return it.
path
- The absolute path to access the lineup data from; appended to BASE_URL to form full URI to be accessedIOException
- Thrown if there is any kind of IO error accessing the raw data feedpublic abstract UserStatus getUserStatus() throws IOException
IOException
- Thrown if there is any kind of IO error accessing the raw data feedpublic void setUserAgent(String userAgent)
A default agent string is generated if not set.
userAgent
- The user agent string to use for all HTTP requests to the SD serverspublic String getUserAgent()
public abstract void close() throws IOException
IOException
- On any IO errorprotected abstract Airing[] fetchSchedule(Station station) throws IOException
station
- The station to fetch the airing schedule forIOException
- Thrown on any IO error accessing the schedule dataprotected abstract String fetchChannelMapping(Lineup lineup) throws IOException
lineup
- The lineup to fetch channel mappings forIOException
- On any IO errorprotected abstract InputStream fetchLogoStream(Station station) throws IOException
station
- The station whose logo is to be fetchedIOException
- Thrown on any IO errorprotected void writeLogoToFile(Station station, File dest) throws IOException
station
- The station whose logo is to be written to filedest
- The destination of the writeIOException
- Thrown on any IO errorprotected abstract Program fetchProgram(String progId) throws IOException
progId
- The program id to fetchIOException
- Thrown on any IO error accessing the dataprotected abstract Map<Station,Airing[]> fetchSchedules(Lineup lineup) throws IOException
This method is preferred to fetchSchedule() as it will grab multiple schedules much more efficiently. Use this when ever you can.
lineup
- The Lineup object to download schedules forIOException
- In case of any IO error accessing the dataprotected abstract Map<String,Program> fetchPrograms(String[] progIds) throws IOException
This method is preferred to fetchProgram() as it will grab multiple programs much more efficiently. Use this when ever you can.
progIds
- An array of program ids to fetchIOException
- On any IO error accessing the datapublic abstract void purgeCache()
public abstract void purgeCache(Object obj)
obj
- The object to purge from the client's local cachepublic abstract void deleteMessage(Message msg) throws IOException
Optional operation
msg
- The message object to be deletedIOException
- In case of any IO error upstreampublic abstract SystemStatus getSystemStatus() throws IOException
IOException
- In case of any errors obtaining the status infopublic abstract int registerLineup(String path) throws IOException
Optional operation
path
- The full, absolute URI of the lineup to register; perhaps grab this value from EpgClient.getUriPathForLineupId()
IOException
- On any IO errorUnsupportedOperationException
- If the client type doesn't support the operationpublic abstract int unregisterLineup(Lineup l) throws IOException
Optional operation
l
- The linup to unregister from the user's accountIOException
- On any IO errorUnsupportedOperationException
- If the client type doesn't support the operationpublic String getBaseUrl()
public void setBaseUri(String baseUrl)
baseUri
- the baseUrl to setCopyright © 2012–2014 Battams, Derek. All rights reserved.