com.azure.cosmos.implementation.SessionContainerUtil Maven / Gradle / Ivy
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package com.azure.cosmos.implementation;
import java.util.Map;
public class SessionContainerUtil {
public static boolean shouldUpdateSessionToken(
RxDocumentServiceRequest request,
Map responseHeaders,
Utils.ValueHolder resourceId,
Utils.ValueHolder collectionName) {
resourceId.v = null;
String ownerFullName = responseHeaders.get(HttpConstants.HttpHeaders.OWNER_FULL_NAME);
if (Strings.isNullOrEmpty(ownerFullName)) {
ownerFullName = request.getResourceAddress();
}
collectionName.v = PathsHelper.getCollectionPath(ownerFullName);
String resourceIdString;
if (!request.getIsNameBased()) {
resourceIdString = request.getResourceId();
} else {
resourceIdString = responseHeaders.get(HttpConstants.HttpHeaders.OWNER_ID);
if (Strings.isNullOrEmpty(resourceIdString)) resourceIdString = request.getResourceId();
}
if (!Strings.isNullOrEmpty(resourceIdString)) {
resourceId.v = ResourceId.parse(resourceIdString);
if (resourceId.v.getDocumentCollection() != 0
&& !ReplicatedResourceClientUtils.isReadingFromMaster(request.getResourceType(), request.getOperationType())) {
return true;
}
}
return false;
}
}