// Path: app/src/main/java/info/izumin/android/sunazuri/infrastructure/api/TeamsApi.java
// public interface TeamsApi {
//     @GET("/v1/teams")
//     Single<List<TeamEntity>> fetch(
//             @Query("access_token") String accessToken
//     );
// 
//     @GET("/v1/teams/{team_name}")
//     Single<TeamEntity> fetch(
//             @Path("team_name") String teamName,
//             @Query("access_token") String accessToken
//     );
// 
//     @GET("/v1/teams/{team_name}/stats")
//     Single<TeamStatsEntity> stats(
//             @Path("team_name") String teamName,
//             @Query("access_token") String accessToken
//     );
// }
// 
// Path: app/src/main/java/info/izumin/android/sunazuri/infrastructure/cache/LoginCache.java
// public interface LoginCache {
//     long getUserId();
//     void putUserId(long userId);
//     String getTeamId();
//     void putTeamName(String teamName);
//     void removeAll();
//     boolean isUserCached();
//     boolean isTeamCached();
// }


import info.izumin.android.sunazuri.infrastructure.api.TeamsApi;
import info.izumin.android.sunazuri.infrastructure.cache.LoginCache;
import info.izumin.android.sunazuri.infrastructure.dao.TeamsDao;
import javax.inject.Inject;
import javax.inject.Singleton;
package info.izumin.android.sunazuri.infrastructure.repository.source.team;



/**
 * Created by izumin on 5/13/2016 AD.
 */
@Singleton
class TeamsDataSourceFactoryImpl implements TeamsDataSourceFactory {
    public static final String TAG = TeamsDataSourceFactoryImpl.class.getSimpleName();

    private final TeamsApi teamsApi;
    private final TeamsDao teamsDao;
// Path: app/src/main/java/info/izumin/android/sunazuri/infrastructure/api/TeamsApi.java
// public interface TeamsApi {
//     @GET("/v1/teams")
//     Single<List<TeamEntity>> fetch(
//             @Query("access_token") String accessToken
//     );
// 
//     @GET("/v1/teams/{team_name}")
//     Single<TeamEntity> fetch(
//             @Path("team_name") String teamName,
//             @Query("access_token") String accessToken
//     );
// 
//     @GET("/v1/teams/{team_name}/stats")
//     Single<TeamStatsEntity> stats(
//             @Path("team_name") String teamName,
//             @Query("access_token") String accessToken
//     );
// }
// 
// Path: app/src/main/java/info/izumin/android/sunazuri/infrastructure/cache/LoginCache.java
// public interface LoginCache {
//     long getUserId();
//     void putUserId(long userId);
//     String getTeamId();
//     void putTeamName(String teamName);
//     void removeAll();
//     boolean isUserCached();
//     boolean isTeamCached();
// }


// Path: app/src/main/java/info/izumin/android/sunazuri/infrastructure/repository/source/team/TeamsDataSourceFactoryImpl.java
import info.izumin.android.sunazuri.infrastructure.api.TeamsApi;
import info.izumin.android.sunazuri.infrastructure.cache.LoginCache;
import info.izumin.android.sunazuri.infrastructure.dao.TeamsDao;
import javax.inject.Inject;
import javax.inject.Singleton;

package info.izumin.android.sunazuri.infrastructure.repository.source.team;



/**
 * Created by izumin on 5/13/2016 AD.
 */
@Singleton
class TeamsDataSourceFactoryImpl implements TeamsDataSourceFactory {
    public static final String TAG = TeamsDataSourceFactoryImpl.class.getSimpleName();

    private final TeamsApi teamsApi;
    private final TeamsDao teamsDao;
    private final LoginCache loginCache;