// Path: garum/src/main/java/com/os/operando/garum/utils/Cache.java
// public final class Cache {
// 
//     private static Context context;
//     private static ModelInfo modelInfo;
//     private static boolean isInitialized = false;
// 
//     private Cache() {
//     }
// 
//     public static synchronized void initialize(Configuration configuration) {
//         if (isInitialized) {
//             GarumLog.v("Garum already initialized.");
//             return;
//         }
//         context = configuration.getContext();
//         try {
//             modelInfo = new ModelInfo(configuration);
//         } catch (IOException e) {
//             e.printStackTrace();
//         }
//         isInitialized = true;
//         GarumLog.v("Garum initialized successfully.");
//     }
// 
// 
//     public static synchronized void dispose() {
//         modelInfo = null;
//         isInitialized = false;
//         GarumLog.v("Garum disposed. Call initialize to use library.");
//     }
// 
//     public static boolean isInitialized() {
//         return isInitialized;
//     }
// 
//     public static Context getContext() {
//         return context;
//     }
// 
//     public static synchronized Collection<PrefInfo> getPrefInfos() {
//         return modelInfo.getPrefInfos();
//     }
// 
//     public static synchronized PrefInfo getPrefInfo(Class<? extends PrefModel> type) {
//         return modelInfo.getPrefInfo(type);
//     }
// 
//     public static synchronized String getPrefName(Class<? extends PrefModel> type) {
//         return modelInfo.getPrefInfo(type).getPrefName();
//     }
// 
//     public static synchronized TypeSerializer getParserForType(Class<?> type) {
//         return modelInfo.getTypeSerializer(type);
//     }
// }
// 
// Path: garum/src/main/java/com/os/operando/garum/utils/GarumLog.java
// public final class GarumLog {
// 
//     private static final String TGA = Garum.class.getSimpleName();
//     private static boolean enabled = false;
// 
//     private GarumLog() {
//     }
// 
//     public static boolean isEnabled() {
//         return enabled;
//     }
// 
//     public static void setEnabled(boolean enabled) {
//         GarumLog.enabled = enabled;
//     }
// 
//     public static boolean isLoggingEnabled() {
//         return enabled;
//     }
// 
//     public static int v(String msg) {
//         return enabled ? Log.v(TGA, msg) : 0;
//     }
// 
//     public static int v(String tag, String msg) {
//         return enabled ? android.util.Log.v(tag, msg) : 0;
//     }
// 
//     public static int v(String msg, Throwable tr) {
//         return enabled ? Log.v(TGA, msg, tr) : 0;
//     }
// 
//     public static int v(String tag, String msg, Throwable tr) {
//         return enabled ? android.util.Log.v(tag, msg, tr) : 0;
//     }
// 
//     public static int d(String msg) {
//         return enabled ? android.util.Log.d(TGA, msg) : 0;
//     }
// 
//     public static int d(String tag, String msg) {
//         return enabled ? android.util.Log.d(tag, msg) : 0;
//     }
// 
//     public static int d(String msg, Throwable tr) {
//         return enabled ? android.util.Log.d(TGA, msg, tr) : 0;
//     }
// 
//     public static int d(String tag, String msg, Throwable tr) {
//         return enabled ? android.util.Log.d(tag, msg, tr) : 0;
//     }
// 
//     public static int i(String msg) {
//         return enabled ? android.util.Log.i(TGA, msg) : 0;
//     }
// 
//     public static int i(String tag, String msg) {
//         return enabled ? android.util.Log.i(tag, msg) : 0;
//     }
// 
//     public static int i(String msg, Throwable tr) {
//         return enabled ? android.util.Log.i(TGA, msg, tr) : 0;
//     }
// 
//     public static int i(String tag, String msg, Throwable tr) {
//         return enabled ? android.util.Log.i(tag, msg, tr) : 0;
//     }
// 
//     public static int w(String msg) {
//         return enabled ? android.util.Log.w(TGA, msg) : 0;
//     }
// 
//     public static int w(String tag, String msg) {
//         return enabled ? android.util.Log.w(tag, msg) : 0;
//     }
// 
//     public static int w(String msg, Throwable tr) {
//         return enabled ? android.util.Log.w(TGA, msg, tr) : 0;
//     }
// 
//     public static int w(String tag, String msg, Throwable tr) {
//         return enabled ? android.util.Log.w(tag, msg, tr) : 0;
//     }
// 
//     public static int e(String msg) {
//         return enabled ? android.util.Log.e(TGA, msg) : 0;
//     }
// 
//     public static int e(String tag, String msg) {
//         return enabled ? android.util.Log.e(tag, msg) : 0;
//     }
// 
//     public static int e(String msg, Throwable tr) {
//         return enabled ? android.util.Log.e(TGA, msg, tr) : 0;
//     }
// 
//     public static int e(String tag, String msg, Throwable tr) {
//         return enabled ? android.util.Log.e(tag, msg, tr) : 0;
//     }
// 
//     public static int t(String msg, Object... args) {
//         return enabled ? android.util.Log.v("test", String.format(msg, args)) : 0;
//     }
// }


import com.os.operando.garum.utils.Cache;
import com.os.operando.garum.utils.GarumLog;
package com.os.operando.garum;


public class Garum {

    public static void initialize(Configuration configuration) {
        initialize(configuration, false);
    }

    public static void initialize(Configuration configuration, boolean loggingEnabled) {
        setLoggingEnabled(loggingEnabled);
        Cache.initialize(configuration);
    }

