// Path: app/models/deadbolt/reports/ControllerReport.java
// public class ControllerReport
// {
//     public final String name;
// 
//     public final List<MethodReport> methodReports = new ArrayList<MethodReport>();
// 
//     public ControllerReport(String name)
//     {
//         this.name = name;
//     }
// 
//     public void addMethodReport(MethodReport methodReport)
//     {
//         methodReports.add(methodReport);
//     }
// }
// 
// Path: app/models/deadbolt/reports/MethodReport.java
// public class MethodReport
// {
//     public final String name;
// 
//     public final List<String> dynamicChecks = new ArrayList<String>();
// 
//     public final List<String> staticChecks = new ArrayList<String>();
// 
//     public MethodReport(String name)
//     {
//         this.name = name;
//     }
// 
//     public void addStaticCheck(String staticCheck)
//     {
//         staticChecks.add(staticCheck);
//     }
// 
//     public void addDynamicCheck(String dynamicCheck)
//     {
//         staticChecks.add(dynamicCheck);
//     }
// 
// }
// 
// Path: app/models/deadbolt/reports/ProjectReport.java
// public class ProjectReport
// {
//     public String projectName;
// 
//     public final List<ControllerReport> controllerReports = new ArrayList<ControllerReport>();
// 
//     public void addControllerReport(ControllerReport controllerReport)
//     {
//         controllerReports.add(controllerReport);
//     }
// }


import controllers.deadbolt.RestrictedResource;
import models.deadbolt.reports.ControllerReport;
import models.deadbolt.reports.MethodReport;
import models.deadbolt.reports.ProjectReport;
import play.Play;
import play.mvc.Before;
import play.mvc.Controller;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Arrays;
import java.util.List;
package controllers.deadbolt.reports;



/**
 * Provides a report on the restrictions imposed with Deadbolt.
 *
 * @author Steve Chaloner (steve@objectify.be)
 */
public class DeadboltReporter extends Controller
{
    @Before
    public static void disableInProduction()
    {
        if (Play.mode == Play.Mode.PROD)
        {
            error(404, "Page not found");
        }
    }

    public static void report()
    {
// Path: app/models/deadbolt/reports/ControllerReport.java
// public class ControllerReport
// {
//     public final String name;
// 
//     public final List<MethodReport> methodReports = new ArrayList<MethodReport>();
// 
//     public ControllerReport(String name)
//     {
//         this.name = name;
//     }
// 
//     public void addMethodReport(MethodReport methodReport)
//     {
//         methodReports.add(methodReport);
//     }
// }
// 
// Path: app/models/deadbolt/reports/MethodReport.java
// public class MethodReport
// {
//     public final String name;
// 
//     public final List<String> dynamicChecks = new ArrayList<String>();
// 
//     public final List<String> staticChecks = new ArrayList<String>();
// 
//     public MethodReport(String name)
//     {
//         this.name = name;
//     }
// 
//     public void addStaticCheck(String staticCheck)
//     {
//         staticChecks.add(staticCheck);
//     }
// 
//     public void addDynamicCheck(String dynamicCheck)
//     {
//         staticChecks.add(dynamicCheck);
//     }
// 
// }
// 
// Path: app/models/deadbolt/reports/ProjectReport.java
// public class ProjectReport
// {
//     public String projectName;
// 
//     public final List<ControllerReport> controllerReports = new ArrayList<ControllerReport>();
// 
//     public void addControllerReport(ControllerReport controllerReport)
//     {
//         controllerReports.add(controllerReport);
//     }
// }


// Path: app/controllers/deadbolt/reports/DeadboltReporter.java
import controllers.deadbolt.RestrictedResource;
import models.deadbolt.reports.ControllerReport;
import models.deadbolt.reports.MethodReport;
import models.deadbolt.reports.ProjectReport;
import play.Play;
import play.mvc.Before;
import play.mvc.Controller;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Arrays;
import java.util.List;

package controllers.deadbolt.reports;



/**
 * Provides a report on the restrictions imposed with Deadbolt.
 *
 * @author Steve Chaloner (steve@objectify.be)
 */
public class DeadboltReporter extends Controller
{
    @Before
    public static void disableInProduction()
    {
        if (Play.mode == Play.Mode.PROD)
        {
            error(404, "Page not found");
        }
    }

    public static void report()
    {
        ProjectReport projectReport = new ProjectReport();