// Path: driver/src/com/leandog/brazenhead/commands/CommandRunner.java
// public class CommandRunner {
// 
//     private Object theLastResult;
// 
//     Map<String, Object> variables = new HashMap<String, Object>();
// 
//     public void execute(final Command... commands) throws Exception {
//         clearLastRun();
// 
//         for (final Command command : commands) {
//             theLastResult = findMethod(command).invoke(theTargetFor(command), theArguments(command));
// 
//             if (command.hasVariable()) {
//                 storeVariable(command);
//             }
//         }
//     }
// 
//     public Object theLastResult() {
//         return theLastResult;
//     }
// 
//     private Method findMethod(final Command command) throws CommandNotFoundException {
//         return new MethodFinder().find(command.getName()).on(theTargetFor(command).getClass()).with(argumentTypesFor(command));
//     }
// 
//     private void clearLastRun() {
//         theLastResult = null;
//         variables.clear();
//     }
// 
//     private Object theTargetFor(final Command command) {
//         switch (command.getTarget()) {
//         case Brazenhead:
//             return TestRunInformation.getBrazenhead();
//         case Robotium:
//             return TestRunInformation.getSolo();
//         default:
//             return (theLastResult == null) ? TestRunInformation.getSolo() : theLastResult;
//         }
// 
//     }
// 
//     private static Map<Class<?>, Class<?>> primitiveMap = new HashMap<Class<?>, Class<?>>();
//     static {
//         primitiveMap.put(Integer.class, int.class);
//         primitiveMap.put(Boolean.class, boolean.class);
//         primitiveMap.put(Float.class, float.class);
//     }
// 
//     private Class<? extends Object> typeFor(final Object argument) {
//         Class<?> argumentType = argument.getClass();
//         Class<?> primitiveType = primitiveMap.get(argumentType);
//         return (primitiveType == null) ? argumentType : primitiveType;
//     }
// 
//     private Class<?>[] argumentTypesFor(final Command command) {
//         Class<?>[] types = new Class<?>[theArguments(command).length];
// 
//         int index = 0;
//         for (final Object argument : theArguments(command)) {
//             types[index++] = typeFor(argument);
//         }
// 
//         return types;
//     }
// 
//     private Object[] theArguments(final Command command) {
//         List<Object> arguments = Arrays.asList(command.getArguments());
//         substituteVariables(arguments);
//         return arguments.toArray();
//     }
// 
//     private void substituteVariables(List<Object> arguments) {
//         for (final Entry<String, Object> variable : variables.entrySet()) {
//             Collections.replaceAll(arguments, variable.getKey(), variable.getValue());
//         }
//     }
// 
//     private void storeVariable(final Command command) {
//         variables.put(command.getVariable(), theLastResult);
//     }
// 
// }
// 
// Path: driver/src/com/leandog/brazenhead/server/JettyServer.java
// public class JettyServer {
//     
//     final private Server server;
// 
//     public JettyServer() {
//         this.server = new Server();
//     }
// 
//     public void setHandler(AbstractHandler handler) {
//         server.setHandler(handler);
//     }
// 
//     public void addConnector(Connector createConnector) {
//         server.addConnector(createConnector);
//     }
// 
//     public void start() throws Exception {
//         server.start();
//     }
// 
//     public void join() throws InterruptedException {
//         server.join();
//     }
// 
//     public void stop() throws Exception {
//         server.stop();
//     }
// 
// }


import org.mortbay.jetty.Connector;
import org.mortbay.jetty.bio.SocketConnector;
import android.util.Log;
import com.leandog.brazenhead.commands.CommandRunner;
import com.leandog.brazenhead.server.JettyServer;
package com.leandog.brazenhead;




public class BrazenheadServer {
    JettyServer server;

    public BrazenheadServer(final JettyServer server) {
        this.server = server;
    }