    public static void setLoggingEnabled(boolean enabled) {
// Path: garum/src/main/java/com/os/operando/garum/utils/Cache.java
// public final class Cache {
// 
//     private static Context context;
//     private static ModelInfo modelInfo;
//     private static boolean isInitialized = false;
// 
//     private Cache() {
//     }
// 
//     public static synchronized void initialize(Configuration configuration) {
//         if (isInitialized) {
//             GarumLog.v("Garum already initialized.");
//             return;
//         }
//         context = configuration.getContext();
//         try {
//             modelInfo = new ModelInfo(configuration);
//         } catch (IOException e) {
//             e.printStackTrace();
//         }
//         isInitialized = true;
//         GarumLog.v("Garum initialized successfully.");
//     }
// 
// 
//     public static synchronized void dispose() {
//         modelInfo = null;
//         isInitialized = false;
//         GarumLog.v("Garum disposed. Call initialize to use library.");
//     }
// 
//     public static boolean isInitialized() {
//         return isInitialized;
//     }
// 
//     public static Context getContext() {
//         return context;
//     }
// 
//     public static synchronized Collection<PrefInfo> getPrefInfos() {
//         return modelInfo.getPrefInfos();
//     }
// 
//     public static synchronized PrefInfo getPrefInfo(Class<? extends PrefModel> type) {
//         return modelInfo.getPrefInfo(type);
//     }
// 
//     public static synchronized String getPrefName(Class<? extends PrefModel> type) {
//         return modelInfo.getPrefInfo(type).getPrefName();
//     }
// 
//     public static synchronized TypeSerializer getParserForType(Class<?> type) {
//         return modelInfo.getTypeSerializer(type);
//     }
// }
// 
// Path: garum/src/main/java/com/os/operando/garum/utils/GarumLog.java
// public final class GarumLog {
// 
//     private static final String TGA = Garum.class.getSimpleName();
//     private static boolean enabled = false;
// 
//     private GarumLog() {
//     }
// 
//     public static boolean isEnabled() {
//         return enabled;
//     }
// 
//     public static void setEnabled(boolean enabled) {
//         GarumLog.enabled = enabled;
//     }
// 
//     public static boolean isLoggingEnabled() {
//         return enabled;
//     }
// 
//     public static int v(String msg) {
//         return enabled ? Log.v(TGA, msg) : 0;
//     }
// 
//     public static int v(String tag, String msg) {
//         return enabled ? android.util.Log.v(tag, msg) : 0;
//     }
// 
//     public static int v(String msg, Throwable tr) {
//         return enabled ? Log.v(TGA, msg, tr) : 0;
//     }
// 
//     public static int v(String tag, String msg, Throwable tr) {
//         return enabled ? android.util.Log.v(tag, msg, tr) : 0;
//     }
// 
//     public static int d(String msg) {
//         return enabled ? android.util.Log.d(TGA, msg) : 0;
//     }
// 
//     public static int d(String tag, String msg) {
//         return enabled ? android.util.Log.d(tag, msg) : 0;
//     }
// 
//     public static int d(String msg, Throwable tr) {
//         return enabled ? android.util.Log.d(TGA, msg, tr) : 0;
//     }
// 
//     public static int d(String tag, String msg, Throwable tr) {
//         return enabled ? android.util.Log.d(tag, msg, tr) : 0;
//     }
// 
//     public static int i(String msg) {
//         return enabled ? android.util.Log.i(TGA, msg) : 0;
//     }
// 
//     public static int i(String tag, String msg) {
//         return enabled ? android.util.Log.i(tag, msg) : 0;
//     }
// 
//     public static int i(String msg, Throwable tr) {
//         return enabled ? android.util.Log.i(TGA, msg, tr) : 0;
//     }
// 
//     public static int i(String tag, String msg, Throwable tr) {
//         return enabled ? android.util.Log.i(tag, msg, tr) : 0;
//     }
// 
//     public static int w(String msg) {
//         return enabled ? android.util.Log.w(TGA, msg) : 0;
//     }
// 
//     public static int w(String tag, String msg) {
//         return enabled ? android.util.Log.w(tag, msg) : 0;
//     }
// 
//     public static int w(String msg, Throwable tr) {
//         return enabled ? android.util.Log.w(TGA, msg, tr) : 0;
//     }
// 
//     public static int w(String tag, String msg, Throwable tr) {
//         return enabled ? android.util.Log.w(tag, msg, tr) : 0;
//     }
// 
//     public static int e(String msg) {
//         return enabled ? android.util.Log.e(TGA, msg) : 0;
//     }
// 
//     public static int e(String tag, String msg) {
//         return enabled ? android.util.Log.e(tag, msg) : 0;
//     }
// 
//     public static int e(String msg, Throwable tr) {
//         return enabled ? android.util.Log.e(TGA, msg, tr) : 0;
//     }
// 
//     public static int e(String tag, String msg, Throwable tr) {
//         return enabled ? android.util.Log.e(tag, msg, tr) : 0;
//     }
// 
//     public static int t(String msg, Object... args) {
//         return enabled ? android.util.Log.v("test", String.format(msg, args)) : 0;
//     }
// }


// Path: garum/src/main/java/com/os/operando/garum/Garum.java
import com.os.operando.garum.utils.Cache;
import com.os.operando.garum.utils.GarumLog;

package com.os.operando.garum;


public class Garum {

    public static void initialize(Configuration configuration) {
        initialize(configuration, false);
    }

    public static void initialize(Configuration configuration, boolean loggingEnabled) {
        setLoggingEnabled(loggingEnabled);
        Cache.initialize(configuration);
    }

    public static void setLoggingEnabled(boolean enabled) {
        GarumLog.setEnabled(enabled);