/**
 * Copyright (C) 2014 android10.org. All rights reserved.
 * @author Fernando Cejas (the android10 coder)
 */
package com.fernandocejas.android10.gandalf;

import com.fernandocejas.android10.gandalf.aspect.TrackingAspect;
import com.fernandocejas.android10.gandalf.joinpoint.GandalfJoinPoint;
import com.fernandocejas.android10.gandalf.joinpoint.GandalfJoinPointStats;
import java.util.Map;
import org.aspectj.lang.Aspects;

/**
 * <br>Gandalf development and debug utilities.<br>
 * You can use this class to setup the library.<br>
 * It also contains other utility methods to print stats, etc.<br>
 *
 * <br>This library will always run in DEBUG MODE (development mode), this means all the information
 * or stats will be printed only when you are using the DEBUG TYPE of your build, so it is IMPORTANT
 * that you use 'installDebug' gradle task to see the results, otherwise you will not see anything.<br>
 *
 * <br>REMEMBER: it is not necessary to remove Gandalf code or annotations, even if you are
 * building a release version of the app, cause nothing will be shown in production or release mode.
 */
public final class Gandalf {

  private static boolean inspectMode = true;

  private Gandalf() {}

  public static void enableInspectionMode() {
    inspectMode = true;
  }

  public static void disableInspectionMode() {
    inspectMode = false;
  }

  /**
   * Print stats collected by annotation
   * {@link com.fernandocejas.android10.gandalf.annotation.Trackable}.<br>
   *
   * This will be shown in the logcat only in DEBUG mode.
   */
  public static void printStats() {
    if (inspectMode) {
      //TODO: print gandalf collected stats
    }
    //TODO: print collected stats
    Map<GandalfJoinPoint, GandalfJoinPointStats> statsMap =  Aspects.aspectOf(TrackingAspect.class).getStatsMap();
  }
}

@@ -1212,80 +1212,485 @@
 %0A%0A  
-public static void enableInspectionMode() %7B%0A    inspectMode = true;%0A  %7D%0A
+/**%0A   * Enable Gandalf to collect stats automatically.%3Cbr%3E%0A   * To see the stats, at any point, you just call%0A   * %7B@link com.fernandocejas.android10.gandalf.Gandalf#printStats()%7D, thus, the information will be%0A   * printed in the logcat only in debug mode.%0A   */%0A  public static void enableInspectionMode() %7B%0A    inspectMode = true;%0A  %7D%0A%0A  /**%0A   * Disable Gandalf to collect stats automatically.%3Cbr%3E%0A   * To enable this flag again call %7B@link #enableInspectionMode()%7D.%0A   */
 %0A  p
@@ -1776,24 +1776,29 @@
 %0A   * Print 
+both 
 stats collec
@@ -1884,16 +1884,121 @@
 ackable%7D
+ and Gandalf collected%0A   * stats if Inspection Mode is enable via method %7B@link #enableInspectionMode()%7D
 .%3Cbr%3E%0A  
@@ -2132,40 +2132,30 @@
     
- //TODO:
  print
- g
+G
 andalf
- c
+C
 ollected
  sta
@@ -2154,21 +2154,108 @@
 cted
- s
+S
 tats
+();
 %0A    %7D%0A
+    printJoinPointStats();%0A  %7D%0A%0A  private static void printGandalfCollectedStats() %7B%0A
     
@@ -2264,16 +2264,23 @@
 TODO
-:
  print 
+gandalf 
 coll
@@ -2290,16 +2290,68 @@
 ed stats
+.%0A  %7D%0A%0A  private static void printJoinPointStats() %7B
 %0A    Map

Add documentation for inspection mode in Gandalf main class.