public Map<String, String> deassociate(
final ResourceDeassociationAction action,
final String etag,
final String key,
final List<StatusBean> statuses) {
Map<String, String> result = new LinkedHashMap<>();
synchronized (this) {
AnyService<?> service = getService(etag, getAnyServiceClass());
Client client = WebClient.client(service);
List<String> accept = client.getHeaders().get(HttpHeaders.ACCEPT);
if (!accept.contains(RESTHeaders.MULTIPART_MIXED)) {
client.accept(RESTHeaders.MULTIPART_MIXED);
}
ResourceDR resourceDR = new ResourceDR.Builder().key(key).
action(action).
resources(StatusUtils.statusR(statuses).build().getResources()).build();
try {
List<BatchResponseItem> items = parseBatchResponse(service.deassociate(resourceDR));
for (int i = 0; i < items.size(); i++) {
result.put(
resourceDR.getResources().get(i),
getStatus(items.get(i).getStatus()));
}
} catch (IOException e) {
LOG.error("While processing Batch response", e);
}
resetClient(getAnyServiceClass());
}
return result;
}