// Path: query/src/main/java/io/keen/client/java/exceptions/KeenQueryClientException.java
// public class KeenQueryClientException extends KeenException {
//     private static final long serialVersionUID = -8714276738565293346L;
// 
//     public KeenQueryClientException() {
//         super();
//     }
// 
//     public KeenQueryClientException(Throwable cause) {
//         super(cause);
//     }
// 
//     public KeenQueryClientException(String message) {
//         super(message);
//     }
// 
//     public KeenQueryClientException(String message, Throwable cause) {
//         super(message, cause);
//     }
// }
// 
// Path: core/src/main/java/io/keen/client/java/http/HttpMethods.java
// public final class HttpMethods {
//     private HttpMethods() {}
// 
//     public final static String GET = "GET";
//     public final static String POST = "POST";
//     public final static String PUT = "PUT";
//     public final static String DELETE = "DELETE";
// }


import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import io.keen.client.java.exceptions.KeenQueryClientException;
import io.keen.client.java.http.HttpMethods;
import java.io.IOException;
import java.net.URL;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import static java.util.Collections.emptyMap;
package io.keen.client.java;




abstract class CachedDatasetRequest extends PersistentAnalysis {

    private CachedDatasetRequest(String httpMethod, boolean needsMasterKey, String datasetName) {
        super(httpMethod, needsMasterKey, datasetName, null);
    }

    static KeenQueryRequest definitionRequest(String datasetName) {
        return new CachedDatasetRequest(HttpMethods.GET, false, datasetName) {

            @Override
// Path: query/src/main/java/io/keen/client/java/exceptions/KeenQueryClientException.java
// public class KeenQueryClientException extends KeenException {
//     private static final long serialVersionUID = -8714276738565293346L;
// 
//     public KeenQueryClientException() {
//         super();
//     }
// 
//     public KeenQueryClientException(Throwable cause) {
//         super(cause);
//     }
// 
//     public KeenQueryClientException(String message) {
//         super(message);
//     }
// 
//     public KeenQueryClientException(String message, Throwable cause) {
//         super(message, cause);
//     }
// }
// 
// Path: core/src/main/java/io/keen/client/java/http/HttpMethods.java
// public final class HttpMethods {
//     private HttpMethods() {}
// 
//     public final static String GET = "GET";
//     public final static String POST = "POST";
//     public final static String PUT = "PUT";
//     public final static String DELETE = "DELETE";
// }


// Path: query/src/main/java/io/keen/client/java/CachedDatasetRequest.java
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import io.keen.client.java.exceptions.KeenQueryClientException;
import io.keen.client.java.http.HttpMethods;
import java.io.IOException;
import java.net.URL;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import static java.util.Collections.emptyMap;

package io.keen.client.java;




abstract class CachedDatasetRequest extends PersistentAnalysis {

    private CachedDatasetRequest(String httpMethod, boolean needsMasterKey, String datasetName) {
        super(httpMethod, needsMasterKey, datasetName, null);
    }

    static KeenQueryRequest definitionRequest(String datasetName) {
        return new CachedDatasetRequest(HttpMethods.GET, false, datasetName) {

            @Override
            URL getRequestURL(RequestUrlBuilder urlBuilder, String projectId) throws KeenQueryClientException {