Example usage for org.springframework.util MultiValueMap put

List of usage examples for org.springframework.util MultiValueMap put

Introduction

In this page you can find the example usage for org.springframework.util MultiValueMap put.

Prototype

V put(K key, V value);

Source Link

Document

Associates the specified value with the specified key in this map (optional operation).

Usage

From source file:org.springframework.web.bind.annotation.support.HandlerMethodInvoker.java

private Map<String, ?> resolveRequestParamMap(Class<? extends Map<?, ?>> mapType, NativeWebRequest webRequest) {
    Map<String, String[]> parameterMap = webRequest.getParameterMap();
    if (MultiValueMap.class.isAssignableFrom(mapType)) {
        MultiValueMap<String, String> result = new LinkedMultiValueMap<String, String>(parameterMap.size());
        for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
            for (String value : entry.getValue()) {
                result.add(entry.getKey(), value);
            }/*w ww  .j  a  v a 2  s. c  o m*/
        }
        return result;
    } else {
        Map<String, String> result = new LinkedHashMap<String, String>(parameterMap.size());
        for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
            if (entry.getValue().length > 0) {
                result.put(entry.getKey(), entry.getValue()[0]);
            }
        }
        return result;
    }
}

From source file:org.springframework.web.bind.annotation.support.HandlerMethodInvoker.java

private Map<String, ?> resolveRequestHeaderMap(Class<? extends Map<?, ?>> mapType,
        NativeWebRequest webRequest) {//from   w w  w.j  a  va2 s .co m
    if (MultiValueMap.class.isAssignableFrom(mapType)) {
        MultiValueMap<String, String> result;
        if (HttpHeaders.class.isAssignableFrom(mapType)) {
            result = new HttpHeaders();
        } else {
            result = new LinkedMultiValueMap<String, String>();
        }
        for (Iterator<String> iterator = webRequest.getHeaderNames(); iterator.hasNext();) {
            String headerName = iterator.next();
            for (String headerValue : webRequest.getHeaderValues(headerName)) {
                result.add(headerName, headerValue);
            }
        }
        return result;
    } else {
        Map<String, String> result = new LinkedHashMap<String, String>();
        for (Iterator<String> iterator = webRequest.getHeaderNames(); iterator.hasNext();) {
            String headerName = iterator.next();
            String headerValue = webRequest.getHeader(headerName);
            result.put(headerName, headerValue);
        }
        return result;
    }
}

From source file:org.talend.dataprep.api.service.command.folder.RemoveFolder.java

private ResponseEntity<String> getResponseEntity(HttpStatus status, HttpResponse response) {

    final MultiValueMap<String, String> headers = new HttpHeaders();
    for (Header header : response.getAllHeaders()) {
        headers.put(header.getName(), Collections.singletonList(header.getValue()));
    }// w  w  w  .  j  a v a2s.c  o  m
    try {
        return new ResponseEntity<>(IOUtils.toString(response.getEntity().getContent()), headers, status);
    } catch (IOException e) {
        throw new TDPException(CommonErrorCodes.UNEXPECTED_EXCEPTION, e);
    }
}

From source file:org.talend.dataprep.command.CommandHelper.java

public static ResponseEntity<Void> async(final GenericCommand<?> command) {
    final Observable<?> stream = command.toObservable();
    return stream.map(is -> {
        // copy all headers from the command response so that the mime-type is correctly forwarded. Command has
        // the correct headers due to call to toBlocking() below.
        final MultiValueMap<String, String> headers = new HttpHeaders();
        HttpStatus status = command.getStatus();
        for (Header header : command.getCommandResponseHeaders()) {
            headers.put(header.getName(), Collections.singletonList(header.getValue()));
        }//from   w  ww  . j  ava2 s  .c o  m
        return new ResponseEntity<Void>(null, headers, status);
    }).toBlocking().first();
}

From source file:org.talend.dataprep.command.CommandHelper.java

public static ResponseEntity<StreamingResponseBody> toStreaming(final GenericCommand<InputStream> command) {
    final Observable<InputStream> stream = command.toObservable();
    return stream.map(is -> {
        // Content for the response entity
        final StreamingResponseBody body = outputStream -> {
            try {
                IOUtils.copyLarge(is, outputStream);
                outputStream.flush();/*from  ww  w . j av  a 2s. c  o m*/
            } catch (IOException e) {
                LOGGER.error("Unable to fully copy command result '{}'.", command.getClass(), e);
            }
        };
        // copy all headers from the command response so that the mime-type is correctly forwarded. Command has
        // the correct headers due to call to toBlocking() below.
        final MultiValueMap<String, String> headers = new HttpHeaders();
        final HttpStatus status = command.getStatus();
        for (Header header : command.getCommandResponseHeaders()) {
            headers.put(header.getName(), Collections.singletonList(header.getValue()));
        }
        return new ResponseEntity<>(body, headers, status == null ? HttpStatus.OK : status);
    }).toBlocking().first();
}

