2  *  ============LICENSE_START=======================================================
 
   3  *  Copyright (C) 2022 Nordix Foundation
 
   4  *  ================================================================================
 
   5  *  Licensed under the Apache License, Version 2.0 (the "License");
 
   6  *  you may not use this file except in compliance with the License.
 
   7  *  You may obtain a copy of the License at
 
   9  *        http://www.apache.org/licenses/LICENSE-2.0
 
  11  *  Unless required by applicable law or agreed to in writing, software
 
  12  *  distributed under the License is distributed on an "AS IS" BASIS,
 
  13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  14  *  See the License for the specific language governing permissions and
 
  15  *  limitations under the License.
 
  17  *  SPDX-License-Identifier: Apache-2.0
 
  18  *  ============LICENSE_END=========================================================
 
  21 package org.onap.cps.ncmp.rest.controller.handlers;
 
  23 import lombok.RequiredArgsConstructor;
 
  24 import org.onap.cps.ncmp.api.NetworkCmProxyDataService;
 
  25 import org.onap.cps.ncmp.rest.executor.CpsNcmpTaskExecutor;
 
  26 import org.springframework.beans.factory.annotation.Value;
 
  27 import org.springframework.stereotype.Component;
 
  30 @RequiredArgsConstructor
 
  31 public class NcmpDatastoreResourceRequestHandlerFactory {
 
  33     private final NetworkCmProxyDataService networkCmProxyDataService;
 
  34     private final CpsNcmpTaskExecutor cpsNcmpTaskExecutor;
 
  36     @Value("${notification.async.executor.time-out-value-in-ms:2000}")
 
  37     private int timeOutInMilliSeconds;
 
  38     @Value("${notification.enabled:true}")
 
  39     private boolean notificationFeatureEnabled;
 
  42      * Gets ncmp datastore handler.
 
  44      * @param datastoreType the datastore type
 
  45      * @return the ncmp datastore handler
 
  47     public NcmpDatastoreResourceRequestHandler getNcmpDatastoreResourceRequestHandler(
 
  48             final DatastoreType datastoreType) {
 
  50         switch (datastoreType) {
 
  52                 return new NcmpDatastoreOperationalResourceRequestHandler(networkCmProxyDataService,
 
  53                         cpsNcmpTaskExecutor, timeOutInMilliSeconds, notificationFeatureEnabled);
 
  54             case PASSTHROUGH_RUNNING:
 
  55                 return new NcmpDatastorePassthroughRunningResourceRequestHandler(networkCmProxyDataService,
 
  56                         cpsNcmpTaskExecutor, timeOutInMilliSeconds, notificationFeatureEnabled);
 
  57             case PASSTHROUGH_OPERATIONAL:
 
  59                 return new NcmpDatastorePassthroughOperationalResourceRequestHandler(networkCmProxyDataService,
 
  60                         cpsNcmpTaskExecutor, timeOutInMilliSeconds, notificationFeatureEnabled);