package com.doumee.lib_coremodel.config; 
 | 
  
 | 
import android.content.Context; 
 | 
  
 | 
import androidx.room.RoomDatabase; 
 | 
  
 | 
import com.doumee.lib_coremodel.di.module.ConfigModule; 
 | 
import com.doumee.lib_coremodel.http.InterceptorConfig; 
 | 
import com.google.gson.Gson; 
 | 
import com.google.gson.GsonBuilder; 
 | 
  
 | 
import okhttp3.OkHttpClient; 
 | 
import retrofit2.Retrofit; 
 | 
  
 | 
  
 | 
/** 
 | 
 * 为框架提供一些配置参数入口 
 | 
 * @see <a href="https://github.com/bumptech/glide/blob/f7d860412f061e059aa84a42f2563a01ac8c303b/library/src/main/java/com/bumptech/glide/module/AppliesOptions.java">Glide</a> 
 | 
 * @author <a href="mailto:jenly1314@gmail.com">Jenly</a> 
 | 
 */ 
 | 
public interface AppliesOptions { 
 | 
  
 | 
    /** 
 | 
     * 为框架提供一些配置参数入口 
 | 
     * @param context 
 | 
     * @param builder 
 | 
     */ 
 | 
    void applyOptions(Context context, ConfigModule.Builder builder); 
 | 
  
 | 
    /** 
 | 
     * 为框架中的{@link Retrofit}提供配置参数入口 
 | 
     */ 
 | 
    interface RetrofitOptions{ 
 | 
        void applyOptions(Retrofit.Builder builder); 
 | 
    } 
 | 
    /** 
 | 
     * 为框架中的{@link OkHttpClient}提供配置参数入口 
 | 
     */ 
 | 
    interface OkHttpClientOptions{ 
 | 
        void applyOptions(OkHttpClient.Builder builder); 
 | 
    } 
 | 
    /** 
 | 
     * 为框架中的{@link Gson}提供配置参数入口 
 | 
     */ 
 | 
    interface GsonOptions{ 
 | 
        void applyOptions(GsonBuilder builder); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 为框架中的{@link InterceptorConfig}提供配置参数入口 
 | 
     */ 
 | 
    interface InterceptorConfigOptions{ 
 | 
        void applyOptions(InterceptorConfig.Builder builder); 
 | 
    } 
 | 
    /** 
 | 
     * 为框架中的{@link Gson}提供配置参数入口 
 | 
     */ 
 | 
    interface RoomDatabaseOptions<T extends RoomDatabase>{ 
 | 
        void applyOptions(RoomDatabase.Builder<T> builder); 
 | 
    } 
 | 
  
 | 
} 
 |