All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.azure.communication.jobrouter.implementation.converters.ClassificationPolicyAdapter Maven / Gradle / Ivy

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.azure.communication.jobrouter.implementation.converters;

import com.azure.communication.jobrouter.implementation.models.ClassificationPolicyInternal;
import com.azure.communication.jobrouter.implementation.models.RouterRuleInternal;
import com.azure.communication.jobrouter.models.ClassificationPolicy;
import com.azure.communication.jobrouter.models.CreateClassificationPolicyOptions;

import java.util.stream.Collectors;

import static com.azure.communication.jobrouter.implementation.converters.RouterRuleAdapter.getRouterRuleInternal;

/**
 * Converts request options for create and update Classification Policy to {@link ClassificationPolicy}.
 */
public class ClassificationPolicyAdapter {

    /**
     * Converts {@link CreateClassificationPolicyOptions} to {@link ClassificationPolicy}.
     * @param options Container with options to create a classification policy.
     * @return classification policy.
     */
    public static ClassificationPolicyInternal
        convertCreateOptionsToClassificationPolicyInternal(CreateClassificationPolicyOptions options) {
        RouterRuleInternal prioritizationRuleInternal = getRouterRuleInternal(options.getPrioritizationRule());

        return new ClassificationPolicyInternal().setName(options.getName())
            .setPrioritizationRule(prioritizationRuleInternal)
            .setFallbackQueueId(options.getFallbackQueueId())
            .setQueueSelectorAttachments(options.getQueueSelectors()
                .stream()
                .map(LabelSelectorAdapter::convertQueueSelectorAttachmentToInternal)
                .collect(Collectors.toList()))
            .setWorkerSelectorAttachments(options.getWorkerSelectors()
                .stream()
                .map(LabelSelectorAdapter::convertWorkerSelectorAttachmentToInternal)
                .collect(Collectors.toList()));
    }

    public static ClassificationPolicyInternal
        convertClassificationPolicyToClassificationPolicyInternal(ClassificationPolicy classificationPolicy) {
        return new ClassificationPolicyInternal().setEtag(classificationPolicy.getEtag())
            .setId(classificationPolicy.getId())
            .setName(classificationPolicy.getName())
            .setWorkerSelectorAttachments(classificationPolicy.getWorkerSelectorAttachments()
                .stream()
                .map(LabelSelectorAdapter::convertWorkerSelectorAttachmentToInternal)
                .collect(Collectors.toList()))
            .setQueueSelectorAttachments(classificationPolicy.getQueueSelectorAttachments()
                .stream()
                .map(LabelSelectorAdapter::convertQueueSelectorAttachmentToInternal)
                .collect(Collectors.toList()))
            .setFallbackQueueId(classificationPolicy.getFallbackQueueId())
            .setPrioritizationRule(getRouterRuleInternal(classificationPolicy.getPrioritizationRule()));
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy