// Path: adal-utils/src/main/java/com/massivedisaster/adal/utils/LogUtils.java
// public final class LogUtils {
// 
//     /**
//      * Private constructor to avoid user implement as a single instance instead of a Singleton
//      */
//     private LogUtils() {
// 
//     }
// 
//     /**
//      * Logs a error exception
//      *
//      * @param enclosingClass the caller class
//      * @param exception      the exception
//      */
//     public static void logErrorException(@NonNull Class<?> enclosingClass, @NonNull Throwable exception) {
//         String message = exception.getMessage() == null ? "Exception error." : exception.getMessage();
//         Log.e(enclosingClass.getName(), message, exception);
//     }
// 
// }


import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.support.annotation.NonNull;
import android.support.v4.content.LocalBroadcastManager;
import com.massivedisaster.adal.utils.LogUtils;
import java.io.Serializable;
import java.lang.annotation.Annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
        }

        return this;
    }

    /**
     * Get a broadcast receiver for the <var>method</var>
     *
     * @param method the method to be analized.
     * @return s
     */
    @NonNull
    private BroadcastReceiver getBroadcastReceiver(final Method method) {
        return new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                try {
                    if (intent.hasExtra(ARGUMENT_DATA)) {
                        Object object = intent.getSerializableExtra(ARGUMENT_DATA);
                        method.setAccessible(true);
                        method.invoke(mObject, object);
                        method.setAccessible(false);
                    } else {
                        method.setAccessible(true);
                        method.invoke(mObject);
                        method.setAccessible(false);
                    }
                } catch (IllegalAccessException e) {
                    LogUtils.logErrorException(BangBus.class, e);
                } catch (InvocationTargetException e) {
// Path: adal-utils/src/main/java/com/massivedisaster/adal/utils/LogUtils.java
// public final class LogUtils {
// 
//     /**
//      * Private constructor to avoid user implement as a single instance instead of a Singleton
//      */
//     private LogUtils() {
// 
//     }
// 
//     /**
//      * Logs a error exception
//      *
//      * @param enclosingClass the caller class
//      * @param exception      the exception
//      */
//     public static void logErrorException(@NonNull Class<?> enclosingClass, @NonNull Throwable exception) {
//         String message = exception.getMessage() == null ? "Exception error." : exception.getMessage();
//         Log.e(enclosingClass.getName(), message, exception);
//     }
// 
// }


// Path: adal-bus/src/main/java/com/massivedisaster/adal/bus/BangBus.java
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.support.annotation.NonNull;
import android.support.v4.content.LocalBroadcastManager;
import com.massivedisaster.adal.utils.LogUtils;
import java.io.Serializable;
import java.lang.annotation.Annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

        }

        return this;
    }

    /**
     * Get a broadcast receiver for the <var>method</var>
     *
     * @param method the method to be analized.
     * @return s
     */
    @NonNull
    private BroadcastReceiver getBroadcastReceiver(final Method method) {
        return new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                try {
                    if (intent.hasExtra(ARGUMENT_DATA)) {
                        Object object = intent.getSerializableExtra(ARGUMENT_DATA);
                        method.setAccessible(true);
                        method.invoke(mObject, object);
                        method.setAccessible(false);
                    } else {
                        method.setAccessible(true);
                        method.invoke(mObject);
                        method.setAccessible(false);
                    }
                } catch (IllegalAccessException e) {
                    LogUtils.logErrorException(BangBus.class, e);
                } catch (InvocationTargetException e) {
                    LogUtils.logErrorException(BangBus.class, e);