com.planetj.taste.impl.model.netflix
Class NetflixDataModel

java.lang.Object
  extended by com.planetj.taste.impl.model.netflix.NetflixDataModel
All Implemented Interfaces:
Refreshable, DataModel

public final class NetflixDataModel
extends java.lang.Object
implements DataModel

Since:
1.3.5
Author:
Sean Owen

Constructor Summary
NetflixDataModel(java.io.File dataDirectory)
           
 
Method Summary
 Item getItem(java.lang.Object id)
          
 java.lang.Iterable<? extends Item> getItems()
          
 int getNumItems()
          
 int getNumUsers()
          
 java.lang.Iterable<? extends Preference> getPreferencesForItem(java.lang.Object itemID)
          
 Preference[] getPreferencesForItemAsArray(java.lang.Object itemID)
          
 User getUser(java.lang.Object id)
          
 java.lang.Iterable<? extends User> getUsers()
          
 void refresh()
          

Triggers "refresh" -- whatever that means -- of the implementation.

 void removePreference(java.lang.Object userID, java.lang.Object itemID)
          Removes a particular preference for a user.
 void setPreference(java.lang.Object userID, java.lang.Object itemID, double value)
          Sets a particular preference (item plus rating) for a user.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NetflixDataModel

public NetflixDataModel(java.io.File dataDirectory)
                 throws java.io.IOException
Throws:
java.io.IOException
Method Detail

getUsers

@NotNull
public java.lang.Iterable<? extends User> getUsers()
                                            throws TasteException

Specified by:
getUsers in interface DataModel
Returns:
a List of all Users in the model, ordered by User
Throws:
TasteException - if an error occurs while accessing the data

getUser

@NotNull
public User getUser(java.lang.Object id)
             throws TasteException

Specified by:
getUser in interface DataModel
Parameters:
id - user ID
Returns:
User who has that ID
Throws:
java.util.NoSuchElementException - if there is no such user
TasteException - if an error occurs while accessing the data

getItems

@NotNull
public java.lang.Iterable<? extends Item> getItems()
                                            throws TasteException

Specified by:
getItems in interface DataModel
Returns:
a List of all Items in the model, order by Item
Throws:
TasteException - if an error occurs while accessing the data

getItem

@NotNull
public Item getItem(java.lang.Object id)
             throws TasteException

Specified by:
getItem in interface DataModel
Parameters:
id - item ID
Returns:
Item that has that ID
Throws:
TasteException - if an error occurs while accessing the data

getPreferencesForItem

@NotNull
public java.lang.Iterable<? extends Preference> getPreferencesForItem(java.lang.Object itemID)
                                                               throws TasteException

Specified by:
getPreferencesForItem in interface DataModel
Parameters:
itemID - item ID
Returns:
all existing Preferences expressed for that item, ordered by User
Throws:
TasteException - if an error occurs while accessing the data

getPreferencesForItemAsArray

@NotNull
public Preference[] getPreferencesForItemAsArray(java.lang.Object itemID)
                                          throws TasteException

Specified by:
getPreferencesForItemAsArray in interface DataModel
Parameters:
itemID - item ID
Returns:
all existing Preferences expressed for that item, ordered by User, as an array
Throws:
TasteException - if an error occurs while accessing the data

getNumItems

public int getNumItems()
                throws TasteException

Specified by:
getNumItems in interface DataModel
Returns:
total number of Items known to the model. This is generally the union of all Items preferred by at least one User but could include more.
Throws:
TasteException - if an error occurs while accessing the data

getNumUsers

public int getNumUsers()
                throws TasteException

Specified by:
getNumUsers in interface DataModel
Returns:
total number of Users known to the model.
Throws:
TasteException - if an error occurs while accessing the data

setPreference

public void setPreference(java.lang.Object userID,
                          java.lang.Object itemID,
                          double value)
Description copied from interface: DataModel

Sets a particular preference (item plus rating) for a user.

Specified by:
setPreference in interface DataModel
Parameters:
userID - user to set preference for
itemID - item to set preference for
value - preference value
Throws:
java.lang.UnsupportedOperationException

removePreference

public void removePreference(java.lang.Object userID,
                             java.lang.Object itemID)
Description copied from interface: DataModel

Removes a particular preference for a user.

Specified by:
removePreference in interface DataModel
Parameters:
userID - user from which to remove preference
itemID - item to remove preference for
Throws:
java.lang.UnsupportedOperationException

refresh

public void refresh()

Triggers "refresh" -- whatever that means -- of the implementation. The general contract is that any Refreshable should always leave itself in a consistent, operational state, and that the refresh atomically updates internal state from old to new.

Specified by:
refresh in interface Refreshable