From source file:software.coolstuff.springframework.owncloud.service.impl.rest.OwncloudRestUserServiceTest.java

private void prepareModificationRestTest(UserModification userModification) throws IOException {
    if (userModification.getExistingUser() != null) {
        respondUser(//  w w w  .j  a  va 2s. co m
                RestRequest.builder().method(GET)
                        .url("/cloud/users/" + userModification.getExistingUser().getUsername()).build(),
                UserResponse.builder().enabled(userModification.getExistingUser().isEnabled())
                        .email(userModification.getExistingUser().getEmail())
                        .displayname(userModification.getExistingUser().getDisplayname())
                        .quota(userModification.getExistingUser().getQuota()).build());
    } else {
        respondFailure(
                RestRequest.builder().method(GET)
                        .url("/cloud/users/" + userModification.getNewUser().getUsername()).build(),
                998, "The requested user could not be found");

        if (userModification.isErrorCreateUser()) {
            respondFailure(RestRequest.builder().method(POST).url("/cloud/users").build(),
                    userModification.getErrorCodeCreateUser());
        } else {
            MultiValueMap<String, String> postData = new LinkedMultiValueMap<>();
            postData.put("userid", Lists.newArrayList(userModification.getNewUser().getUsername()));
            postData.put("password", Lists.newArrayList(userModification.getNewUser().getPassword()));
            respondSuccess(RestRequest.builder().method(POST).url("/cloud/users").build(), postData);
        }

        respondUser(
                RestRequest.builder().method(GET)
                        .url("/cloud/users/" + userModification.getNewUser().getUsername()).build(),
                UserResponse.builder().enabled(true).displayname(userModification.getNewUser().getUsername())
                        .build());
    }

    // change the Displayname
    if (userModification.getExistingUser() == null
            || !StringUtils.equals(userModification.getExistingUser().getDisplayname(),
                    userModification.getNewUser().getDisplayname())) {
        if (userModification.isErrorUpdateDisplayName()) {
            respondFailure(
                    RestRequest.builder().method(PUT)
                            .url("/cloud/users/" + userModification.getNewUser().getUsername()).build(),
                    userModification.getErrorCodeUpdateDisplayName());
        } else {
            MultiValueMap<String, String> putData = new LinkedMultiValueMap<>();
            putData.put("key", Lists.newArrayList("display"));
            putData.put("value", Lists.newArrayList(userModification.getNewUser().getDisplayname()));
            respondSuccess(
                    RestRequest.builder().method(PUT)
                            .url("/cloud/users/" + userModification.getNewUser().getUsername()).build(),
                    putData);
        }
    }

    // change the eMail
    if (userModification.getExistingUser() == null || !StringUtils
            .equals(userModification.getExistingUser().getEmail(), userModification.getNewUser().getEmail())) {
        if (userModification.isErrorUpdateEmail()) {
            respondFailure(
                    RestRequest.builder().method(PUT)
                            .url("/cloud/users/" + userModification.getNewUser().getUsername()).build(),
                    userModification.getErrorCodeUpdateEmail());
        } else {
            MultiValueMap<String, String> putData = new LinkedMultiValueMap<>();
            putData.put("key", Lists.newArrayList("email"));
            putData.put("value", Lists.newArrayList(userModification.getNewUser().getEmail()));
            respondSuccess(
                    RestRequest.builder().method(PUT)
                            .url("/cloud/users/" + userModification.getNewUser().getUsername()).build(),
                    putData);
        }
    }

    // change the Quota
    if (userModification.getExistingUser() == null
            || ObjectUtils.compare(userModification.getExistingUser().getQuota(),
                    userModification.getNewUser().getQuota()) != 0) {
        if (userModification.isErrorUpdateQuota()) {
            respondFailure(
                    RestRequest.builder().method(PUT)
                            .url("/cloud/users/" + userModification.getNewUser().getUsername()).build(),
                    userModification.getErrorCodeUpdateQuota());
        } else {
            Format quotaFormat = getQuotaFormat();
            MultiValueMap<String, String> putData = new LinkedMultiValueMap<>();
            putData.put("key", Lists.newArrayList("quota"));
            if (userModification.getNewUser().getQuota() != null) {
                putData.put("value",
                        Lists.newArrayList(quotaFormat.format(userModification.getNewUser().getQuota())));
            } else {
                putData.put("value", Lists.newArrayList(""));
            }
            respondSuccess(
                    RestRequest.builder().method(PUT)
                            .url("/cloud/users/" + userModification.getNewUser().getUsername()).build(),
                    putData);
        }
    }

    // change the availatility (enable/disable)
    if (userModification.getExistingUser() != null
            && userModification.getExistingUser().isEnabled() != userModification.getNewUser().isEnabled()) {
        if (userModification.isErrorEnableDisable()) {
            respondFailure(RestRequest.builder().method(PUT)
                    .url("/cloud/users/" + userModification.getNewUser().getUsername() + "/"
                            + (userModification.getNewUser().isEnabled() ? "enable" : "disable"))
                    .build(), userModification.getErrorCodeEnableDisable());
        } else {
            respondSuccess(RestRequest
                    .builder().method(PUT).url("/cloud/users/" + userModification.getNewUser().getUsername()
                            + "/" + (userModification.getNewUser().isEnabled() ? "enable" : "disable"))
                    .build());
        }
    }

    List<String> addedGroups = new ArrayList<>();
    List<String> removedGroups = new ArrayList<>();
    if (userModification.getExistingUser() != null
            && CollectionUtils.isNotEmpty(userModification.getExistingUser().getGroups())) {
        respondGroups(
                RestRequest.builder().method(GET)
                        .url("/cloud/users/" + userModification.getNewUser().getUsername() + "/groups").build(),
                userModification.getExistingUser().getGroups().toArray(new String[] {}));
        addedGroups.addAll(CollectionUtils.subtract(userModification.getNewUser().getGroups(),
                userModification.getExistingUser().getGroups()));
        removedGroups.addAll(CollectionUtils.subtract(userModification.getExistingUser().getGroups(),
                userModification.getNewUser().getGroups()));
    } else {
        respondGroups(RestRequest.builder().method(GET)
                .url("/cloud/users/" + userModification.getNewUser().getUsername() + "/groups").build());
        addedGroups.addAll(userModification.getNewUser().getGroups());
    }

    if (userModification.isErrorAddGroup()) {
        respondFailure(
                RestRequest.builder().method(POST)
                        .url("/cloud/users/" + userModification.getNewUser().getUsername() + "/groups").build(),
                userModification.getErrorCodeAddGroup());
    } else {
        for (String group : addedGroups) {
            MultiValueMap<String, String> postData = new LinkedMultiValueMap<>();
            postData = new LinkedMultiValueMap<>();
            postData.put("groupid", Lists.newArrayList(group));
            respondSuccess(RestRequest.builder().method(POST)
                    .url("/cloud/users/" + userModification.getNewUser().getUsername() + "/groups").build(),
                    postData);
        }
    }

    if (userModification.isErrorRemoveGroup()) {
        respondFailure(
                RestRequest.builder().method(DELETE)
                        .url("/cloud/users/" + userModification.getNewUser().getUsername() + "/groups").build(),
                userModification.getErrorCodeRemoveGroup());
    } else {
        for (String group : removedGroups) {
            MultiValueMap<String, String> postData = new LinkedMultiValueMap<>();
            postData = new LinkedMultiValueMap<>();
            postData.put("groupid", Lists.newArrayList(group));
            respondSuccess(RestRequest.builder().method(DELETE)
                    .url("/cloud/users/" + userModification.getNewUser().getUsername() + "/groups").build(),
                    postData);
        }
    }

    respondUser(
            RestRequest.builder().method(GET).url("/cloud/users/" + userModification.getNewUser().getUsername())
                    .build(),
            UserResponse.builder().enabled(userModification.getNewUser().isEnabled())
                    .email(userModification.getNewUser().getEmail())
                    .displayname(userModification.getNewUser().getDisplayname())
                    .quota(userModification.getNewUser().getQuota()).build());
    respondGroups(
            RestRequest.builder().method(GET)
                    .url("/cloud/users/" + userModification.getNewUser().getUsername() + "/groups").build(),
            CollectionUtils.isEmpty(userModification.getNewUser().getGroups()) ? new String[] {}
                    : userModification.getNewUser().getGroups().toArray(new String[] {}));
}