Search in sources :

Example 1 with AbstractQueryParam

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();
}
Also used : StringWriter(java.io.StringWriter) AbstractQueryParam(nl.teslanet.mule.connectors.coap.api.query.AbstractQueryParam)

Example 2 with AbstractQueryParam

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();
}
Also used : StringWriter(java.io.StringWriter) AbstractQueryParam(nl.teslanet.mule.connectors.coap.api.query.AbstractQueryParam)

Example 3 with AbstractQueryParam

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();
}
Also used : StringWriter(java.io.StringWriter) AbstractQueryParam(nl.teslanet.mule.connectors.coap.api.query.AbstractQueryParam)

Example 4 with AbstractQueryParam

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);
        }
    }
}
Also used : OtherOption(nl.teslanet.mule.connectors.coap.api.options.OtherOption) ETag(nl.teslanet.mule.connectors.coap.api.options.ETag) InternalInvalidByteArrayValueException(nl.teslanet.mule.connectors.coap.internal.exceptions.InternalInvalidByteArrayValueException) AbstractQueryParam(nl.teslanet.mule.connectors.coap.api.query.AbstractQueryParam) BlockOption(org.eclipse.californium.core.coap.BlockOption) OtherOption(nl.teslanet.mule.connectors.coap.api.options.OtherOption) Option(org.eclipse.californium.core.coap.Option) InternalInvalidOptionValueException(nl.teslanet.mule.connectors.coap.internal.exceptions.InternalInvalidOptionValueException)

Aggregations

AbstractQueryParam (nl.teslanet.mule.connectors.coap.api.query.AbstractQueryParam)4 StringWriter (java.io.StringWriter)3 ETag (nl.teslanet.mule.connectors.coap.api.options.ETag)1 OtherOption (nl.teslanet.mule.connectors.coap.api.options.OtherOption)1 InternalInvalidByteArrayValueException (nl.teslanet.mule.connectors.coap.internal.exceptions.InternalInvalidByteArrayValueException)1 InternalInvalidOptionValueException (nl.teslanet.mule.connectors.coap.internal.exceptions.InternalInvalidOptionValueException)1 BlockOption (org.eclipse.californium.core.coap.BlockOption)1 Option (org.eclipse.californium.core.coap.Option)1