package fr.eyal.datalib.sample.netflix.data.model;
import android.content.UriMatcher;
import android.net.Uri;
import fr.eyal.lib.data.model.provider.BusinessObjectProvider;
import fr.eyal.datalib.sample.netflix.data.model.newreleases.*;
import fr.eyal.datalib.sample.netflix.data.model.top100.*;
import fr.eyal.datalib.sample.netflix.data.model.topgenre.*;
import fr.eyal.datalib.sample.netflix.data.model.people.*;
import fr.eyal.datalib.sample.netflix.data.model.filmography.*;
import fr.eyal.datalib.sample.netflix.data.model.movie.*;
import fr.eyal.datalib.sample.netflix.data.model.synopsis.*;
import fr.eyal.datalib.sample.netflix.data.model.cast.*;
import fr.eyal.datalib.sample.netflix.data.model.directors.*;
// Start of user code NetflixProvider imports
// You can add here your personal imports
// DO NOT MODIFY THE GENERATED COMMENTS "Start of user code" and "End of user code
public class NetflixProvider extends BusinessObjectProvider {
public static final String AUTHORITY = "fr.eyal.datalib.sample.netflix.datacache.provider";
/**
* Tables' Codes
*/
public static final int CODE_NEWRELEASES = 0;
public static final int CODE_NEWRELEASES_ITEMNEWRELEASE = 8;
public static final int CODE_TOP100 = 13;
public static final int CODE_TOP100_ITEMTOP100 = 21;
public static final int CODE_TOPGENRE = 25;
public static final int CODE_TOPGENRE_ITEMTOPGENRE = 33;
public static final int CODE_PEOPLE = 57;
public static final int CODE_PEOPLE_PEOPLELINK = 62;
public static final int CODE_FILMOGRAPHY = 63;
public static final int CODE_FILMOGRAPHY_FILMOGRAPHY_ITEM = 66;
public static final int CODE_FILMOGRAPHY_FILMOGRAPHY_ITEM_FILMOGRAPHYLINK = 70;
public static final int CODE_FILMOGRAPHY_FILMOGRAPHY_ITEM_FILMOGRAPHYCATEGORY = 72;
public static final int CODE_MOVIE = 75;
public static final int CODE_MOVIE_MOVIELINK = 81;
public static final int CODE_MOVIE_MOVIECATEGORY = 83;
public static final int CODE_SYNOPSIS = 86;
public static final int CODE_CAST = 89;
public static final int CODE_CAST_CASTPERSON = 92;
public static final int CODE_CAST_CASTPERSON_CASTLINK = 96;
public static final int CODE_DIRECTORS = 97;
public static final int CODE_DIRECTORS_DIRECTOR = 100;
public static final int CODE_DIRECTORS_DIRECTOR_DIRECTORLINK = 104;
static {
DATABASE_NAME = "datalib_cache";
DATABASE_VERSION = 5;
//Tables' names list
String[] LOCAL_DATABASE_TABLES_NAMES = {
NewReleases.DATABASE_TABLE_NAME,
ItemNewRelease.DATABASE_TABLE_NAME,
Top100.DATABASE_TABLE_NAME,
ItemTop100.DATABASE_TABLE_NAME,
TopGenre.DATABASE_TABLE_NAME,
ItemTopGenre.DATABASE_TABLE_NAME,
People.DATABASE_TABLE_NAME,
PeopleLink.DATABASE_TABLE_NAME,
Filmography.DATABASE_TABLE_NAME,
Filmography_item.DATABASE_TABLE_NAME,
FilmographyLink.DATABASE_TABLE_NAME,
FilmographyCategory.DATABASE_TABLE_NAME,
Movie.DATABASE_TABLE_NAME,
MovieLink.DATABASE_TABLE_NAME,
MovieCategory.DATABASE_TABLE_NAME,
Synopsis.DATABASE_TABLE_NAME,
Cast.DATABASE_TABLE_NAME,
CastPerson.DATABASE_TABLE_NAME,
CastLink.DATABASE_TABLE_NAME,
Directors.DATABASE_TABLE_NAME,
Director.DATABASE_TABLE_NAME,
DirectorLink.DATABASE_TABLE_NAME,
};
DATABASE_TABLES_NAMES = LOCAL_DATABASE_TABLES_NAMES;
//Tables' fields' names list
String[][] LOCAL_DATABASE_TABLES_FIELDS_NAMES = {
NewReleases.DATABASE_TABLE_FIELDS_NAMES,
ItemNewRelease.DATABASE_TABLE_FIELDS_NAMES,
Top100.DATABASE_TABLE_FIELDS_NAMES,
ItemTop100.DATABASE_TABLE_FIELDS_NAMES,
TopGenre.DATABASE_TABLE_FIELDS_NAMES,
ItemTopGenre.DATABASE_TABLE_FIELDS_NAMES,
People.DATABASE_TABLE_FIELDS_NAMES,
PeopleLink.DATABASE_TABLE_FIELDS_NAMES,
Filmography.DATABASE_TABLE_FIELDS_NAMES,
Filmography_item.DATABASE_TABLE_FIELDS_NAMES,
FilmographyLink.DATABASE_TABLE_FIELDS_NAMES,
FilmographyCategory.DATABASE_TABLE_FIELDS_NAMES,
Movie.DATABASE_TABLE_FIELDS_NAMES,
MovieLink.DATABASE_TABLE_FIELDS_NAMES,
MovieCategory.DATABASE_TABLE_FIELDS_NAMES,
Synopsis.DATABASE_TABLE_FIELDS_NAMES,
Cast.DATABASE_TABLE_FIELDS_NAMES,
CastPerson.DATABASE_TABLE_FIELDS_NAMES,
CastLink.DATABASE_TABLE_FIELDS_NAMES,
Directors.DATABASE_TABLE_FIELDS_NAMES,
Director.DATABASE_TABLE_FIELDS_NAMES,
DirectorLink.DATABASE_TABLE_FIELDS_NAMES,
};
DATABASE_TABLES_FIELDS_NAMES = LOCAL_DATABASE_TABLES_FIELDS_NAMES;
//Tables' fields' names list
String[] LOCAL_CREATE_TABLES = {
NewReleases.CREATE_TABLE,
ItemNewRelease.CREATE_TABLE,
Top100.CREATE_TABLE,
ItemTop100.CREATE_TABLE,
TopGenre.CREATE_TABLE,
ItemTopGenre.CREATE_TABLE,
People.CREATE_TABLE,
PeopleLink.CREATE_TABLE,
Filmography.CREATE_TABLE,
Filmography_item.CREATE_TABLE,
FilmographyLink.CREATE_TABLE,
FilmographyCategory.CREATE_TABLE,
Movie.CREATE_TABLE,
MovieLink.CREATE_TABLE,
MovieCategory.CREATE_TABLE,
Synopsis.CREATE_TABLE,
Cast.CREATE_TABLE,
CastPerson.CREATE_TABLE,
CastLink.CREATE_TABLE,
Directors.CREATE_TABLE,
Director.CREATE_TABLE,
DirectorLink.CREATE_TABLE,
};
CREATE_TABLES = LOCAL_CREATE_TABLES;
//Email URI matching table
UriMatcher matcher = sUriMatcher;
//We add each URIs into the matcher
matcher.addURI(AUTHORITY, NewReleases.CONTENT_PATH, CODE_NEWRELEASES);
matcher.addURI(AUTHORITY, ItemNewRelease.CONTENT_PATH, CODE_NEWRELEASES_ITEMNEWRELEASE);
matcher.addURI(AUTHORITY, Top100.CONTENT_PATH, CODE_TOP100);
matcher.addURI(AUTHORITY, ItemTop100.CONTENT_PATH, CODE_TOP100_ITEMTOP100);
matcher.addURI(AUTHORITY, TopGenre.CONTENT_PATH, CODE_TOPGENRE);
matcher.addURI(AUTHORITY, ItemTopGenre.CONTENT_PATH, CODE_TOPGENRE_ITEMTOPGENRE);
matcher.addURI(AUTHORITY, People.CONTENT_PATH, CODE_PEOPLE);
matcher.addURI(AUTHORITY, PeopleLink.CONTENT_PATH, CODE_PEOPLE_PEOPLELINK);
matcher.addURI(AUTHORITY, Filmography.CONTENT_PATH, CODE_FILMOGRAPHY);
matcher.addURI(AUTHORITY, Filmography_item.CONTENT_PATH, CODE_FILMOGRAPHY_FILMOGRAPHY_ITEM);
matcher.addURI(AUTHORITY, FilmographyLink.CONTENT_PATH, CODE_FILMOGRAPHY_FILMOGRAPHY_ITEM_FILMOGRAPHYLINK);
matcher.addURI(AUTHORITY, FilmographyCategory.CONTENT_PATH, CODE_FILMOGRAPHY_FILMOGRAPHY_ITEM_FILMOGRAPHYCATEGORY);
matcher.addURI(AUTHORITY, Movie.CONTENT_PATH, CODE_MOVIE);
matcher.addURI(AUTHORITY, MovieLink.CONTENT_PATH, CODE_MOVIE_MOVIELINK);
matcher.addURI(AUTHORITY, MovieCategory.CONTENT_PATH, CODE_MOVIE_MOVIECATEGORY);
matcher.addURI(AUTHORITY, Synopsis.CONTENT_PATH, CODE_SYNOPSIS);
matcher.addURI(AUTHORITY, Cast.CONTENT_PATH, CODE_CAST);
matcher.addURI(AUTHORITY, CastPerson.CONTENT_PATH, CODE_CAST_CASTPERSON);
matcher.addURI(AUTHORITY, CastLink.CONTENT_PATH, CODE_CAST_CASTPERSON_CASTLINK);
matcher.addURI(AUTHORITY, Directors.CONTENT_PATH, CODE_DIRECTORS);
matcher.addURI(AUTHORITY, Director.CONTENT_PATH, CODE_DIRECTORS_DIRECTOR);
matcher.addURI(AUTHORITY, DirectorLink.CONTENT_PATH, CODE_DIRECTORS_DIRECTOR_DIRECTORLINK);
}
@Override
protected String getTableName(final int match) {
switch (match) {
case CODE_NEWRELEASES:
return NewReleases.DATABASE_TABLE_NAME;
case CODE_NEWRELEASES_ITEMNEWRELEASE:
return ItemNewRelease.DATABASE_TABLE_NAME;
case CODE_TOP100:
return Top100.DATABASE_TABLE_NAME;
case CODE_TOP100_ITEMTOP100:
return ItemTop100.DATABASE_TABLE_NAME;
case CODE_TOPGENRE:
return TopGenre.DATABASE_TABLE_NAME;
case CODE_TOPGENRE_ITEMTOPGENRE:
return ItemTopGenre.DATABASE_TABLE_NAME;
case CODE_PEOPLE:
return People.DATABASE_TABLE_NAME;
case CODE_PEOPLE_PEOPLELINK:
return PeopleLink.DATABASE_TABLE_NAME;
case CODE_FILMOGRAPHY:
return Filmography.DATABASE_TABLE_NAME;
case CODE_FILMOGRAPHY_FILMOGRAPHY_ITEM:
return Filmography_item.DATABASE_TABLE_NAME;
case CODE_FILMOGRAPHY_FILMOGRAPHY_ITEM_FILMOGRAPHYLINK:
return FilmographyLink.DATABASE_TABLE_NAME;
case CODE_FILMOGRAPHY_FILMOGRAPHY_ITEM_FILMOGRAPHYCATEGORY:
return FilmographyCategory.DATABASE_TABLE_NAME;
case CODE_MOVIE:
return Movie.DATABASE_TABLE_NAME;
case CODE_MOVIE_MOVIELINK:
return MovieLink.DATABASE_TABLE_NAME;
case CODE_MOVIE_MOVIECATEGORY:
return MovieCategory.DATABASE_TABLE_NAME;
case CODE_SYNOPSIS:
return Synopsis.DATABASE_TABLE_NAME;
case CODE_CAST:
return Cast.DATABASE_TABLE_NAME;
case CODE_CAST_CASTPERSON:
return CastPerson.DATABASE_TABLE_NAME;
case CODE_CAST_CASTPERSON_CASTLINK:
return CastLink.DATABASE_TABLE_NAME;
case CODE_DIRECTORS:
return Directors.DATABASE_TABLE_NAME;
case CODE_DIRECTORS_DIRECTOR:
return Director.DATABASE_TABLE_NAME;
case CODE_DIRECTORS_DIRECTOR_DIRECTORLINK:
return DirectorLink.DATABASE_TABLE_NAME;
default:
return null;
}
}
@Override
public String getType(final Uri uri) {
switch (sUriMatcher.match(uri)) {
case CODE_NEWRELEASES:
return NewReleases.CONTENT_URL;
case CODE_NEWRELEASES_ITEMNEWRELEASE:
return ItemNewRelease.CONTENT_URL;
case CODE_TOP100:
return Top100.CONTENT_URL;
case CODE_TOP100_ITEMTOP100:
return ItemTop100.CONTENT_URL;
case CODE_TOPGENRE:
return TopGenre.CONTENT_URL;
case CODE_TOPGENRE_ITEMTOPGENRE:
return ItemTopGenre.CONTENT_URL;
case CODE_PEOPLE:
return People.CONTENT_URL;
case CODE_PEOPLE_PEOPLELINK:
return PeopleLink.CONTENT_URL;
case CODE_FILMOGRAPHY:
return Filmography.CONTENT_URL;
case CODE_FILMOGRAPHY_FILMOGRAPHY_ITEM:
return Filmography_item.CONTENT_URL;
case CODE_FILMOGRAPHY_FILMOGRAPHY_ITEM_FILMOGRAPHYLINK:
return FilmographyLink.CONTENT_URL;
case CODE_FILMOGRAPHY_FILMOGRAPHY_ITEM_FILMOGRAPHYCATEGORY:
return FilmographyCategory.CONTENT_URL;
case CODE_MOVIE:
return Movie.CONTENT_URL;
case CODE_MOVIE_MOVIELINK:
return MovieLink.CONTENT_URL;
case CODE_MOVIE_MOVIECATEGORY:
return MovieCategory.CONTENT_URL;
case CODE_SYNOPSIS:
return Synopsis.CONTENT_URL;
case CODE_CAST:
return Cast.CONTENT_URL;
case CODE_CAST_CASTPERSON:
return CastPerson.CONTENT_URL;
case CODE_CAST_CASTPERSON_CASTLINK:
return CastLink.CONTENT_URL;
case CODE_DIRECTORS:
return Directors.CONTENT_URL;
case CODE_DIRECTORS_DIRECTOR:
return Director.CONTENT_URL;
case CODE_DIRECTORS_DIRECTOR_DIRECTORLINK:
return DirectorLink.CONTENT_URL;
default:
return null;
}
}
// Start of user code NetflixProvider
// You can add here your personal content
// DO NOT MODIFY THE GENERATED COMMENTS "Start of user code" and "End of user code
}