use of nl.teslanet.mule.connectors.coap.api.query.AbstractQueryParam in project mule-coap-connector by teslanet-nl.
the class MessageUtils method queryString.
/**
* Construct string representation of query parameters, merged with default parameters.
* The string conforms to URI format,
* @param defaultQueryParams The default parameters.
* @param queryParams The query parameters.
* @return The string representation for usage in an URI.
*/
public static String queryString(List<? extends AbstractQueryParam> defaultQueryParams, List<? extends AbstractQueryParam> queryParams) {
if ((defaultQueryParams == null || defaultQueryParams.isEmpty()) && (queryParams == null || queryParams.isEmpty()))
return null;
StringWriter writer = new StringWriter();
boolean first = true;
for (AbstractQueryParam param : defaultQueryParams) {
if (first) {
first = false;
} else {
writer.append("&");
}
writer.append(param.toString());
}
for (AbstractQueryParam param : queryParams) {
if (first) {
first = false;
} else {
writer.append("&");
}
writer.append(param.toString());
}
return writer.toString();
}
use of nl.teslanet.mule.connectors.coap.api.query.AbstractQueryParam in project mule-coap-connector by teslanet-nl.
the class MessageUtils method uriString.
/**
* Create UriString from path and query.
* @param path The optional list of path segements.
* @param query The optional list of query parameters.
* @return The uri string.
*/
public static String uriString(List<String> path, List<? extends AbstractQueryParam> query) {
if ((path == null || path.isEmpty()) && (query == null || query.isEmpty()))
return null;
StringWriter writer = new StringWriter();
boolean first = true;
writer.append("/");
if (path != null) {
for (String pathsegment : path) {
if (first) {
first = false;
} else {
writer.append("/");
}
writer.append(pathsegment);
}
}
first = true;
if (query != null) {
for (AbstractQueryParam param : query) {
if (first) {
writer.append("?");
first = false;
} else {
writer.append("&");
}
writer.append(param.toString());
}
}
return writer.toString();
}
use of nl.teslanet.mule.connectors.coap.api.query.AbstractQueryParam in project mule-coap-connector by teslanet-nl.
the class AbstractTestCase method queryString.
/**
* Create query part of an uri.
* @param queryParams
* @return The string representation of query parameters
*/
protected static String queryString(List<? extends AbstractQueryParam> queryParams) {
if ((queryParams == null || queryParams.isEmpty()))
return "";
StringWriter writer = new StringWriter();
boolean first = true;
for (AbstractQueryParam param : queryParams) {
if (first) {
first = false;
} else {
writer.append("&");
}
writer.append(param.toString());
}
return writer.toString();
}
use of nl.teslanet.mule.connectors.coap.api.query.AbstractQueryParam in project mule-coap-connector by teslanet-nl.
the class MessageUtils method copyOptions.
/**
* Copy options from {@link ResponseOptions} to {@link OptionSet}.
* @param responseOptions to copy from
* @param optionSet to copy to
* @throws InternalInvalidOptionValueException
* @throws InvalidETagException when an option containes invalid ETag value
* @throws IOException when an option stream throws an error.
*/
public static void copyOptions(ResponseOptions responseOptions, OptionSet optionSet, TransformationService transformationService) throws InternalInvalidOptionValueException, IOException, InvalidETagException {
if (responseOptions.getEtag() != null) {
ETag etag = MessageUtils.toETag(responseOptions.getEtag(), transformationService);
if (etag.isEmpty())
throw new InternalInvalidOptionValueException("ETag", "empty etag is not valid");
optionSet.addETag(etag.getValue());
}
if (responseOptions.getContentFormat() != null) {
optionSet.setContentFormat(responseOptions.getContentFormat());
}
if (responseOptions.getMaxAge() != null) {
optionSet.setMaxAge(responseOptions.getMaxAge());
}
if (responseOptions.getLocationPath() != null) {
optionSet.setLocationPath(responseOptions.getLocationPath());
}
if (responseOptions.getLocationQuery() != null) {
for (AbstractQueryParam param : responseOptions.getLocationQuery()) {
optionSet.addLocationQuery(param.toString());
}
}
if (responseOptions.getResponseSize() != null) {
optionSet.setSize2(responseOptions.getResponseSize());
}
if (responseOptions.getAcceptableRequestSize() != null) {
optionSet.setSize1(responseOptions.getAcceptableRequestSize());
}
for (OtherOption otherOption : responseOptions.getOtherResponseOptions()) {
try {
optionSet.addOption(new Option(otherOption.getNumber(), toBytes(otherOption.getValue(), transformationService)));
} catch (InternalInvalidByteArrayValueException e) {
throw new InternalInvalidOptionValueException("Other-Option", "Number { " + otherOption.getNumber() + " }", e);
}
}
}
Aggregations