// Path: src/main/java/spark/routematch/RouteMatch.java
// public class RouteMatch {
// 
//     private Object target;
//     private String matchUri;
//     private String requestURI;
//     private String acceptType;
//     private HttpMethod httpMethod;
// 
//     public RouteMatch(Object target, String matchUri, String requestUri, String acceptType) {
//         this(target, matchUri, requestUri, acceptType, null);
//      }
// 
//     public RouteMatch(Object target, String matchUri, String requestUri, String acceptType, HttpMethod httpMethod) {
//         super();
//         this.target = target;
//         this.matchUri = matchUri;
//         this.requestURI = requestUri;
//         this.acceptType = acceptType;
//         this.httpMethod = httpMethod;
//     }
// 
//     /**
//      * @return the accept type
//      */
//     public HttpMethod getHttpMethod() {
//         return httpMethod;
//     }
// 
//     /**
//      * @return the accept type
//      */
//     public String getAcceptType() {
//         return acceptType;
//     }
// 
//     /**
//      * @return the target
//      */
//     public Object getTarget() {
//         return target;
//     }
// 
// 
//     /**
//      * @return the matchUri
//      */
//     public String getMatchUri() {
//         return matchUri;
//     }
// 
// 
//     /**
//      * @return the requestUri
//      */
//     public String getRequestURI() {
//         return requestURI;
//     }
// 
// 
// }
// 
// Path: src/main/java/spark/Service.java
// public static Service ignite() {
//     return new Service();
// }


import spark.routematch.RouteMatch;
import java.util.List;
import java.util.function.Consumer;
import static spark.Service.ignite;
/*
 * Copyright 2011- Per Wendel
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package spark;




/**
 * The main building block of a Spark application is a set of routes. A route is
 * made up of three simple pieces:
 * <ul>
 * <li>A verb (get, post, put, delete, head, trace, connect, options)</li>
 * <li>A path (/hello, /users/:name)</li>
 * <li>A callback (request, response)</li>
 * </ul>
 * Example:
 * get("/hello", (request, response) -&#62; {
 * return "Hello World!";
 * });
 * The public methods and fields in this class should be statically imported for the semantic to make sense.
 * Ie. one should use:
 * 'post("/books")' without the prefix 'Spark.'
 *
 * @author Per Wendel
 */
public class Spark {

    // Hide constructor
    protected Spark() {
    }

    /**
     * Initializes singleton.
     */
    private static class SingletonHolder {
// Path: src/main/java/spark/routematch/RouteMatch.java
// public class RouteMatch {
// 
//     private Object target;
//     private String matchUri;
//     private String requestURI;
//     private String acceptType;
//     private HttpMethod httpMethod;
// 
//     public RouteMatch(Object target, String matchUri, String requestUri, String acceptType) {
//         this(target, matchUri, requestUri, acceptType, null);
//      }
// 
//     public RouteMatch(Object target, String matchUri, String requestUri, String acceptType, HttpMethod httpMethod) {
//         super();
//         this.target = target;
//         this.matchUri = matchUri;
//         this.requestURI = requestUri;
//         this.acceptType = acceptType;
//         this.httpMethod = httpMethod;
//     }
// 
//     /**
//      * @return the accept type
//      */
//     public HttpMethod getHttpMethod() {
//         return httpMethod;
//     }
// 
//     /**
//      * @return the accept type
//      */
//     public String getAcceptType() {
//         return acceptType;
//     }
// 
//     /**
//      * @return the target
//      */
//     public Object getTarget() {
//         return target;
//     }
// 
// 
//     /**
//      * @return the matchUri
//      */
//     public String getMatchUri() {
//         return matchUri;
//     }
// 
// 
//     /**
//      * @return the requestUri
//      */
//     public String getRequestURI() {
//         return requestURI;
//     }
// 
// 
// }
// 
// Path: src/main/java/spark/Service.java
// public static Service ignite() {
//     return new Service();
// }


// Path: src/main/java/spark/Spark.java
import spark.routematch.RouteMatch;
import java.util.List;
import java.util.function.Consumer;
import static spark.Service.ignite;

/*
 * Copyright 2011- Per Wendel
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package spark;




/**
 * The main building block of a Spark application is a set of routes. A route is
 * made up of three simple pieces:
 * <ul>
 * <li>A verb (get, post, put, delete, head, trace, connect, options)</li>
 * <li>A path (/hello, /users/:name)</li>
 * <li>A callback (request, response)</li>
 * </ul>
 * Example:
 * get("/hello", (request, response) -&#62; {
 * return "Hello World!";
 * });
 * The public methods and fields in this class should be statically imported for the semantic to make sense.
 * Ie. one should use:
 * 'post("/books")' without the prefix 'Spark.'
 *
 * @author Per Wendel
 */
public class Spark {

    // Hide constructor
    protected Spark() {
    }

    /**
     * Initializes singleton.
     */
    private static class SingletonHolder {
        private static final Service INSTANCE = ignite();