package de.uhilger.avdirektor.handler;
|
|
import com.sun.net.httpserver.HttpExchange;
|
import com.sun.net.httpserver.HttpHandler;
|
import java.io.IOException;
|
import java.io.OutputStream;
|
import java.util.Map;
|
import java.util.logging.Level;
|
import java.util.logging.Logger;
|
|
/**
|
*
|
* @author ulrich
|
*/
|
public class CmdHandler extends OMXPlayer implements HttpHandler {
|
|
private static final Logger logger = Logger.getLogger(CmdHandler.class.getName());
|
|
protected String cmd;
|
protected Map map;
|
|
public CmdHandler(String cmd) {
|
this.cmd = cmd;
|
}
|
|
@Override
|
public void handle(HttpExchange t) throws IOException {
|
logger.log(Level.FINE, "RequestURI: {0}", t.getRequestURI().toString());
|
StringBuilder params = buildParams(t);
|
String antwort = process(t, params.toString());
|
sendResponse(t, cmd, antwort);
|
}
|
|
protected String process(HttpExchange t, String params) {
|
String antwort = this.kommando(cmd);
|
logger.log(Level.FINE, antwort);
|
return antwort;
|
}
|
|
protected StringBuilder buildParams(HttpExchange t) {
|
map = getQueryMap(t);
|
StringBuilder params = new StringBuilder();
|
return params;
|
}
|
|
protected void sendResponse(HttpExchange t, String cmd, String antwort) throws IOException {
|
String response = getResponseString(map, cmd, antwort);
|
t.sendResponseHeaders(200, response.length());
|
OutputStream os = t.getResponseBody();
|
os.write(response.getBytes());
|
os.close();
|
}
|
|
public void setCmd(String cmd) {
|
this.cmd = cmd;
|
}
|
|
public String getCmd(String cmd) {
|
return this.cmd;
|
}
|
|
}
|