// Path: downzlibrary/src/main/java/com/example/downzlibrary/ListnerInterface/HttpListener.java
// public interface HttpListener<T> {
//     /**
//      * callback starts
//      */
//     public void onRequest();
// 
//     /**
//      * Callback that's fired after response
//      *
//      * @param data of the type T holds the response
//      */
//     public void onResponse(T data);
// 
//     public void onError();
// 
//     public void onCancel();
// }
// 
// Path: downzlibrary/src/main/java/com/example/downzlibrary/Utilities/CacheManagerInterface.java
// public interface CacheManagerInterface<T> {
//     public void addDataToCache(String key, T data);
// 
//     public void removeDataFromCache(String key);
// 
//     public T getDataFromCache(String key);
// 
//     public void evictUnused();
// }


import com.example.downzlibrary.ListnerInterface.HttpListener;
import com.example.downzlibrary.Utilities.CacheManagerInterface;
package com.example.downzlibrary.DataTypes;


/**
 * Created by saurabhkumar on 06/08/17.
 */

public abstract class Type<T> {
    public abstract Type setCacheManager(CacheManagerInterface<T> cacheManager);

// Path: downzlibrary/src/main/java/com/example/downzlibrary/ListnerInterface/HttpListener.java
// public interface HttpListener<T> {
//     /**
//      * callback starts
//      */
//     public void onRequest();
// 
//     /**
//      * Callback that's fired after response
//      *
//      * @param data of the type T holds the response
//      */
//     public void onResponse(T data);
// 
//     public void onError();
// 
//     public void onCancel();
// }
// 
// Path: downzlibrary/src/main/java/com/example/downzlibrary/Utilities/CacheManagerInterface.java
// public interface CacheManagerInterface<T> {
//     public void addDataToCache(String key, T data);
// 
//     public void removeDataFromCache(String key);
// 
//     public T getDataFromCache(String key);
// 
//     public void evictUnused();
// }


// Path: downzlibrary/src/main/java/com/example/downzlibrary/DataTypes/Type.java
import com.example.downzlibrary.ListnerInterface.HttpListener;
import com.example.downzlibrary.Utilities.CacheManagerInterface;

package com.example.downzlibrary.DataTypes;


/**
 * Created by saurabhkumar on 06/08/17.
 */

public abstract class Type<T> {
    public abstract Type setCacheManager(CacheManagerInterface<T> cacheManager);

    public abstract Type setCallback(HttpListener<T> callback);