All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.projectodd.sockjs.SockJsRequest Maven / Gradle / Ivy

There is a newer version: 1.0.2-RELEASE
Show newest version
/**
 * Copyright (C) 2014 Red Hat, Inc, and individual contributors.
 */

package org.projectodd.sockjs;

import java.util.HashMap;
import java.util.Map;


/**
 * In addition to the abstract methods, implementations are expected to call
 * onDataHandler.handle and onEndHandler.handle when there is request data
 * available and when the request has ended, respectively.
 */
public abstract class SockJsRequest {

    public abstract String getMethod();

    public abstract String getUrl();

    public abstract String getPath();

    public abstract String getPrefix();

    public abstract String getRemoteAddr();

    public abstract int getRemotePort();

    public abstract String getHeader(String name);

    public abstract String getContentType();

    public abstract String getCookie(String name);

    public abstract String getQueryParameter(String name);

    public void addMatch(String key, String value) {
        matches.put(key, value);
    }

    public String server() {
        return matches.get("server");
    }

    public String session() {
        return matches.get("session");
    }

    public void onData(OnDataHandler onDataHandler) {
        this.onDataHandler = onDataHandler;
    }

    public void onEnd(OnEndHandler onEndHandler) {
        this.onEndHandler = onEndHandler;
    }

    private Map matches = new HashMap<>();
    public DispatchFunction lastFunction;
    public NextFilter nextFilter;
    protected OnDataHandler onDataHandler;
    protected OnEndHandler onEndHandler;


    public static interface OnDataHandler {
        public void handle(byte[] bytes) throws SockJsException;
    }

    public static interface OnEndHandler {
        public void handle() throws SockJsException;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy