class MediaItemDataStoreFactory {

    public MediaItemDataStore create( final int id ) {
        Log.d( TAG, "create : enter" );

        if( cache.contains( String.valueOf( id ) ) ) {

            Log.d( TAG, "create : exit, getting mediaItemEntity from cache" );
            return new DiskMediaItemDataStore( this.dvrDataStoreFactory, this.contentDataStoreFactory, cache );

        } else {

            Log.d( TAG, "create : exit, getting mediaItemEntity from master backend" );
            return createMasterBackendDataStore();
        }


    }

    @Inject public  MediaItemDataStoreFactory(
            final DvrDataStoreFactory dvrDataStoreFactory,
            final VideoDataStoreFactory videoDataStoreFactory,
            final ContentDataStoreFactory contentDataStoreFactory,
            final SearchDataStoreFactory searchDataStoreFactory,
            final DualCache<MediaItemEntity> cache
    );

}