org.java_websocket.extensions.ExtensionRequestData Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of Java-WebSocket Show documentation
Show all versions of Java-WebSocket Show documentation
A barebones WebSocket client and server implementation written 100% in Java
package org.java_websocket.extensions;
import java.util.LinkedHashMap;
import java.util.Map;
public class ExtensionRequestData {
public static String EMPTY_VALUE = "";
private Map extensionParameters;
private String extensionName;
private ExtensionRequestData() {
extensionParameters = new LinkedHashMap();
}
public static ExtensionRequestData parseExtensionRequest(String extensionRequest) {
ExtensionRequestData extensionData = new ExtensionRequestData();
String[] parts = extensionRequest.split(";");
extensionData.extensionName = parts[0].trim();
for(int i = 1; i < parts.length; i++) {
String[] keyValue = parts[i].split("=");
String value = EMPTY_VALUE;
// Some parameters don't take a value. For those that do, parse the value.
if(keyValue.length > 1) {
String tempValue = keyValue[1].trim();
// If the value is wrapped in quotes, just get the data between them.
if((tempValue.startsWith("\"") && tempValue.endsWith("\""))
|| (tempValue.startsWith("'") && tempValue.endsWith("'"))
&& tempValue.length() > 2)
tempValue = tempValue.substring(1, tempValue.length() - 1);
value = tempValue;
}
extensionData.extensionParameters.put(keyValue[0].trim(), value);
}
return extensionData;
}
public String getExtensionName() {
return extensionName;
}
public Map getExtensionParameters() {
return extensionParameters;
}
}