    public void start() throws Exception {
// Path: driver/src/com/leandog/brazenhead/commands/CommandRunner.java
// public class CommandRunner {
// 
//     private Object theLastResult;
// 
//     Map<String, Object> variables = new HashMap<String, Object>();
// 
//     public void execute(final Command... commands) throws Exception {
//         clearLastRun();
// 
//         for (final Command command : commands) {
//             theLastResult = findMethod(command).invoke(theTargetFor(command), theArguments(command));
// 
//             if (command.hasVariable()) {
//                 storeVariable(command);
//             }
//         }
//     }
// 
//     public Object theLastResult() {
//         return theLastResult;
//     }
// 
//     private Method findMethod(final Command command) throws CommandNotFoundException {
//         return new MethodFinder().find(command.getName()).on(theTargetFor(command).getClass()).with(argumentTypesFor(command));
//     }
// 
//     private void clearLastRun() {
//         theLastResult = null;
//         variables.clear();
//     }
// 
//     private Object theTargetFor(final Command command) {
//         switch (command.getTarget()) {
//         case Brazenhead:
//             return TestRunInformation.getBrazenhead();
//         case Robotium:
//             return TestRunInformation.getSolo();
//         default:
//             return (theLastResult == null) ? TestRunInformation.getSolo() : theLastResult;
//         }
// 
//     }
// 
//     private static Map<Class<?>, Class<?>> primitiveMap = new HashMap<Class<?>, Class<?>>();
//     static {
//         primitiveMap.put(Integer.class, int.class);
//         primitiveMap.put(Boolean.class, boolean.class);
//         primitiveMap.put(Float.class, float.class);
//     }
// 
//     private Class<? extends Object> typeFor(final Object argument) {
//         Class<?> argumentType = argument.getClass();
//         Class<?> primitiveType = primitiveMap.get(argumentType);
//         return (primitiveType == null) ? argumentType : primitiveType;
//     }
// 
//     private Class<?>[] argumentTypesFor(final Command command) {
//         Class<?>[] types = new Class<?>[theArguments(command).length];
// 
//         int index = 0;
//         for (final Object argument : theArguments(command)) {
//             types[index++] = typeFor(argument);
//         }
// 
//         return types;
//     }
// 
//     private Object[] theArguments(final Command command) {
//         List<Object> arguments = Arrays.asList(command.getArguments());
//         substituteVariables(arguments);
//         return arguments.toArray();
//     }
// 
//     private void substituteVariables(List<Object> arguments) {
//         for (final Entry<String, Object> variable : variables.entrySet()) {
//             Collections.replaceAll(arguments, variable.getKey(), variable.getValue());
//         }
//     }
// 
//     private void storeVariable(final Command command) {
//         variables.put(command.getVariable(), theLastResult);
//     }
// 
// }
// 
// Path: driver/src/com/leandog/brazenhead/server/JettyServer.java
// public class JettyServer {
//     
//     final private Server server;
// 
//     public JettyServer() {
//         this.server = new Server();
//     }
// 
//     public void setHandler(AbstractHandler handler) {
//         server.setHandler(handler);
//     }
// 
//     public void addConnector(Connector createConnector) {
//         server.addConnector(createConnector);
//     }
// 
//     public void start() throws Exception {
//         server.start();
//     }
// 
//     public void join() throws InterruptedException {
//         server.join();
//     }
// 
//     public void stop() throws Exception {
//         server.stop();
//     }
// 
// }


// Path: driver/src/com/leandog/brazenhead/BrazenheadServer.java
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.bio.SocketConnector;
import android.util.Log;
import com.leandog.brazenhead.commands.CommandRunner;
import com.leandog.brazenhead.server.JettyServer;

package com.leandog.brazenhead;




public class BrazenheadServer {
    JettyServer server;

    public BrazenheadServer(final JettyServer server) {
        this.server = server;
    }

    public void start() throws Exception {
        server.setHandler(new BrazenheadRequestHandler(this, new CommandRunner()));