// Path: retrofitcachelib/src/main/java/ren/yale/android/retrofitcachelib/bean/CacheConfig.java
// public class CacheConfig {
// 
//     private TimeUnit timeUnit = TimeUnit.NANOSECONDS;
//     private Long time = 0L;
//     private boolean forceCacheNoNet = true;
// 
//     public TimeUnit getTimeUnit() {
//         return timeUnit;
//     }
// 
//     public void setTimeUnit(TimeUnit timeUnit) {
//         this.timeUnit = timeUnit;
//     }
// 
//     public Long getTime() {
//         return time;
//     }
// 
//     public void setTime(Long time) {
//         this.time = time;
//     }
// 
//     public boolean isForceCacheNoNet() {
//         return forceCacheNoNet;
//     }
// 
//     public void setForceCacheNoNet(boolean forceCacheNoNet) {
//         this.forceCacheNoNet = forceCacheNoNet;
//     }
// }
// 
// Path: retrofitcachelib/src/main/java/ren/yale/android/retrofitcachelib/util/LogUtil.java
// public class LogUtil {
//    private static String TAG="retrofitcache";
//     private static final  boolean DEBUG = false;
//     public static void d(String text){
//             android.util.Log.d(TAG,text);
//     }
//     public static void w(String text){
//         android.util.Log.w(TAG,text);
//     }
// 
//     public static void l(Exception e){
//         if (DEBUG){
//            e.printStackTrace();
//         }else{
//             android.util.Log.w(TAG,e.toString());
//         }
//     }
// }


import android.content.Context;
import android.text.TextUtils;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.Vector;
import java.util.concurrent.TimeUnit;
import okhttp3.Request;
import ren.yale.android.retrofitcachelib.anno.Cache;
import ren.yale.android.retrofitcachelib.anno.Mock;
import ren.yale.android.retrofitcachelib.bean.CacheConfig;
import ren.yale.android.retrofitcachelib.util.LogUtil;
import retrofit2.Retrofit;
    }

    public Mock getMockObject(String url){
        for (Map serviceMethodCache:mVector) {

            for (Object entry:serviceMethodCache.keySet()){
                Object o = serviceMethodCache.get(entry);
                try {

                    if (mUrlAragsMap.containsKey(url)){
                        Object[] args = (Object[]) mUrlAragsMap.get(url);
                        String reqUrl =  buildRequestUrl(o,args);
                        if (reqUrl.equals(url)){
                            Method m = (Method) entry;
                            Mock mock =  m.getAnnotation(Mock.class);
                            if (mock!=null){
                                return  mock;
                            }
                            return null;
                        }
                    }
                } catch (Exception e) {
                    LogUtil.l(e);
                }
            }
        }

        return null;
    }
    public String getMockUrl(Mock mock){
// Path: retrofitcachelib/src/main/java/ren/yale/android/retrofitcachelib/bean/CacheConfig.java
// public class CacheConfig {
// 
//     private TimeUnit timeUnit = TimeUnit.NANOSECONDS;
//     private Long time = 0L;
//     private boolean forceCacheNoNet = true;
// 
//     public TimeUnit getTimeUnit() {
//         return timeUnit;
//     }
// 
//     public void setTimeUnit(TimeUnit timeUnit) {
//         this.timeUnit = timeUnit;
//     }
// 
//     public Long getTime() {
//         return time;
//     }
// 
//     public void setTime(Long time) {
//         this.time = time;
//     }
// 
//     public boolean isForceCacheNoNet() {
//         return forceCacheNoNet;
//     }
// 
//     public void setForceCacheNoNet(boolean forceCacheNoNet) {
//         this.forceCacheNoNet = forceCacheNoNet;
//     }
// }
// 
// Path: retrofitcachelib/src/main/java/ren/yale/android/retrofitcachelib/util/LogUtil.java
// public class LogUtil {
//    private static String TAG="retrofitcache";
//     private static final  boolean DEBUG = false;
//     public static void d(String text){
//             android.util.Log.d(TAG,text);
//     }
//     public static void w(String text){
//         android.util.Log.w(TAG,text);
//     }
// 
//     public static void l(Exception e){
//         if (DEBUG){
//            e.printStackTrace();
//         }else{
//             android.util.Log.w(TAG,e.toString());
//         }
//     }
// }


// Path: retrofitcachelib/src/main/java/ren/yale/android/retrofitcachelib/RetrofitCache.java
import android.content.Context;
import android.text.TextUtils;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.Vector;
import java.util.concurrent.TimeUnit;
import okhttp3.Request;
import ren.yale.android.retrofitcachelib.anno.Cache;
import ren.yale.android.retrofitcachelib.anno.Mock;
import ren.yale.android.retrofitcachelib.bean.CacheConfig;
import ren.yale.android.retrofitcachelib.util.LogUtil;
import retrofit2.Retrofit;

    }

    public Mock getMockObject(String url){
        for (Map serviceMethodCache:mVector) {

            for (Object entry:serviceMethodCache.keySet()){
                Object o = serviceMethodCache.get(entry);
                try {

                    if (mUrlAragsMap.containsKey(url)){
                        Object[] args = (Object[]) mUrlAragsMap.get(url);
                        String reqUrl =  buildRequestUrl(o,args);
                        if (reqUrl.equals(url)){
                            Method m = (Method) entry;
                            Mock mock =  m.getAnnotation(Mock.class);
                            if (mock!=null){
                                return  mock;
                            }
                            return null;
                        }
                    }
                } catch (Exception e) {
                    LogUtil.l(e);
                }
            }
        }

        return null;
    }
    public String getMockUrl(Mock mock){
        if (mock!=null){