
com.daioware.net.http.items.QueryParameterList Maven / Gradle / Ivy
package com.daioware.net.http.items;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class QueryParameterList {
private List params;
public QueryParameterList() {
this(new ArrayList<>());
}
public QueryParameterList(int initialSize) {
this(new ArrayList<>(initialSize));
}
public QueryParameterList(List params) {
this.params=params;
}
public List getParams() {
return params;
}
public void setParams(List params) {
this.params = params;
}
public boolean add(String key,String value) {
return add(new QueryParameter(key, value));
}
public boolean add(QueryParameter q) {
return params.add(q);
}
public QueryParameter addOrReplace(QueryParameter parameter) {
int index=params.indexOf(parameter);
if(index>=0) {
return params.set(index, parameter);
}
add(parameter);
return null;
}
public QueryParameter addOrReplace(String key,String value) {
return addOrReplace(new QueryParameter(key, value));
}
public String toString(String encoding) throws UnsupportedEncodingException {
StringBuilder info=new StringBuilder();
String sep="";
for(QueryParameter q:params) {
info.append(sep).append(q.toString(encoding));
sep="&";
}
return info.toString();
}
public QueryParameter remove(String name) {
ListIterator iterator=params.listIterator();
QueryParameter param;
while(iterator.hasNext()) {
param=iterator.next();
if(param.getKey().equals(name)) {
iterator.remove();
return param;
}
}
return null;
}
public QueryParameter get(String name) {
for(QueryParameter q:params) {
if(q.getKey().equals(name)) {
return q;
}
}
return null;
}
public void loadEncodedParameters(String queryLine,String encoding) throws UnsupportedEncodingException {
String nameAndValuePair[];
for(String nameAndValue:queryLine.split("&")) {
nameAndValuePair=nameAndValue.split("=");
add(nameAndValuePair[0],URLDecoder.decode(nameAndValuePair[1],encoding));
}
}
public int size() {
return params.size();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy