org.logdoc.fairhttp.structs.websocket.extension.ExtensionRequestData Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fair-http-client Show documentation
Show all versions of fair-http-client Show documentation
LogDoc.org project http client
package org.logdoc.fairhttp.structs.websocket.extension;
import java.util.LinkedHashMap;
import java.util.Map;
public class ExtensionRequestData {
public static final String EMPTY_VALUE = "";
private final 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;
if (keyValue.length > 1) {
String tempValue = keyValue[1].trim();
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;
}
}