private void writeContentUsingParameters(Parameters parameters, List<String> lines) { for (Map.Entry<String, List<String>> entry : parameters.entrySet()) { if (entry.getValue().isEmpty()) { lines.add(String.format("'%s='", entry.getKey())); } else { for (String value : entry.getValue()) { lines.add(String.format("'%s=%s'", entry.getKey(), value)); } } } }
/** * Converts the parameters to a query string suitable for use in a URI or the body of * a form-encoded request. * @return the query string */ public String toQueryString() { StringBuilder sb = new StringBuilder(); for (Map.Entry<String, List<String>> entry : entrySet()) { if (entry.getValue().isEmpty()) { append(sb, entry.getKey()); } else { for (String value : entry.getValue()) { append(sb, entry.getKey(), value); } } } return sb.toString(); }
private void writeContent(CliOperationRequest request, List<String> lines) { String content = request.getContentAsString(); if (StringUtils.hasText(content)) { lines.add(String.format("-d '%s'", content)); } else if (!request.getParts().isEmpty()) { for (Entry<String, List<String>> entry : request.getParameters().entrySet()) { for (String value : entry.getValue()) { lines.add(String.format("-F '%s=%s'", entry.getKey(), value)); } } } else if (request.isPutOrPost()) { writeContentUsingParameters(request, lines); } }
private void writeParts(OperationRequest request, PrintWriter writer) { writer.println(); for (Entry<String, List<String>> parameter : request.getParameters().entrySet()) { if (parameter.getValue().isEmpty()) { writePartBoundary(writer); writePart(parameter.getKey(), "", null, null, writer); } else { for (String value : parameter.getValue()) { writePartBoundary(writer); writePart(parameter.getKey(), value, null, null, writer); writer.println(); } } } for (OperationRequestPart part : request.getParts()) { writePartBoundary(writer); writePart(part, writer); writer.println(); } writeMultipartEnd(writer); }
/** * Returns a new {@code Parameters} containing only the parameters that do no appear * in the query string of the given {@code uri}. * @param uri the uri * @return the unique parameters */ public Parameters getUniqueParameters(URI uri) { Parameters queryStringParameters = new QueryStringParser().parse(uri); Parameters uniqueParameters = new Parameters(); for (Map.Entry<String, List<String>> parameter : entrySet()) { addIfUnique(parameter, queryStringParameters, uniqueParameters); } return uniqueParameters; }